【CSS】带边框的三角形(position)
思路是将 2 个三角形叠加起来,外层的三角形稍微大一些。
思路和【CSS】内圆角(box-shadow、outline)这个笔记的 “方法一” 类似。
这个笔记最后会补充【CSS】画三角形(border)这个笔记里记漏的一点。
复制代码
以上是最终代码。
注意加粗部分。
逐步分析:
复制代码
一开始的思路是分别生成外层和内层的三角形。得到的效果如下图所示。
之所以会出现这种情况,是因为内层嵌套的元素,会在外层元素的正式内容部分开始出现。看看下面的盒子模型。
嵌套的内容,都会从黄色框(content)的左上角开始出现。
再看下图:
根据红色的指示线可以看得出,黄色三角形左边的角和黑色三角形上面的角是在同一水平线上的。所以黄色三角形(嵌套的)应该向左移动。
向左移动距离 = 黄色三角形 border 的值。
左负 右正
向下移动距离 = (黑 border - 黄 border)/ 2 +1
上负 下正
最后回顾一下 border 的用法
border 可以一次设置 4 条边的所有属性,
如:
复制代码
这就把 4 条边都设置成 1 像素的实线,且颜色为灰色。
可以把所有属性分开设置,
如:
复制代码
这就把 4 条边都设置成 10px。
可以分别设置 4 条边同一属性的不同值,并写在同一行代码里。
如:
复制代码
对应是顺序是:上 右 下 左
如果只设置两个值,如:
复制代码
对应:上下 左右
如果只设置三个值,如:
复制代码
对应:上 左右 下。
即:上 1px 左右 2px 下 3px
评论