Css 引导4间隔错误?

Css 引导4间隔错误?,css,bootstrap-4,Css,Bootstrap 4,Bootstrap4必须使用简单的CSS类调整边距和填充 理论上,我可以这样做: <div class="d-inline-block bg-inverse p-5 pb-0 m-5 mb-0"></div> 这应该是一个元素,除了底部之外,每侧都有填充物和边距。对吧? 但事实并非如此。相反,pb-0和mb-0被p-5和m-5覆盖,如下所示: pb-0和mb-0在原始源中的p-5和m-5之后定义,这些类中使用的所有属性都具有!重要信息。因此pb-0应该覆盖p-5

Bootstrap4必须使用简单的CSS类调整边距和填充

理论上,我可以这样做:

<div class="d-inline-block bg-inverse p-5 pb-0 m-5 mb-0"></div>

这应该是一个元素,除了底部之外,每侧都有填充物和边距。对吧?

但事实并非如此。相反,
pb-0
mb-0
p-5
m-5
覆盖,如下所示:


pb-0
mb-0
在原始源中的
p-5
m-5
之后定义,这些类中使用的所有属性都具有
!重要信息
。因此
pb-0
应该覆盖
p-5
定义的
填充底部
,而
mb-0
应该覆盖
m-5
定义的
空白底部

我创建了另一个示例,其中我以相同的方式定义了这些类,但在本例中,它们按预期工作:



为什么这些Bootstrap 4类不能按预期工作?UTIL使用的间距
!重要信息
因此,使用
pb-0
覆盖
p-5
是行不通的,因为
p-5
bootstrap.css中遵循
pb-0

要获得它,请设置特定的侧面

而且,由于默认情况下DIV没有填充或边距,因此实际上不需要
*-0



另请参见,

浏览器在
\u间距.scss
第12行中指示
p-5
,在
\u间距.scss
第15行中指示
pb-0
。但是在查看引导文件之后,
-0
类首先在
\u size.scss
中的
@each
循环中生成。所以是的,正如你所说,
p-5
是在
pb-0
之后定义的。但这对我来说似乎有点不对劲,我找不到一种情况,你需要一个特定的边填充被一个通用填充覆盖。我解决了在
\u variables.scss
中重新排列
$spacer
数组的问题。谢谢是的,这在你的情况下有效,但其他人可能想要相反的结果。例如,假设您要将填充置零,然后将其添加回一侧,例如:
Text
。目前在BS4中,这是可行的,但是如果你改变类的顺序,它将不起作用,是的。。。没错。我本来打算打开一个关于GitHub的提案,但现在以您的例子来看,我发现没有理想的解决方案。感谢您的洞察力和伟大的问题!