html 不要将CSS应用于< p>包含< em>[duplicate]

cyvaqqii  于 2022-12-09  发布在  其他
关注(0)|答案(6)|浏览(119)

此问题在此处已有答案

11年前就关门了。

可能重复:

CSS selector for “foo that contains bar”?
我的网站上所有的<p>都得到20pxmargin-bottom
我不想将此margin-bottom应用于包含<em>元素<p>
有没有可能这个没有类或者id的。
可以使用CSS3。

c8ib6hqw

c8ib6hqw1#

To apply style to all p not containing an em :

p:not(:has(em)) {
    margin-bottom: 20px;
}

I'm afraid this isn't possible with pure CSS.

wztqucjr

wztqucjr2#

不幸的是,在纯css中没有办法做到这一点。
不过,您可以使用一些jQuery。
$('em').parent().css('marginBottom','0');
http://jsfiddle.net/jasongennaro/5pPGF/

deyfvvtc

deyfvvtc3#

在纯CSS中,我能看到的唯一方法是使用父节点选择器。不幸的是,does not exist in CSS2 or CSS3就是这样的。

cuxqih21

cuxqih214#

你所描述的基本上是一个“升序”选择器,根据它的降序来选择某个元素。这仅仅使用CSS是不可能的,你还必须使用JavaScript。

tyky79it

tyky79it5#

据我所知,纯CSS还不能做到这一点,但您可以通过巧妙地使用jQuery来实现这一点:

$(function() {
    $("em").parent("p").addClass("nomargin")
})

或者类似的东西...

ztyzrc3y

ztyzrc3y6#

您的问题不清楚。请重新检查您的问题。但是您可以为全局标记设置边距和填充,例如

p{margin:0}


*{margin:0; padding:0 },然后将其更改为精确的div、class。在这种情况下,所有其他元素仍将设置为边距:0,填充:0

相关问题