以前只知道border属性是盒模型中的边框属性,一直不清楚每个边的border是矩形拼接有重合呢,还是梯形无缝拼接的。

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;
}

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

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAANsAAABiCAIAAABWJDGqAAABLUlEQVR4nO3SIQ4AIAwEwf7/06CxhIQVcxlTV7GzzEqb3w+YHVOktaZIa02R1poirbU5j4HnFEmLImlRJC2KpEWRtCiSFkXSokhaFEmLImlRJC2KpEWRtCiSFkXSokhaFEmLImlRJC2KpEWRtCiSFkXSokhaFEmLImlRJC2KpEWRtCiSFkXSokhaFEmLImlRJC2KpEWRtCiSFkXSokhaFEmLImlRJC2KpEWRtCiSFkXSokhaFEmLImlRJC2KpEWRtCiSFkXSokhaFEmLImlRJC2KpEWRtCiSFkXSokhaFEmLImlRJC2KpEWRtCiSFkXSokhaFEmLImlRJC2KpEWRtCiSFkXScl+k2fcp0lpTpLWmSGtNkdaaIq01RVprirTWFGmtKdJaU6S1pkhrbQOjMwrh6IqkKwAAAABJRU5ErkJggg==" alt="" />

  是一个矩形!而且矩形的宽就是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的具体表现形式。

border属性妙用的更多相关文章

  1. CSS padding margin border属性详解

    图解CSS padding.margin.border属性W3C组织建议把所有网页上的对像都放在一个盒(box)中,设计师可以通过创建定义来控制这个盒的属性,这些对像包括段落.列表.标题.图片以及层. ...

  2. CSS3:不可思议的border属性&Web字体图标Font Awesome

     CSS3:不可思议的border属性 转载至——译文:不可思议的CSS border属性 原文:Magic of CSS border property Web字体图标Font Awesome 转载 ...

  3. CSS:不可思议的border属性

    原文:Magic of CSS border property 译文:不可思议的CSS border属性 译者:dwqs 在CSS中,其border属性有很多的规则.对于一些事物,例如三角形或者其它的 ...

  4. css 利用border属性制作箭头 Using Borders to Make Pure CSS Arrows

    不再需要多余的图片 用border属性自然能创造箭头效果 学习地址:http://tech.patientslikeme.com/2010/11/09/using-borders-to-make-pu ...

  5. CSS padding margin border属性详解【转载】

    本文转载自:http://www.cnblogs.com/linjiqin/p/3556497.html ,感谢相关博主. 图解CSS padding.margin.border属性 W3C组织建议把 ...

  6. 转-CSS padding margin border属性详解

    原文链接:http://www.cnblogs.com/linjiqin/p/3556497.html 图解CSS padding.margin.border属性W3C组织建议把所有网页上的对像都放在 ...

  7. 2017年总结的前端文章——border属性的多方位应用和实现自适应三角形

    border属性是在实际的应用中使用频率比较高的一个属性,除了作为边框使用,利用border属性的一些特征以及表现方式,可以在实现一些比较常见的效果(如等高布局,上下固定内容滚动布局和绘制CSS图标等 ...

  8. 【转】图解CSS padding、margin、border属性

    http://www.cnblogs.com/linjiqin/p/3556497.html 图解CSS padding.margin.border属性W3C组织建议把所有网页上的对像都放在一个盒(b ...

  9. css中元素border属性的构成以及配合属性值transparent可得到一些特殊形状1.0

    css中我们经常使用到元素的border属性和属性值transparent,可能好多人还不太了解border的构成以及配合transparent的一些效果: 1.border的构成如下所示:   ht ...

随机推荐

  1. 关于win8.1“连接被远程计算机关闭”的一种解决方案

    我就是连接的时候出现"连接被远程计算机关闭",然后想着可能是win8更新之后网络协议 出问题了,后来无意中发现e信在第一次启动的时候会在网络适配器中会多出很多网卡,其中三个是带感叹 ...

  2. Solr4.8.0源码分析(24)之SolrCloud的Recovery策略(五)

    Solr4.8.0源码分析(24)之SolrCloud的Recovery策略(五) 题记:关于SolrCloud的Recovery策略已经写了四篇了,这篇应该是系统介绍Recovery策略的最后一篇了 ...

  3. 在VS2008.Net下使用WPF开发Web应用程序

    原文地址:http://hankjin.blog.163.com/blog/static/33731937200922353623434/ 胖客户端的好处是可以轻易的实现绚丽的效果, 而瘦客户端则需要 ...

  4. 【面试】惠普IT电面

    1.英文自我介绍 一定要事先准备,逻辑要清晰 2.英文项目介绍

  5. ROR入门之旅

    mac上为了不在登录画面看到其他账户,我禁用了root账户,而每次用Terminal的时候,先获得sudo账户的权限: sudo -s mac本身就安装有ruby ruby -v 查看当前安装的rub ...

  6. Unity3d场景合并

    Unity3d场景合并 一.Unity3d场景合并,有一次的情况是这样的,就是我们是每个人都在开发,每个人有不同的场景,那么合并的时候,有些会出问题,那么我有一个好的方案,就是首先弄一个公共的资源库, ...

  7. 【Linux】鸟哥的Linux私房菜基础学习篇整理(五)

    1. type [-tpa] name:查看name命令是否为bash内置命令.参数:type:不加任何参数,type会显示出那么是外部命令还是bash的内置命令:-t:当加入-t参数时,type会通 ...

  8. HDU 4185 Oil Skimming

    题目大意:在一个N*N的矩阵里寻找最多有多少个“##”(横着竖着都行).     题目分析:重新构图,直接以相邻的两个油井算中间算以条边,然后进行匹配,看看两两之间最多能匹配多少对. #include ...

  9. 使用HttpWebRequest进行请求时发生错误:基础连接已关闭,发送时发生错误处理

    原文地址:http://blog.csdn.net/hawksoft/article/details/21776009 最近调试原来的微信模拟登陆时发生了“基础连接已关闭,发送时发生错误”的错误提示, ...

  10. 尚学堂 JAVA DAY12 java程序执行时内存的分配