今天我们要来分享一款基于纯CSS3的自定义边框应用,看上去它像一个Tooltip控件,因为下边框有一个小三角,就像很多地方的引用文本框一样。另外这款CSS3边框是涂鸦风格的,看起来很有个性。用CSS3实现自定义边框的好处是可以自适应边框内部的文字数量大小。
下面我们来分享一下实现的方法,主要由HTML代码和CSS代码组成。
HTML代码:
<div> <div> <div>CSS3简单实现涂鸦风格边框 Welcome to</div> </div> </div>
HTML代码结构非常简单,仅仅是3个div组成,当然后面的CSS代码才是关键,我们一步步来解说一下。
CSS代码:
.wrap { padding:35px 25px; width:450px; margin:40px auto; background:#586786; border-radius: 255px 15px 225px 15px/15px 225px 15px 255px; color:#eee; box-shadow:1px 1px 0px rgba(0, 0, 0, .75) }
这个CSS代码定义了最外面的边框,利用border-radius实现边框的圆角效果,同时利用了box-shadow实现类微微的阴影效果,不是很明显,你也可以修个属性值来让阴影变得更加明显一点。
.box { position:relative; background:#fff; border:solid 5px #fff; width:200px; height:100px; margin:0 auto; border-radius: 255px 15px 225px 15px/15px 225px 15px 255px; padding:10px; color:#666; box-shadow:2px 3px 1px rgba(0, 0, 0, .75) } .box:before { content: ""; position: absolute; bottom: -20px; left: 60px; border: 0; border-right-width: 30px; border-bottom-width: 20px; border-style: solid; border-color: transparent #fff; display: block; width: 0; }
这个box类和之前的类似,不过多了一个特性,就是利用CSS3的:before属性实现了下边框的小三角效果,这样就有tooltip的效果了。
.box .box { position:absolute; top:5px; left:5px; width:180px; height:80px; border-color:#593207; box-shadow:none; } .box .box:before { left: 45px; border-color: transparent #593207; }
这是最内部的box,和它外面那层box实现一样,同样利用before属性实现小三角效果。
其他就是一些边框线颜色和背景颜色的设置,就非常简单了
知识点:
border-radius属性的语法及参数
border-radius: none | <length> {1,4}[/<length>{1,4}]
border-radius是一种缩写方法。如果反斜杠符号“/”存在,“/”前面的值是设置元素圆角的水平方向半径,“/”后面的值是设置元素圆角的垂直方向的半径;如果没有“/”,则元素圆角的水平和垂直方向的半径值相等。另外四个值是按照top-left、top-right、bottom-right和bottom-left顺序来设置的,其主要会有以下四种情形出现。
1)border-radius:<length>{1}设置一个值,top-left、top-right 、bottom-right和bottom-left四个值相等,也就是元素四个圆角效果一样。
2)border-radius:<length>{2}设置两个值,top-left等于 bottom-right,并且取第一个值;top-right等于bottom-left,并且取第二值。也就是元素的左上角和右下角取第一个值,右上角和左下角取第二个值。
3)border-radius:<length>{3}设置三个值,第一个值设置top-left,第二个值设置top-right和bottom-left,第三个值设置bottom-right。
4)border-radius:<length>{4}元素四个圆角取不同的值,第一个值设置top-left,第二个值设置top-right,第三个值设置bottom-right,最后一个值设置bottom-left。
border-radius的属性参数非常简单,主要包含两个值。
none:默认值,表示元素没有圆角。
<length>:由浮点数字和单位标识符组成的长度值。不可以是负值。
注意 如果要重置元素没有圆角,取值none并无效果,需要将元素的border-radius取值为0。
border-radius和border属性一样,可以将各个角单独拆分出来。这样border-radius就派生出另外四个子属性,而且它们都是先Y轴再X轴。
border-top-left-radius:<length>/<length>;定义元素左上角圆角。
border-top-right-radius:<length>/<length>;定义元素右上角圆角。
border-bottom-right –radius :<length>/<length>;定义元素右下角圆角。
border-bottom-left-radius:<length>/<length>;定义元素左下角圆角。
上面四个子属性取值和border-radius是一样的,只不过水平和垂直方向仅一个值,“/”前面的值为水平方向半径,后面的值为垂直方向半径。如果第二个值省略,元素水平和垂直方向半径,其实就是以“<length>”为半径的四分之一圆。如果任意一个值为“0”,这个角就不是圆角。