视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
css巧用border属性制作各种图形(矩形,梯形,三角形)
2020-11-27 16:41:26 责编:小采
文档
border梯形

为了观察边框究竟是哪一种拼接方式,为边框设置不同的颜色背景,代码如下:

#content{
 width: 100px;
 height: 100px;
 background: #FFC;
 border-top: 80px solid #0F0;
 border-right: 80px solid #09C;
 border-bottom: 80px solid #9F9;
 border-left: 80px solid #FC3;
}

上面的CSS控制ID属性为content的div块的属性,显示效果如下:

从上面的效果很显然了,每个边的border是梯形无缝拼接的,而不是矩形拼接的。

那么我们就可以把另外三个边框的颜色设置为transparent,这样就可以得到一个梯形啦!

#content{
 width: 200px;
 height: 200px;
 border-top: 80px solid #0F0;
 border-right: 80px solid transparent;
 border-bottom: 80px solid transparent;
 border-left: 80px solid transparent;
}

显示效果如下:

那就有疑问了,可不可以通过不定义其他三条边框来达到只显示一条边框的梯形呢?

#content{
 width: 200px;
 height: 200px;
 border-top: 80px solid #0F0;
}

像上面的代码,我们期望的是显示盒模型中的上边框梯形,但是实际的显示效果是下面这样的:

是一个矩形!而且矩形的宽就是200px,即我们定义的内容的宽度,奇怪!我们还不相信,于是再换一换浏览器试试,然而FF,IE,Chrome都是这样的。我们可以想到这样一种解释,如果边框不定义,那么这条边框就表现为矩形,如果边框定义,那么它就表现为梯形。这样也就可以解释上面的例子为什么会出现矩形了。由于左右边框都没有定义,所以属于左右边框区域的整个矩形都消失了,留下的上边框自然直剩下一个矩形啦!

border三角形

既然可以使用border实现梯形,可不可以实现三角形呢。梯形在上底边变为0的时候,梯形会退化为三角形,我想你已经有了答案,如果设置content的height和width都为0时,我们就能得到四个三角形:

#content{
 width: 0px;
 height: 0px;
 border-top: 80px solid #0F0;
 border-right: 80px solid #09C;
 border-bottom: 80px solid #9F9;
 border-left: 80px solid #FC3;
}

我们当然也可以通过设置其他边的border的背景为transparent实现一个或者2个或者3个三角形咯!

#content{
 width: 0px;
 height: 0px;
 border-top: 80px solid #0F0;
 border-right: 80px solid #09C;
 border-bottom: 80px solid transparent;
 border-left: 80px solid transparent;
}

当然,如果不定义某些边的border,不定义的border就会表现为矩形。

#content{
 width: 0px;
 height: 0px;
 border-top: 80px solid #0F0;
 border-right: 80px solid #09C;
 border-left: 80px solid #FC3;
}
/*没有定义border-bottom的的情况下,下边border的整个矩形将会消失

如果同时没有定义左右边框,或者上下边界的话,就会什么都不显示。当然也可以一边不定义,一边隐藏,就会有很多种图形啦。

更多的,可以用在表格中画斜线,多个border叠加,和before,after伪元素的结合起来就有很多妙用啦!关键是要理解border的具体表现形式。

下载本文
显示全文
专题