8

我了解如何覆盖父样式,并且我知道这个示例是人为的,但是有没有办法(使用内联 CSS)使子跨度显示,即使它的父设置为不显示?

<span style="display:none">
<span style="display:block;">Test</span>
</span>
4

2 回答 2

11

不,您不能覆盖display: none对内部元素的影响。原因是 CSS 规范nonedisplay属性值的描述中明确指出:

该值导致元素不出现在格式化结构中(即,在视觉媒体中,元素不生成框并且对布局没有影响)。后代元素也不生成任何框;元素及其内容完全从格式化结构中删除。不能通过在后代上设置 'display' 属性来覆盖此行为。

于 2013-09-08T18:39:08.103 回答
10

简短的回答:没有。

长答案:如果父项被隐藏,则无法覆盖子项中的显示。您可以使用 JavaScript 从其父跨度中删除子跨度,并将其放置在您可以应用显示样式的主体中。诸如显示、不透明度、可见性等之类的东西会影响它们所应用的元素的子元素,这些效果不能完全抵消,但是对于不透明度之类的东西可以添加它们。

于 2013-09-08T06:47:04.293 回答