我注意到AboutDogs
和AboutCats
div之间的间距非常小,所以我在AboutCats
中添加了一些padding-top: 20px
,以便在AboutDogs
和AboutCats
之间创建一些间距。
但是假设有这样一种情况,我只有AboutCats
,上面没有其他div,在这种情况下,我不想添加padding-top: 20px
,因为这将是不必要的顶部间距。
<div class="MainContainer">
<main>
<div class="AboutDogs"></div>
<div class="AboutCats"></div>
</main>
</div>
有没有一种方法可以使用CSS来解决这个问题?
2条答案
按热度按时间jpfvwuh41#
这就是adjacent sibling selector的用处所在。
顺便说一句,您的HTML代码中有一些错误:
class
和等号之间不能有空格main
标记未关闭下面是您使用的相邻同级选择器的示例:
这对于设置排版元素的间距也非常有用,例如段落跟在另一个段落或标题之后。
你也可以使用CSS grid或flex,结合
gap
属性来完成这个操作。一个二个一个一个
pkwftd7m2#
一个现代的解决方案是使用Flexbox,它对所有可能的情况都是冗余的。将
flex-direction
更改为column
以保持正常的块级行为。您可以使用gap
属性分隔Flexbox中的元素。另一种方法是使用
:nth-child()
选择器。使用n+2
可以选择从第二个元素开始的所有子元素。一个二个一个一个