顾名思义,就是元素外面的一圈边框,下图中虚线圈起的部分是内容,外面橙色的一圈是它的边框,可以理解成在照片外面加一个相框,使用border属性。
边框样式border-style必须写!否则其它属性全部失效。
边框的样式:
border后面可跟多个值,中间用空格分离,含义如下:
注意顺序, 边框样式不可省略 ,颜色和宽度可以省略,会显示默认的效果。
——以上规律在padding和margin一样适用。
边框样式border-style必须设置
如果我们的四条边框属性都是一样的,那么统一设置就可以啦,注意边框类型不可省略。
首先我们放置一个宽高为200px的粉色盒子。
接下来我们为它加上一条宽度为10px,样式为实线,颜色为红色的边框。
我们可以看到,添加边框的时候,是在盒子外面套一圈边框,而不是加在里面,在Chrome浏览器中点击右键检查,可以看到div的大小变成了220x220。
套在外面的边框的宽度是会加进盒子尺寸的(上下左右各增加了10px),如果我们想盒子保持大小不变,要对div本身的width和height进行减小,在这个样例中,通过计算可得,减少到180px即可保持大小不变。
当我们使用点状、虚线等边框样式时,多出来的缝隙,会使用元素本身的 背景颜色 填充。
点和虚线的具体样式,不同浏览器中可能会不一样。
我们为刚刚的盒子设置上边框为红色,左边框为绿色,效果如下图所示:
我们会发现在两条边框交界处的小方块,通过一条对角线分隔,上边框和左边框各占一半。当边框不一样宽时,同样也是用对角线把交界处的小长方形一分为二,如下图所示:
当被添加边框的元素宽度为0,不设置高度(高度默认是0)的情况下,我们可以巧妙利用 边框组合 和 transparent(透明) 绘制三角形,可以体验下哦。
三角形1-css:
三角形2-css:
多彩三角形-css:
绘制梯形只要对应添加宽度或者高度就可以啦
梯形1-css:
梯形2-css:
在日常开发中,经常会用到各种形状的三角形,我们可以通过图标来实现自己先要的效果,但如何用样式快速写出一个适合自己的三角形呢,如果你不太明白请看接下例子。
结果如下:
这样简单的4个不同方位的三角形就做好了,其实实现三角形很简单,为了更直观的看到三角形实现原理我们来看接下来的例子。
结果如下
从图上我们可以清晰的看出,当我们给DOM元素设置宽高为0的时候,此时设置边框,上、下、左、右、将以上图右中圆心散开往外扩展(圆心标点是方便观察点的,真实是不存在的),最终形成一个由四个相同三角形组成的,宽度是border宽度2倍的正方向,每一个三角形正是我们设置的不同方位的border边框。看到这里其实我们想要的三角形效果已经完后,但是还不够完美,细心的小伙伴可能会有疑问。 为什么我设置的宽度是20px,但是却生成了一个宽度为40的正方形 ?那我们就再看一下图例:
图100px
上图中我们给div设置了宽高,当此的变宽分别变成了一个梯形,在border宽度逐渐缩小的过程中,边框逐渐趋于直线,直到小到肉眼看不清相邻边框拼接处的结合,就成了我们眼中所谓的直线。
反过来亦是如此,让我们的边框设置的很宽的时候,相邻边框相交部位将按照对角线分别形成两个三角形,填充变宽(不然相交处出现空白,4个边框分别外延也就没有边框的意义了),
这也就是为什么我们生成的正方向的宽度是边框2倍的原因。
提到上面一点还想就是提醒小伙伴们,在平时用css绘制三角形的时候,为了避免多占空间,我们可以省去对边边框的设置。
上图例子图像设置除了没有设置下边框,其余的和demo5均相同,我们可看到,箭头依然完好无损,但图标实际占用空间却节省了一半,所有在平时开发中我们要注意这个 隐藏的小坑 !
好啦,利用css绘制三角形就说到这里,相信小伙伴们早就一目了然, 只要把其中的一条边框的color设置成固定颜色,其他边框color设置透明 ,就可以画出自己心仪的三角形了。通过设置宽度的不同,还可以画出其他不一样的效果哦,是不是很简单,赶紧动手试试吧!
目前的css标准无法达到渐变效果只能使用图片你发的例子是用了IE的私有滤镜 只能在IE浏览器上达到效果
其他的浏览器都无法正常浏览 ,想实用的话 很简单 ,在 css添加
body {filter:progid:DXImageTransform.Microsoft.gradient(startcolorstr=用起始颜色替换,endcolorstr=用结束颜色替换,gradientType=1)}
起始颜色和结束颜色也是IE私有的#xxxxxxxx 八位格式!