【问题标题】:display none in native css taking precedence over media specific css在本机 css 中不显示优先于媒体特定 css
【发布时间】:2013-04-15 23:25:00
【问题描述】:

我是新手,所以如果术语不太正确,请道歉。我正在构建一个具有 4 个样式表的网站:基本(桌面大小并考虑与媒体查询不兼容的旧浏览器)、移动纵向、移动横向、平板电脑。最后 3 个加载了媒体查询。

我有一些在 Base 中显示的 div 容器,但在较小设备的样式表中设置为“display:none”,这很好用。

但是我有一些在 Base 中设置为“display:none”,我想在较小的设备中显示,但是 Base 样式表中的“display:none”优先于样式表中的 css较小的设备。

有什么想法或建议吗?

【问题讨论】:

  • 您检查过特异性和级联问题吗?

标签: css media-queries


【解决方案1】:

所以我假设你在你的 html 中像这样引用你的 css:

<link rel="stylesheet" type="text/css" href="base.css">
<link rel="stylesheet" type="text/css" href="other.css">
<link rel="stylesheet" type="text/css" href="another.css">

在你的基础上:

#element {
 display: none;
}

在 another.css 中你有

#element {  display block; }

如果它们被这样引用,那么 another.css 中的 css 将覆盖 base 中的内容。

你可能有

body #element {
 display: none;
} 

在base.css中

并且拥有

#element {
 display: block
}

由于您的选择器在 base.css 中占主导地位,因此在 another.css 中不起作用。

如果所有其他方法都失败了,一个 hacky 方法是在 css 规则的末尾添加 !important,例如:

#element {
 display: block !important;
}

我不喜欢使用 !important,但如果您无法正确设置 css 选择器,这只是一个想法

这都是猜测工作,无需查看您的 css 和 html

【讨论】:

    【解决方案2】:

    在您的移动样式表中粘贴 display:block 或 display:block !important 如果它仍然拒绝。

    【讨论】:

    • 这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方发表评论 - 您可以随时评论自己的帖子,一旦您有足够的reputation,您就可以comment on any post
    • @TimBish 我不明白为什么这不是答案
    猜你喜欢
    • 2012-11-27
    • 2022-12-09
    • 1970-01-01
    • 1970-01-01
    • 2021-10-04
    • 2017-03-31
    • 1970-01-01
    • 1970-01-01
    • 2022-07-07
    相关资源
    最近更新 更多