【问题标题】:Can a border grow in? [duplicate]边界能长出来吗? [复制]
【发布时间】:2021-11-04 07:44:01
【问题描述】:

我要解决的一般问题是堆叠框 (<div>) 的对齐,其中一些具有不同的边框宽度。

考虑下面的两个框

.box {
  border-style: solid;
  border-color: green;
  width: 100px;
  height: 100px;
}

.thick {
  border-width: 30px;
}
<div class="box"></div>
<div class="box thick"></div>

它们的大小相同,但边框超出了框的范围,破坏了它们的对齐方式。

我可以用一些技巧来弥补这一点(移动盒子,有一个厚的透明边框,......)但我希望保持总尺寸固定,并“向内”扩大边框。

这可能吗?

【问题讨论】:

  • 是的,它叫做box-sizing,你需要一个border-box的值。 developer.mozilla.org/en-US/docs/Web/CSS/box-sizing
  • 正如罗伯托所说。我曾经将 *{box-sizing:border-box} 作为我的 css 表中的第一行
  • @RobertoZvjerković:谢谢!你介意把它变成一个答案,以便我接受吗?
  • @AlvaroMenéndez *, *::before, *::after { box-sizing: border-box; }

标签: css


【解决方案1】:

也许我不明白你的意思,但如果我明白了,你也许可以用“box-shadow”属性完成你想要的。像这样:

.box {
  border-style: solid;
  border-color: green;
  width: 100px;
  height: 100px;
}

.thick {
  box-shadow: inset 0px 0px 0px 29px green;
}
<div class="box"></div>
<div class="box thick"></div>

【讨论】:

    【解决方案2】:

    有一种方法可以通过使用outlineoutline-offset 规则来完成此操作,如下例所示。

    *{
       box-sizing: border-box;
     }
    
    .box {
      border-style: solid;
      border-color: green;
      width: 100px;
      height: 100px;
    }
    
    .thick {
       outline: 10px solid red;
       outline-offset: -10px;
    }
    <div class="box"></div>
    <div class="box thick"></div>

    编辑 我还强烈建议您始终使用border-box,如 sn-p 所示。这个关于 box-sizing 的documentation 会更详细地解释它。

    【讨论】:

      【解决方案3】:

      .box {
        border-style: solid;
        border-color: green;
        width: 100px;
        height: 100px;
        box-sizing: border-box;
       -moz-box-sizing: border-box;
       -webkit-box-sizing: border-box;
      }
      
      .thick {
        border-width: 30px;
        margin-top: 10px;
      }
      <div class="box"></div>
      <div class="box thick"></div>

      【讨论】:

      • 为了让盒子完美对齐,第一个盒子不应该也有box-sizing: border-box吗?
      • 您的观点是正确的,谢谢。
      猜你喜欢
      • 2014-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-29
      • 2015-04-28
      相关资源
      最近更新 更多