你所不知道的 CSS 负值技巧与细节

看到有网友使用负的 outline-offset 实现了加号 。嗯?好奇的我马上也动手尝试了下,到底是如何使用负的 outline-offset 实现加号呢?
使用负值 outline-offset 实现加号
假设我们有这样一个简单的结构:
<div></div>div { width: 200px; height: 200px; outline: 20px solid #000; outline-offset: 10px;}

你所不知道的 CSS 负值技巧与细节

文章插图
 
修改 outline-offset 到一个合适的负值,那么在恰当的时候,outline 边框就会向内缩进为一个加号 。
经过一番尝试,修改上述 div 的 outline-offset为 -118px 。
div { width: 200px; height: 200px; outline: 20px solid #000; outline-offset: -118px;}加个动画效果,大概是这样:
你所不知道的 CSS 负值技巧与细节

文章插图
 
【你所不知道的 CSS 负值技巧与细节】很有意思,我尝试了很多不同的情况,最后总结了一个简单的规律,要使用负的 outline-offset 生成一个加号有一些简单的限制:
  • 容器得是个正方形
  • outline 边框本身的宽度不能太小
  • outline-offset 负值 x 的取值范围为: -(容器宽度的一半 + outline宽度的一半) < x < -(容器宽度的一半 + outline宽度)


    推荐阅读