【问题标题】:Add offset to border-bottom in CSS在 CSS 中为边框底部添加偏移量
【发布时间】:2019-03-20 10:40:36
【问题描述】:

我有一个问题,我需要在 CSS 中使用给定的偏移量来制作边框底部

例如,在这个 JSFiddle 中,我有一个黑色边框底部。

https://jsfiddle.net/uexma4o6/343/

<div style="border-bottom: 2px solid black; width:500px; height:40px; background-color:lightcoral"></div>

但我想给这个 2px 纯黑色边框偏移 5px 的位置。

有可能吗?

【问题讨论】:

    标签: css border offset


    【解决方案1】:

    这可以通过线性渐变来完成:

    .box {
      background:
        linear-gradient(black,black) 0 calc(100% - 5px)/100% 2px no-repeat,
        lightcoral;
      width: 500px;
      height: 40px;
    }
    &lt;div class="box"&gt;&lt;/div&gt;

    你也可以这样做:

    .box {
      background:
        linear-gradient(black,black) bottom/100% 2px no-repeat,
        lightcoral;
      border-bottom:5px solid lightcoral;
      width: 500px;
      height: 40px;
      box-sizing:border-box;
    }
    &lt;div class="box"&gt;&lt;/div&gt;

    盒子阴影的另一个想法:

    .box {
      background:lightcoral;
      border-bottom:2px solid black;
      box-shadow:0 5px 0 lightcoral;
      width: 500px;
      height: 40px;
    }
    &lt;div class="box"&gt;&lt;/div&gt;

    并带有嵌入阴影:

    .box {
      background:lightcoral;
      box-shadow:
        0 -5px 0 lightcoral inset,
        0 -7px 0 black inset;
      width: 500px;
      height: 40px;
    }
    &lt;div class="box"&gt;&lt;/div&gt;

    【讨论】:

    • 是的!有效!但这不是 Macgyver 吗?
    • @felipe 你是什么意思?
    • 这是一个非常复杂的解决方案,而不仅仅是偏移,因为我需要渐变才能偏移边框。我只想给边界一个偏移量,我在谷歌上没有找到。
    • @felipe 边框是边框,如果你想在内容中偏移它,那么它就不再是边框了,你需要使用其他东西;)如果你愿意,我会提供其他方式跨度>
    • @felipe 如果你愿意,我添加了更多方法
    【解决方案2】:

    解决方案

    https://jsfiddle.net/StephanieSchellin/j7pmxkc3/

    使用 CSS ::after 添加具有您正在寻找的边框的伪元素。然后移动伪元素以按您喜欢的方式定位它。此伪元素将始终绑定到其根元素,但您仍然必须考虑修改它以进行 @media 查询更改等。

    您在下图中看到,此解决方案将伪元素分层放在根元素之上。您可以选择使用 ::before 或尝试其他定位设置来满足您的布局需求。

    在进行此类边缘案例时,请务必进行大量跨浏览器测试,因为您可能会遇到盒模型问题。

    HTML

    <div class='the-div'></div>
    

    CSS

    .the-div {
      width:500px;
      height:40px;
      background-color:lightcoral;
      position: relative
    }
    .the-div::after {
      border-bottom: 2px solid black;
      content: '';
      width:500px;
      position:absolute;
      bottom:5px;
    }
    

    进一步阅读

    https://css-tricks.com/pseudo-element-roundup/ 你可以用伪元素做很多很酷的事情。

    【讨论】:

    • 为什么要让伪元素位置:固定?只需将其设置为 position:absolute ,您就可以轻松地调整其相对于 div 而不是视口的位置
    • 你是对的。我将其更新为绝对位置。但我建议进一步的浏览器测试以确保盒子模型的行为符合预期,内容没有价值:“”使用绝对位置。
    猜你喜欢
    • 1970-01-01
    • 2022-12-01
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多