关于border-width的奇妙探索

刚好刷前端面试题里有一道关于气泡对话框的,然后就思考怎么做捏~~ 然后就觉得应该有创建蒙版之类的特技!不会 == 于是看看张鑫旭的博客,看到了边框法实现底部90度尖角对话框,第一遍看,觉得代码看起来怪怪的,好吧,先顺着敲一遍看看。然后,极端的改变下属性值或者注释看看~~啊噢,原来是border-width在施魔法呢~于是,我就开始玩了......咦,好像发现了点什么呢~~~想起来了,border-width的四条边框是可以单独设置的,然后,终于见识了transparent的神奇~

 1 <!doctype html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>测试border-width</title>
 6     <style type="text/css">
 7     div{
 8         /*这里给一个空的div设置border后,将显示一个高度为20px的矩形框*/
 9         width: 500px;
10         border:10px solid red;
11         margin-bottom: 30px;
12     }
13     .third{
14         border-color:red transparent;
15     }
16     .change{
17         /*现在有点像沙漏了吧,再慢慢的改变width的值,仔细一测量,这里的width就是两个凹进去的点的水平距离,而定边和底边的宽度等于width+2*border-width*/
18         width:2px;
19     }
20     .four{
21         border-color:red transparent transparent transparent;
22     }
23     .five{
24         width: 0;
25         /*改变这里的height值看看,挺有意思的 */
26         height: 20px;
27     }
28     .six{
29         width: 200px;
30         height: 0px;
31     }
32     .seven{
33         border-width:10px;
34         border-color:red red transparent transparent; 
35     }
36     .eight{
37         border-width:10px;
38         border-color:transparent red transparent transparent; 
39     }
40     .nine{
41         border-width:10px;
42         border-color:transparent transparent red transparent; 
43     }
44     .ten{
45         border-width:10px;
46         border-color:transparent transparent transparent red;
47     }
48     .eleven{
49         border-width:10px;
50         border-color:transparent transparent red red;
51     }
52     </style>
53 </head>
54 <body>
55 <!-- 当div没有高,只设置span时,div效果就是一个矩形啦,高度就是border-width的两倍,真的,不骗你,不信你自己看第一个效果 -->
56     <div></div>
57     <div>当div里有文字的时候,也就是div有自己的高度时,border会是什么效果呢?这个时候我们可以看成,div的上下分别被一个高度为10px的矩形包围,左右分别被一个宽度为10px的矩形包围。</div>
58     <!-- 当我的border-color:red transparent时,我就成了这样一个怪样纸 -->
59     <div class="third"></div>
60     <div class="third change"></div>
61     <div class="third">我和上面的哥们都设置了border-color:red transparent;但是我有文字,也就是我有自己的高度,</div>
62     <!-- 当div没有高度且border-color:red transparent transparent;你自己看,这到底是怎么回事呢?我的border-bottom好像失踪啦-->
63     <div class="four"></div>
64     <div class="four">我和上面的哥们都设置了border-color:red transparent transparent;虽然我现在有高度了,但是我的border-bottom好哥们还是没回家</div>
65     <div class="four five"></div>上面显示了一个底边为20px,高度为10px的倒直角三角形。这里的底边宽度和高度都是由border-width决定的,和我的height根本没关系呢
66     <div class="four six"></div>下面显示了一个顶边为20px,底边为40px,高为10px的倒立梯形
67     <div class="seven"></div>
68     <div class="eight"></div>
69     <div class="nine"></div>
70     <div class="ten"></div>
71     <div class="eleven"></div>
72 </body>
73 </html>

运行效果:

 

原文地址:https://www.cnblogs.com/rosestudy/p/4836927.html