gpt4 book ai didi

css - 文本转换不能改变/被覆盖? (CSS)

转载 作者:行者123 更新时间:2023-11-28 10:58:02 24 4
gpt4 key购买 nike

我正在研究css,我不明白为什么一些其他文本第2行有红色下划线效果。我想我要么为其他类(class)更改它,要么为 line2 类(class)将其重置为无

我为 .line2 和 .others 都尝试了 `text-decoration:none',文本仍然带有红色下划线。

    <html>
<head>
<style type="text/css">
.line {color:red; text-transform:uppercase; text-decoration:underline;}

.line2 {color:blue; text-transform:none;}

.others {color:black; text-transform:lowercase; text-decoration:blink; font-weight:bold;}
</style>
</head>

<body>
<div class='line'>
line 1
<div class='others'><BR>some OTHER text<BR></DIV>
<div class='line2'>
<BR>line 2
</div>
</div>
</body>
</html>

最佳答案

起初看起来很奇怪,但这种行为是内置在 CSS 规范中的:

This property is not inherited, but elements should match their parent. E.g., if an element is underlined, the line should span the child elements. The color of the underlining will remain the same even if descendant elements have different 'color' values.

参见 http://www.w3.org/TR/REC-CSS1/#text-decoration .

这是一种特殊的继承,不同于标准的 CSS 继承,这就是为什么你不能用其他规则、更具体的选择器或 !important 覆盖它的原因。

我猜这是因为文本装饰效果最初设计用于内联元素,而不是 block 元素。想象一下其中包含跨度的链接 - 跨度采用父链接的文本装饰属性确实有意义。

不调整 HTML 就没有真正的修复。避免该问题的最简单方法是避免在 block 上设置文本装饰(尤其是像 <div class="line"> 这样的“容器” block )。我会使用类似的东西:

<html>
<head>
<style type="text/css">
.line {color:red; text-transform:uppercase; text-decoration:underline;}

.line2 {color:blue; text-transform:none;}

.others {color:black; text-transform:lowercase; text-decoration:blink; font-weight:bold;}
</style>
</head>

<body>
<div>
<span class="line">line 1</span>
<div class="others"><BR>some OTHER text<BR></DIV>
<div class="line2">
<BR>line 2
</div>
</div>
</body>
</html>

虽然是个好发现 - 学习新东西总是好的!

关于css - 文本转换不能改变/被覆盖? (CSS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2770625/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com