我想排除h2元素(在h2 div中),这样我就可以只将主标题居中。但是当我使用这个命令时,它将两个标题都居中对齐。
.container:not(.h2) {
display: flex;
justify-content: center;
align-items: center;
}
<div class="container">
<h1>welcome</h1>
<div class="h2">
<h2>Hi</h2>
</div>
</div>
只需要对齐一个元素。
2条答案
按热度按时间0yg35tkg1#
要使用这种方法,您需要使用child combinator
>
,它表示"匹配.container
类的直接子元素,并且没有.h2
类"您最初的CSS
.container:not(.h2)
是说"选择一个既有.container
类又没有.h2
类的元素"-.container
符合这一点,所以它将样式应用于整个div
。实际上,在这个例子中,你可以只在
h1
上使用text-align: center;
,创建不同的flexbox容器,或者使用更具体的元素选择器,而不是使用父类.container
。lb3vh1jj2#
您正在告诉. container类将其子类居中,这就是两个元素都居中的原因。
使用Flexbox的代码:
使用文本对齐的代码:
一个二个一个一个