【发布时间】:2017-02-20 16:50:21
【问题描述】:
我正在尝试使用背景在 div 中创建网格。 自然, background-size 属性是创建网格的好方法,其中 10% 的大小将在 div 中创建 10 个均匀分布的单元格,例如:
div{
width:200px;
border:solid 1px black;
background-size: 10% 1px;
background-image: linear-gradient(to left, gray 1px, transparent 1px);
}
<div>x</div>
但是,我还需要将 box-sizing 设置为“border-box”,否则该框占用的像素比通过 width 属性指定的要多。这会在 Chrome 中使用按百分比指定的背景大小造成各种破坏,例如:
div{background-color:white;}
#d1 {
width:200px;
border:solid 1px black;
background-size: 10% 1px;
background-image: linear-gradient(to left, gray 1px, transparent 1px);
padding:5px;
box-sizing:border-box;
}
#d2 {
width:200px;
border:solid 1px black;
background-size: 10% 1px;
background-image: linear-gradient(to left, gray 1px, transparent 1px);
padding:5px;
}
<div id="d1">more than 10 cells</div>
<p>
<div id="d2">box is bigger than 200px</div>
请注意,顶部 div (d1) 中显示了超过 10 个单元格,尽管每个单元格都应该是 div 宽度的 10%。
这似乎只是一个 Chrome 问题,但如果有人对此有解决方案,请告诉我。
【问题讨论】:
-
grid,你的意思是背景图案,对吧? -
background-sizeCSS属性指定背景图像的大小。图像的大小可以完全限制或仅部分以保持其固有比例。 developer.mozilla.org/en/docs/Web/CSS/background-size -
是的,我正在尝试创建一个自定义进度条,其中 bg 模式创建一个均匀划分的网格。然后我就可以使用js来改变网格密度。但我肯定想使用百分比来指定网格中的单元格宽度,因为进度条宽度也可能会改变。
-
了解如何。不知道为什么 :)...
-
Firefox 都正确呈现,对我来说看起来像是 Chromium 错误。
标签: css background-size border-box