CSS3 окрашены пятиконечная звезда и звезда Давида

Окончательный эффект, который вы хотите достичь

Во-первых, пятиконечная звезда

Перед покраской пентаграмму сначала проанализировать, как пятиконечная звезда достигается за счет нескольких частей, составлявших схема выглядит следующим образом:

 Три вершиной вверх треугольника, предоставляя вращение и позиционирование сростка и перекрывать друг друга для достижения конечного эффекта пятиконечной звезды.

И семантические коды проще, использование псевдо-класс для добавления содержимого.

1, равнобедренный треугольник предусмотрен, и с помощью соответствующего преобразования к углу поворота , чтобы   преобразовать: поворот (35deg);

.star { 
        ширина : 0px ; высота : 0px ; 
        границы снизу : 70px Solid RGBA (244,0,0,0.4) ; 
        границы слева : 100px Твердая прозрачная ; 
        границы правой : 100px Твердый прозрачный ; 
        Запас : 100px Авто ;
         / * до этой стадии, получается равнобедренный треугольник вверх * / 
        -webkit-Transform : Поворот (35 град) ; 
        -MS-Transform : Поворот (35 град) ; 
        -o-Transform :Поворот (35 град) ; 
        Transform : Поворот (35 град) ;
         / * вращаются по часовой стрелке 35 град * / 
        положение : относительная ; 
    }

    

 2, с использованием : прежде , чем псевдо-элемент добавляется в передней части содержимого элемента DIV.

Содержание добавленных псевдо-классы наследует ДИВ стиль также претерпел вращение по часовой стрелке, так что если вы устранить влияние вращения по часовой стрелке, можно   преобразовать: Поворот (-35deg);

Позиционирующий, доводят до соответствующего контента местонахождения сверху: -45px; слева: -65px;

.star:before{
        content:"";
        width:0px;
        height:0px;
        border-bottom:80px solid rgba(0,244,0,0.5);
        border-left:30px solid transparent;
        border-right:30px solid transparent;
        /*伪类所添加的内容继承原来的样式也发生了顺时针旋转*/
        -webkit-transform: rotate(-35deg);
        -ms-transform: rotate(-35deg);
        -o-transform: rotate(-35deg);
        transform: rotate(-35deg);
        /*设置负值,就会逆时针旋转*/
        position:absolute;
        top:-45px;left:-65px;
        /*定位调整位置*/
    }

    

3、使用 :after 伪类在div 元素后面添加内容

将内容旋转到合适的角度   transform: rotate(-35deg);

设置定位,放置在适当的位置  top:3px;left:105px;

.star:after{
        content:"";
        width:0px;
        height:0px;
        position:absolute;
        border-bottom:70px solid rgba(0,0,244,0.5);
        border-left:100px solid transparent;
        border-right:100px solid transparent;
        -webkit-transform: rotate(-70deg);
        -ms-transform: rotate(-70deg);
        -o-transform: rotate(-70deg);
        transform: rotate(-70deg);
        top:3px;left:-105px;    
    }

实现效果和代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>transform</title>
    <style>
    .star{
        width:0px;height:0px;
        border-bottom:70px solid red; 
        /*rgba(244,0,0,0.4);*/
        border-left:100px solid transparent;
        border-right:100px solid transparent;
        margin:100px auto;
        /*到这一步为止,得到的是一个向上的等腰三角形*/
        -webkit-transform: rotate(35deg);
        -ms-transform: rotate(35deg);
        -o-transform: rotate(35deg);
        transform: rotate(35deg);
        /*顺时针旋转35deg*/
        position:relative;
    }
    .star:before{
        content:"";
        width:0px;
        height:0px;
        border-bottom:80px solid red; 
        /*rgba(0,244,0,0.5);*/
        border-left:30px solid transparent;
        border-right:30px solid transparent;
        /*伪类所添加的内容继承原来的样式也发生了顺时针旋转*/
        -webkit-transform: rotate(-35deg);
        -ms-transform: rotate(-35deg);
        -o-transform: rotate(-35deg);
        transform: rotate(-35deg);
        /*设置负值,就会逆时针旋转*/
        position:absolute;
        top:-45px;
        left:-65px;
        /*定位调整位置*/
    }
    .star:after{
        content:"";
        width:0px;
        height:0px;
        position:absolute;
        border-bottom:70px solid red;
        /*rgba(0,0,244,0.5);*/
        border-left:100px solid transparent;
        border-right:100px solid transparent;
        -webkit-transform: rotate(-70deg);
        -ms-transform: rotate(-70deg);
        -o-transform: rotate(-70deg);
        transform: rotate(-70deg);
        top:3px;left:-105px;    
    }
    </style>
</head>
<body>
    <div class="star"></div>
</body>
</html>


 二、六角星

相比于五角星,六角星就简单的多了,来是先来分析它是如何构成的:

两个三角形交叠实现

注意两个三角形之间的位置关系,设置正确的定位。

代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
    #star{
        width:0px;height:0px;
        border-bottom:100px solid red;
        /*rgba(244,244,0,0.4);*/
        border-left:50px solid transparent;
        border-right:50px solid transparent;
        margin:50px auto;
        position:relative;
    }
    #star:after{
        content:" ";
        width:0px;height:0px;
        border-top:100px solid red;
        /*rgba(0,244,250,0.6);*/
        border-left:50px solid transparent;
        border-right:50px solid transparent;
        position:absolute;
        top:50px;left:-50px;
    }
    </style>
</head>
<body>
    <div id="star"></div>
</body>
</html>

 

 

 

рекомендация

отwww.cnblogs.com/nyw1983/p/11620069.html