假设我想在页面上的所有元素(p,blockquote,dl,form,ol,ul,pre,table等)之间保持2em垂直距离。
所以我在所有必要元素上抛出margin-bottom:2em;
。大。
然后我看到几个P
标签,彼此相继,看起来相距太远,我希望它们有1.5em,同时将2em保留在所有其他元素之间。
最优雅的方式是什么,同时坚持使用我们即将到来的利润 - 仅使用底部保证金的概念?
选择器p+p
会向p
“列表中的所有内容应用底部边距”除之外的第一个。请注意,它也会在最后一个p
上设置1.5个边距,该边距不应该有较小的边距,而是较大的2em底部边距。
我还尝试了:last-child
选择器,首先将小边距值放在所有p
标记的底部,然后使用p:last-child
将最后一个段落设置为更大的2em底部余量。这听起来不错,但实际上并没有对分组中的最后p
进行更改。
请注意,我可以通过上边距切换到管理边距 哪个案例
p+p
可以非常优雅地控制它们之间的间距p
个标签。但是,有时您在顶部(其他元素,如h1等)有额外的间距 并且必须克服这一点。我没有研究这么长时间才知道 肯定margin-bottom
是最好的,但这就是我的目标 现在。
答案 0 :(得分:0)
我最终找出了为什么last-child
选择器不起作用。这是因为所有的P和OL以及其他元素都是body元素中的兄弟,所以浏览器实际上并不知道该部分中的最后一个P是最后一个孩子。
我将P的分组包装在<div>
代码中,last-child
开始正常工作。因为那时last-child
运算符未使用body
运算符{1}}元素,但是div
的最后一个孩子。
所以这是让我开心的相关CSS ......
p { margin: 0em 0em 1em;} // the small margin between P tags
p:last-child {margin-bottom: 2em;} // the large margin