【问题标题】:Is there a reason why Bootstrap 3 has horizontal padding in columns but not vertical?Bootstrap 3 在列中有水平填充但没有垂直填充是否有原因?
【发布时间】:2014-09-15 10:28:50
【问题描述】:

我正站在悬崖边,即将做出一个重要决定,这将影响我们在 Bootstrap 方面的长期发展,我想确保我对他们使用 Column Padding 背后的原因有一个很好的理解强>.

我们运行一个多租户 cms 系统,该系统提供引导程序作为构建站点的可用框架之一,然后我们的系统在其之上添加功能层,因此我们做出的任何决定都会影响所有租户

其中一个基本功能是在使用引导列(即col-lg-6)或我们称之为Section 时,用户可以选择将内容放入Bleed 以边缘,或者被填充包围。

在引导程序中,列使用padding-left:15px; padding-right:15px; 表示水平,而padding-top:0; padding-bottom:0; 表示垂直。

在我们的系统中,我们会一直使用padding:15px;,因为用户还可以设置列/部分的背景颜色和/或图像,逻辑是您希望看到所有侧面的颜色/图像当不使用bleed 时,反之亦然。

我知道引导程序中的水平边距作为网格系统的函数重叠,但填充是列之间的累积。所以我的问题是:垂直填充是否有原因也明确设置?强迫我们的客户这样做可能会产生什么影响?

NB 任何东西都可以通过自定义 CSS 编辑器覆盖,类似于 Wordpress 中的编辑器,尽管这种功能显然基本上是为“知情者”保留的,而不是我期望的普通用户使用。


编辑:以下是我们创建的测试助手,用于从标题标签顶部删除边距,这是我们一个部分的第一个子标签(为清楚起见,删除了细节)。

section h1:first-child, section h2:first-child, section h3:first-child,
section h4:first-child, section h5:first-child, section h6:first-child 
{ margin-top: 0 !important; }

这也可以用于最后的项目以及删除底部边距/填充。

如果我们扩展它以覆盖下面提到的元素(即表单、p、h1-6 等),这样正常的间距仍然存在,这是否会使事情进一步复杂化,或者足以在允许我们自己的同时保留 Bootstrap 的意图功能正常吗?

【问题讨论】:

  • 如果最后一项是按钮并且您删除了填充,则会导致一些问题。相反,我会(无论如何)保持一切不变,并确保任何人放在专栏中,无论是图像还是其他东西,都具有相同的节奏。因此,所有图像都强制在一个图形内,这是适当的,并且该图形与 h1-h6 具有相同的边距。
  • @BootstrapThemer 非常好的一点,尽管即使我们从恰好是最后一个按钮的按钮中删除边距,它仍然会在其下方具有由列提供的 15px 填充(当然,我们概述的更改)。考虑到 H1 的顶部为 20 像素,而该列仅提供 15 像素,我可能不得不对我们的模组进行一些调整,但我们不需要以这种方式调整大量元素。非常感谢您的意见!

标签: css twitter-bootstrap twitter-bootstrap-3 css-frameworks


【解决方案1】:

这是因为在那些列之间默认间距为 30px 的列中,通常有表单、ul、ol、p、h1-h6 和其他具有底部边距的内容,所以当它堆叠时会有垂直间距,如果你要在列上添加底部或顶部填充在堆叠时看起来会很奇怪,两个 50% (col-*-6) 列内的两个段落将在第一和第二个之间有额外的填充。嵌套列会很奇怪,并且会有更多的间距问题。垂直堆叠唯一没有空间的情况是如果您要在其中粘贴图像,但是您可以向图像添加自定义类以在未浮动版本上获得一些底部边距。

【讨论】:

  • 感谢您的加入。我想我之前已经看到您对 Bootstrap 中垂直间距的回答,例如与表单元素有关,因为 bootstrap 缺少任何垂直间距帮助器(如果我'我错了)。如果我没记错的话,在助手的帮助下,您可以为缺少它的元素设置一些稍微改变的自动间距。为了我们自己的缘故,我创建了一个简单的,当 H1 标签是我们某个部分的第一个元素时,它删除了 H1 标签从引导程序中获得的 20px 上边距。我想我可以对你提到的其他元素做同样的事情?!?!
  • .form-group 以垂直间距堆叠表单,唯一的问题是在这些组内嵌套列。对于普通形式,它不会出现。见之前:jsbin.com/xigere/1/edit 之后:jsbin.com/vihaj/1/edit
  • 仅供参考,我刚刚用我提到的 CSS 更新了问题以及我的潜在解决方案可能是什么。我会看看你刚刚出现的例子,谢谢!
  • 对于普通列,两列/所有列中都有文本,元素排成一行,但如果将图像放在其中一列中,文本在另一列中,则文本列的上边距不对齐向上,所以我要么在这种情况下删除上边距,要么重组
  • 不是在我们的例子中,第一个 P 标签会删除它的顶部间距,而第一个图像将没有,所以它们会对齐。至于嵌套元素,我使用了高选择性,因此只有第一层会受到更改的影响,嵌套元素将继续享受默认的 Bootstrap 间距。
猜你喜欢
  • 2016-05-28
  • 2013-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-10
  • 2012-12-19
  • 2013-11-24
  • 1970-01-01
相关资源
最近更新 更多