html - 在单个元素上继承多个文本装饰

标签 html css text-decorations

<分区>

我在使用每个主流浏览器时都遇到了同样的奇怪问题:一个元素的样式有两个 text-decoration 属性。

text-decoration

第一个装饰来自父元素,第二个来自元素本身。这是 relevant HTML :

<div style="text-decoration: underline">
    <span style="text-decoration: line-through">Hello</span>
</div>

如何覆盖第一个声明,而不是添加到它?

最佳答案

您看到的是父元素上的文本装饰被应用于子元素中的文本,因为子元素中的文本也被视为父元素中文本的一部分。查看spec了解详情。

目前没有办法在保持文本流动的同时取消子项上的父文本装饰。您可以 float 或绝对定位子元素,或使其成为内联 block ,但这会改变布局。如果这不是您所希望的,您将不得不找到一种方法将父 text-decoration 样式移动到父元素中子元素的兄弟元素。如果父元素中有纯文本,则意味着您需要将其包装在兄弟元素中。例如,如果你有这个额外的文本:

<div style="text-decoration: underline">
    <span style="text-decoration: line-through">Hello</span>
    world
</div>

您需要包装它,并相应地移动声明:

<div>
    <span style="text-decoration: line-through">Hello</span>
    <span style="text-decoration: underline">world</span>
</div>

关于html - 在单个元素上继承多个文本装饰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17193864/

上一篇:css - 更改Kohaha表格的样式

下一篇:HTML 表格未与 CSS 正确对齐

相关文章:

html - 使用来自不同服务器的 css 链接到托管字体

html - 为什么我的div旁边有href装饰?

特定网页上的 CSS 问题

javascript - 一些空间,即使 padding 和 margin 设置为 0px

CSS 样式不适用于容器 div

html - 如何更改表单 text_area 的背景颜色?

css - 当 CSS 被禁用时,如何隐藏 div?

html - 二级菜单,设置text-decoration属性

jquery .css ('text-decoration' ) 不适用于 parent

html - CSS - 在标签内的元素上使用悬停?