上、下、左、右边框

可以使用下面的代码很好的显示出这四个边框:

.demo-1{
    width: 100px;
    height: 100px;
    border-left: 50px solid gray;
    border-right: 50px solid green;
    border-bottom: 50px solid blue;
    border-top: 50px solid black;
}

下图对应上面的样式即可显示这四个边框到底是如何搭配的:

clipboard.png

可以发现在边角处,两个边框平分所占面积。

正方形

将上面代码中的.demo-1widthheight设置为0:

.demo-1{
    width: 0;
    height: 0;
    border-left: 50px solid gray;
    border-right: 50px solid green;
    border-bottom: 50px solid blue;
    border-top: 50px solid black;
}

即可显示一个正方形:

clipboard.png

上三角

很显然,作出上三角很简单了,另border-leftborder-right的颜色为透明,不设置border-top

.demo-1 {
    width: 0;
    height: 0;
    border-left: 50px solid transparent;
    border-right: 50px solid transparent;
    border-bottom: 50px solid blue;
}

即可显示上三角:

clipboard.png

其它简单的图形

可以设置上、下、左、右边框的属性自由组合图形的样式。

伪类before和after

w3c对这两个伪类的定义:

  • :after 选择器在被选元素的内容后面插入内容

  • :before 选择器在被选元素的内容前面插入内容

请使用 content 属性来指定要插入的内容。

使用before和after创建组合图形

通过使伪类、定位可以创建出一下效果的图形:

clipboard.png

作出一个长方形的div

代码:

.hot {
    background-color: #cc0000;
    width: 100;
    height: 50px;
    position: relative;
    text-align: center;
}

效果见下:

clipboard.png

使用伪类before插入箭头

代码:

.hot:before {
    position: absolute;
    width: 0;
    height: 0;
    content: "";
    bottom: -12px;
    left: 15px;
    border-top: 12px solid #cc0000;
    border-left: 0px solid transparent;
    border-right: 12px solid transparent;
}

注意这里使用absolute定位
效果见下:

clipboard.png

使用伪类after加上文字

.hot:after {
    content: "头条";
    color: #fff;
    font-size: 39px;
    line-height: 50px;
    font-family: "楷体";
    font-weight: bold;
}

最终效果:

clipboard.png


孤独的自我
523 声望12 粉丝