为什么我的 HTML 不使用 CSS 中定义的最后一个样式?

2024-07-01

我有以下按此顺序编写的 CSS:

h2:last-child, p:last-child, ul:last-child {
margin-bottom: 0;
}

.content-message {
   margin: 20px -1.667em -1.667em -1.667em;
   margin-bottom: -1.667em;
}

和我的 HTML:

<ul class="content-message">
    <li>xx</li>
</ul>

当我检查时,我可以看到 ul 正在从第一个开始获得其样式 CSS 的 margin-bottom 为 0。有人能解释一下这是为什么吗?还 有什么办法可以解决这个问题吗?


它是按照具体顺序完成的。在本例中,ul:last-child 更为具体,因为它有两个条件:

  • 它必须是一个ul
  • 必须是最后一个孩子

而你的第二种风格只有一个条件:

  • 它必须具有课程内容消息

为了使第二种样式与第一种样式一样具体,您需要添加另一个条件:

ul.content-message {
   margin: 20px -1.667em -1.667em -1.667em;
   margin-bottom: -1.667em;
}

由于这两条规则同样具体,因此第二条规则优先,因为它是最后写入的。请注意,这是 css 特异性的简化 - 排序的工作原理如下:

  1. 带有 !important 的内联样式
  2. 带有 !important 的样式表样式
  3. 没有 !important 的内联样式
  4. 包含 id (#myItem) 的选择器
  5. 类、标签名称、伪类等。

列表中较高位置的任何选择器都将优先,而同一级别的两个选择器将由该类型的数量决定(因此两个类不像 id 那样具体,但与样式和标签一样具体) 。两种样式具有相同的权重,将遵循最后定义的样式。

我可能错误地认为第 5 点中的所有项目具有相同的权重,但为了更好地理解,请查看http://www.adobe.com/devnet/dreamweaver/articles/css_specificity.html http://www.adobe.com/devnet/dreamweaver/articles/css_specificity.html或在 Google 上找到的类似文章。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我的 HTML 不使用 CSS 中定义的最后一个样式? 的相关文章

  • 处理php中表单的多个输入

    我想知道如何处理具有多个属性的表单的多个输入 此代码生成我的字段
  • 使用 CSS 在图像上重叠文本

    我有一个图像 我想将底部的一段文本与透明的黑色背景重叠 实现这一目标的最简单方法是什么 img src http assets3 parliament uk iv main large ImageVault Images id 7382 s
  • Javascript 中的原型关键字

    What is prototype财产 为什么是必要的 到目前为止 我了解到这为公众提供了更内在 更私密的访问权限 prototype物体的 那是对的吗 另外 以下陈述有什么区别 MyConstructor age 30 MyConstru
  • svg填充颜色不适用于十六进制颜色[重复]

    这个问题在这里已经有答案了 尝试创建 svg 背景图案 但是 当我不使用填充时 可以 当使用颜色名称时 例如 color red 没关系 但如果使用十六进制颜色 则不会显示任何内容 这是代码 OK background url data i
  • 从 Summernote 文本区域中提取编辑后的文本

    我的数据库中有一个预设电子邮件列表 感谢您成为会员 感谢您购买产品 它正在路上 之类的 我正在使用 Bootstrap 模式来编辑这些电子邮件 当我单击编辑按钮时 模式会下拉 并填充数据库中的数据 电子邮件名称 主题 正文 我在用将数据传递
  • jScrollPane:边距问题

    jScrollPane 的边距问题似乎有点棘手 尝试在 jsp 内的每个元素和实际的 jsp 元素上设置 margin 0 我附上一张图片来向您展示该问题 问题是内容和实际滚动条之间的小黑色条纹 JSP 中类的 CSS width 100
  • 离屏导航 - 左右导航 - 仅 CSS

    我正在尝试仅使用 css 创建左右离屏导航抽屉 但在让每一侧正常工作时遇到问题 我使用复选框作为我的按钮 如下所示
  • 如何从脚本标签中读取 JS 数据?

    我有一个外部文件 假设是 foo js function baz 然后在我的 HTML 中 我使用 script 标签导入它 我希望能够从 script 标签内部获取 JS 字符串 我尝试过jquery的html 以及innerHTML和i
  • 如何在 Google Chrome 上修复 1px 边距?

    这是一个例子http jsbin com oqisuv http jsbin com oqisuv CSS body background e7ebf2 url http i imgur com R2VB6 png center repea
  • 使用 Jquery 创建多步骤模态

    我想用它创建一个多步骤模式 https github com ngzhian multi step modal 我这个 div 带有动态生成的类 modal content append div class div 现在我想将一个输入变量附
  • 如何创建一个 HTML 按钮,其作用类似于同一页面上某个项目的链接?

    我想创建一个 HTML 按钮 其作用类似于指向同一页面上的项目的链接 因此 当您单击该按钮时 它会重定向到同一页面上的项目 我怎样才能做到这一点 我会将解决方案限制为 HTML CSS 和 JavaScript 因为目前我没有使用任何其他语
  • 如何让“IE 6 条件注释”发挥作用?

    我有这个标记 效果很好 div class header headerNotIE6 我现在正在尝试放置一个特定于 ie6 的解决方法 因此我尝试仅在浏览器不是 IE 6 的情况下使用此 div 因此 如果它是 IE7 8 firefox 和
  • 显示 100% 带边距的 div 宽度

    我想显示一个可扩展的div width 100 有边距 page background red float left width 100 height 300px margin background green float left wid
  • 特定键盘事件

    我正在使用 Vue 并且在 div 中有 Quill 编辑器 这就是为什么我使用已弃用的DOMSubtreeModified 我想触发一个事件来发送 API 请求以将编辑器的内容保存到数据库中 现在 下面是我所拥有的 但当我删除字符时它不会
  • 使用python发送http标头

    我已经设置了一个小脚本 可以向客户端提供 html import socket sock socket socket sock bind 8080 sock listen 5 client adress sock accept print
  • 将文件上传选择限制为特定类型

    无论如何 通过限制文件类型的选择
  • 如何在 Angular Material 应用程序的 div 元素中设置背景图像?

    我知道有人问过这个问题 但没有一个解决方案有效 我有以下 html 如果使用注释的 img 元素 我可以显示图像 img src assets utgmap jpg 并注释掉以下 div 元素 但是我想要 div 的背景图像 但它不起作用
  • 导航到 IE 中的数据 URI

    我有这个非常简单的 HTML a href Static a 在 Chrome 或 Firefox 中 它会下载red png正如预期的那样 在 IE 中 它会导航到错误页面 看到它JSFiddle http jsfiddle net di
  • 为什么 BITMAPS 加载“向上”?

    如果您有一个非常非常大的 JPG 和嵌入 HTML 的 BMP 并将其加载到 Firefox 中 您会注意到 JPG 将 向下 加载 从左到右绘制 然后向下 而 BMP 将 向上 加载 从右向左绘画 然后向上 只是好奇 我不久前写了一个位图
  • 如何隐藏 html 表格中的多行(数千行)

    我有很多行的 html 页面 大约 40000 table tr td row 1 td tr tr td row 2 td tr tr td row 30000 td tr table 我需要一种快速的方法来隐藏 显示具有指定名称的行集

随机推荐