【问题标题】:Best way to extend pure-css's grid to have gutters扩展纯 CSS 网格以拥有排水沟的最佳方法
【发布时间】:2014-07-05 23:23:34
【问题描述】:

我从 SUITCSS 背景开始使用 Pure CSS(Yahoo! 框架),我正在寻找一种巧妙的方法来为多列网格添加排水沟。

我看到有人提到 l-box 技术,但找不到合适的例子。

这是我目前正在尝试的,通过添加 pure-g--gutter 类:

.pure-g .pure-g--gutter {
  margin: 0 -0.5rem;
}

.pure-g .pure-g--gutter > div {
  padding: 0 0.5rem;
}

不幸的是,虽然这似乎确实按预期设置了边距和填充,但它也会导致网格将第二列(两列)重新排列到下一行。

PureCSSers:你用什么来实现网格列?

【问题讨论】:

  • 为什么要使用填充?只需为内部元素添加边距。 .pure-g .pure-g--gutter > div > * {margin: 0 0.5rem}
  • 稍后会尝试并回复您 - 干杯。
  • 我会把它作为答案发布。如果它不起作用,我会删除它。祝你好运!
  • 查看步骤 2 here。告诉我这是否包含您要查找的内容。
  • 谢谢@MarkusHofmann - 看起来它也应该工作,但我想要一个不需要支持标记的解决方案(firstlast 等)。不过,我很欣赏这个链接

标签: css yui-pure-css


【解决方案1】:

当您可以为子级添加边距时,无需使用padding

.pure-g .pure-g--gutter > div > * {
    margin: 0 0.5rem;
}

【讨论】:

  • 是的。行得通。我以为填充是为了抵消边距,但是当你让我退后一步思考它时,它是完全有道理的。干杯 - 太近了,看不到它。 500 因果报应非常值得!
  • 这太慢了!
  • @JonasG.Drange 如果您担心 CSS 中所有可能的性能问题,请不要使用框架。
【解决方案2】:

您需要为每个网格边框设置 box-sizing 并添加填充,以便内部内容在边框之间留出空间:

.pure-g > div[class*="pure-u-"] {
  padding: 1em;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
每个网格列内部都有填充,因此列中的子 div 将有空间。为子 div 添加背景,以便显示空间。

在我的 codepen 上查看它:http://codepen.io/ecupaio/pen/bpWJMr

【讨论】:

  • 这就像一个魅力!在我的父包装器中快速轻松地添加类
    CSS .grid-padding.pure-g > div[class*="pure-u- "] {...} 查看 codepen 解决方案
猜你喜欢
  • 2018-11-03
  • 2020-09-21
  • 2018-08-18
  • 2015-06-08
  • 2011-07-16
  • 2021-04-04
  • 2018-02-26
  • 1970-01-01
  • 2017-12-20
相关资源
最近更新 更多