我了解如何覆盖父样式,并且我知道这个示例是人为的,但是有没有办法(使用内联 CSS)使子跨度显示,即使它的父设置为不显示?
<span style="display:none">
<span style="display:block;">Test</span>
</span>
不,您不能覆盖display: none
对内部元素的影响。原因是 CSS 规范none
在display
属性值的描述中明确指出:
该值导致元素不出现在格式化结构中(即,在视觉媒体中,元素不生成框并且对布局没有影响)。后代元素也不生成任何框;元素及其内容完全从格式化结构中删除。不能通过在后代上设置 'display' 属性来覆盖此行为。
简短的回答:没有。
长答案:如果父项被隐藏,则无法覆盖子项中的显示。您可以使用 JavaScript 从其父跨度中删除子跨度,并将其放置在您可以应用显示样式的主体中。诸如显示、不透明度、可见性等之类的东西会影响它们所应用的元素的子元素,这些效果不能完全抵消,但是对于不透明度之类的东西可以添加它们。