T-Shirt吊牌可以参与抽奖,那我直接批发!

Never Gonna Give You Up :tieba_087:

效果图对比


开始动手

起初,我以为这东西没啥难度,随便弄下就行了 :tieba_087: 结果水平受限,还是碰壁了~

最开始想的是直接mask把四周遮罩掉,好是好,就是不那么好!用来做单纯背景还行,加上边框后,事情开始不对劲了 :tieba_087: 于是只能pass。

绘图大法

既然传统路走不通,那只能开启绘图大法了~

第一步,老传统了,分析能否拆解。很明显,我们这里有相同规律的内容,四个角都是相似的,就是一个圆被分成了四块,那直接干!

  background: radial-gradient(
        var(--r) at var(--r) var(--r),
        transparent calc(98% - var(--w)),
        #f00 calc(100% - var(--w)) 98%,
        transparent
      )
      calc(var(--r) * -1) calc(var(--r) * -1) / 100% 100%

剩下的就简单多了,把四周闭合就行了

linear-gradient(#f00, #f00) calc(var(--r) - 1px) 0 /
      calc(100% - var(--r) * 2 + 2px) var(--w) no-repeat,
    linear-gradient(#f00, #f00) calc(var(--r) - 1px) 100% /
      calc(100% - var(--r) * 2 + 2px) var(--w) no-repeat,
    linear-gradient(#f00, #f00) 0 calc(var(--r) - 1px) / var(--w)
      calc(100% - var(--r) * 2 + 2px) no-repeat,
    linear-gradient(#f00, #f00) 100% calc(var(--r) - 1px) / var(--w)
      calc(100% - var(--r) * 2 + 2px) no-repeat

将它们组合起来,不就是一个完整的么!真是amazing!

这种拆分组合的在 一个奇奇怪怪的边框实现 中也使用到了,你发现了吗? :smiling_face_with_three_hearts:

双重边框

最复杂的内凹边框我们已经完成,接下来第二层规规矩矩的边框就简单多了!

这里大鹅提供两种方法实现:1)伪元素; 2)outline

伪元素

这也是最直接想到的办法,使用伪元素重新绘制一个相同比例的小矩形,再加上边框即可

&::after {
      content: "";
      position: absolute;
      inset: 5px;
      border: var(--w) solid var(--c);
    }

这里的 inset 一下子就能完成收缩,要记得常用哦!这个方法没啥好讲的,一看就会!

outline

outline,顾名思义就是一个外轮廓,outline 方法比传统的伪元素还简单直接

outline: 2px solid var(--c);
outline-offset: -7px;

配合 outline-offset 即可实现缩进,负数向内,正数向外。它还不占用空间哦!

主要知识点就是这么多,是不是很简单!

放两个源码,自行对比下


你可以在这里找到大鹅所有CSS知识分享哦
:red_triangle_pointed_down::red_triangle_pointed_down::red_triangle_pointed_down::red_triangle_pointed_down::red_triangle_pointed_down:
🔥【冷门知识】鹅のCSS大合集!长期追更~ 收藏 ≈ 学会

55 个赞

看出彩蛋的大佬,雅座请!

6 个赞

太酷了!

4 个赞

鹅鹅鹅太快了!! :fox:

2 个赞

大帅哥好快!

4 个赞

Jay 也快

4 个赞

大讷 狠狠的教我

2 个赞

没有大鹅快!

2 个赞

大鹅,太酷了 :raised_fist:

2 个赞

好强的鹅

2 个赞

DONE ? 没有 Zhi Yang

4 个赞

继续学习…

3 个赞

せーのっ 啃球C 啃球V

3 个赞

太棒了,宝贝~

3 个赞

咋不能传图了哇 :tieba_087:

2 个赞

你好棒啊大鹅

3 个赞

方块也棒!

3 个赞

大鹅老师是真的强

2 个赞

鹅佬,古希纳掌管css的神 :tieba_025:

2 个赞

原来LINUX DO 的 DO 是 DONE 的意思

4 个赞