纯CSS3实现自定义涂鸦风格的边框

今天我们要来分享一款基于纯CSS3的自定义边框应用,看上去它像一个Tooltip控件,因为下边框有一个小三角,就像很多地方的引用文本框一样。另外这款CSS3边框是涂鸦风格的,看起来很有个性。用CSS3实现自定义边框的好处是可以自适应边框内部的文字数量大小。

pure-css3-border

下面我们来分享一下实现的方法,主要由HTML代码和CSS代码组成。

HTML代码:

<div>
    <div>
        <div>CSS3简单实现涂鸦风格边框 Welcome to</div>
    </div>
</div>

HTML代码结构非常简单,仅仅是3个div组成,当然后面的CSS代码才是关键,我们一步步来解说一下。

CSS代码:

复制代码
复制代码
.wrap {
    padding:35px 25px;
    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;
    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- 30px;
    border-bottom- 20px;
    border-style: solid;
    border-color: transparent #fff;
    display: block;
     0;
}
复制代码
复制代码

这个box类和之前的类似,不过多了一个特性,就是利用CSS3的:before属性实现了下边框的小三角效果,这样就有tooltip的效果了。

复制代码
复制代码
.box .box {
    position:absolute;
    top:5px;
    left:5px;
    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”,这个角就不是圆角。

原文地址:https://www.cnblogs.com/refe/p/5126710.html