【问题标题】:I want to override the style set by my stylesheet to the default style for an ordered list我想将样式表设置的样式覆盖为有序列表的默认样式
【发布时间】:2015-09-08 08:40:32
【问题描述】:

我有这个 html 文件

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>"This is my first page"</title>
<link href="assignment3-style.css" rel="stylesheet" type="text/css" />  
</head>
<body>
    <p>
        <ol style="I want the default style here">

        </ol>
    </p>

我想用有序列表的默认样式覆盖我的样式表设置的样式。我该如何做到这一点?

【问题讨论】:

  • 您的 HTML 无效。使用验证器。 validator.w3.org/nu
  • 对不起,我是 html 新手。感谢您的链接。
  • @Quentin:你的答案是(现在仍然是)正确的——你不应该删除它 IMO。尽管可以想象这个问题可能与stackoverflow.com/questions/8228980/… 重复,只是具有一组不同的属性。

标签: html css


【解决方案1】:

您可以简单地在 css 文件中查看它以默认样式影响您想要的特定元素的位置,然后删除 css 代码,或者使其更具体。假设您希望ol 在大多数情况下采用默认样式,但希望保留此样式表中的原始代码。您可以简单地执行以下操作:

ol .not-default {
/*code that was already here*/
}

这样,当您不想要默认样式时,您只需编写以下内容:

<ol class="not-default">Yay a stylish ordered list!</ol>

希望有帮助!

【讨论】:

    【解决方案2】:

    更新:到目前为止,CSS 中没有合理的方法可以重置为默认样式。您必须手动重置每个属性。

    仅供参考,这是我的旧答案 - 错误 - 答案:

    除非你想重置你所有的&lt;ol&gt;,否则在上面放一个特定的类,我们称之为default-style

    对于这个类,然后在 CSS 中定义

    CSS:

    .default-style { all: initial; } This will NOT work!

    HTML:

    <ol class="default-style">
         <!-- your <li>s here -->
    </ol>
    

    如果您只想将某些 CSS 属性设为默认值,请将 initial 设置为它们的值,例如 margin: initial;

    http://www.sitepoint.com/css3-inheritance-tips-tricks/

    【讨论】:

    • 初始值与浏览器默认值不同。见stackoverflow.com/questions/8228980/…在这个具体情况下,虽然ol的默认显示是block,但是all:initial会把它重置为inline,因为display的初始值是inline。
    • 所以浏览器不会考虑all: initial; 应用到的元素类型的默认样式?如果这是真的,initial 作为属性值的目的是什么?
    • 老实说,nobody knows。大概是为了完整性才放的,因为 CSS 本身定义了初始值的概念。
    • 虽然这不能解决我的问题,但它确实回答了这个问题。
    猜你喜欢
    • 1970-01-01
    • 2023-03-18
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    • 2020-09-21
    • 1970-01-01
    • 2019-12-08
    • 2022-01-24
    相关资源
    最近更新 更多