当前位置: 首页 > 面试题库 >

CSS特异性,媒体查询和最小宽度

师赤岩
2023-03-14
问题内容

我正在考虑响应式网页设计和“移动优先”方法来重新设计我的博客-简而言之,我正在尝试使用最小宽度来避免任何形式的复制或CSS。

我的问题是,当我确实需要覆盖CSS值时,较低的最小宽度优先。例:

@media only screen and (min-width: 600px) {
    h2 { font-size: 2.2em; }
}

@media only screen and (min-width: 320px) {
    h2 { font: normal 1.7em/2.1em Helvetica, sans-serif; }
}

我希望当我在600px及更高的分辨率下会得到2.2em h2,而我会得到1.7em。这没有道理!

我可以继续使用最小宽度并在不使用更强大的选择器或最大宽度的情况下有效地覆盖更高分辨率的声明吗?


问题答案:

我希望当我在600px及更高的分辨率下会得到2.2em h2,而我会得到1.7em。这没有道理!

这说得通。如果媒体实现了min-width: 600px,那么它也应该实现min-width: 320px;
换句话说,宽度至少为600像素的任何事物也至少宽度为320像素,因为600大于320。

由于两个媒体查询都评估为true,所以最后发生的规则在级联中具有优先权,使您的代码等效于此:

h2 { font-size: 2.2em; }
h2 { font: normal 1.7em/2.1em Helvetica, sans-serif; }

这就解释了为什么2.2em出现在您的开发人员工具中但没有产生明显效果的原因。

最简单的解决方法是切换@media块,以便您的规则以正确的顺序级联:

@media only screen and (min-width: 320px) {
    h2 { font: normal 1.7em/2.1em Helvetica, sans-serif; }
}

@media only screen and (min-width: 600px) {
    h2 { font-size: 2.2em; }
}


 类似资料:
  • 我已经尝试了几个小时来解决这个问题,我正在努力,不管我做什么,它拒绝在我添加max-width或min-width的瞬间调用媒体标记中的CSS。为了测试,我让media标记使主体变红,并将min-width降低到可笑的低。什么都没发生。如果我留下屏幕标记而不留下任何其他东西,它就会调用它 CSS: HTML: 请原谅代码的绝对混乱,但我还没来得及清理这个问题,就在我对这个问题失去理智之前。

  • 问题内容: 我对媒体查询世界还很陌生,很明显,宽度和设备宽度之间的差异让我遗漏了一些基本知识,除了它们明显的定位能力之外。 我想同时针对具有相同断点的常规计算机和设备,因此我只将所有最小和最大宽度查询都复制到了最小设备和最大设备宽度查询中。无论出于何种原因,当我添加- device对应项时,常规计算机对CSS的解释都大不相同,因此我不确定自己做错了什么。 您可以在这里看到效果(这是应该的样子) 此

  • 我试图根据浏览器的最小高度和最小宽度在我的页面上更改CSS,所以我使用这个: 但出于某种原因,这不起作用。我可以检查“最小高度”和“最大宽度”(反之亦然),或者同时检查“最大高度”和“最大宽度”,但检查“最小高度”和“最大宽度”似乎都不起作用。 我应该详细说明这一点:我希望浏览器在最小高度或最小宽度变为真时起作用。仅当两个条件均为真时,使用and运算符才有效。 我做错什么了吗?

  • 问题内容: 编写CSS媒体查询时,有什么方法可以使用“或”逻辑指定多个条件? 我正在尝试做这样的事情: 问题答案: 使用逗号指定两个(或多个)不同的规则: 从https://developer.mozilla.org/en/CSS/Media_queries/ …此外,您可以在逗号分隔的列表中组合多个媒体查询;如果列表中的任何媒体查询为true,则将应用关联的样式表。这等效于逻辑“或”运算。

  • 主要内容:1. 媒体类型,2. 媒体特性,3. 逻辑操作符,4. 定义媒体查询随着移动设备的快速普及,用户不再只是通过传统的电脑系来浏览 Web 内容,越来越多的用户开始使用各种尺寸的智能手机、平板电脑或者其它设备来浏览 Web 内容,为了确保使用不同设备的用户都能拥有不错的体验就需要用到媒体查询。 媒体查询是 CSS 样式表最重要的功能之一,所谓媒体查询指的就是根据不同的媒体类型(设备类型)和条件来区分各种设备(例如:电脑、手机、平板电脑、盲文设备等),并为它们分别定义不

  • 问题内容: 对于响应式模板,我在CSS中有一个媒体查询: 而且,我在调整大小以记录宽度时做了一个jQuery函数: 而且CSS检测和JS结果有所不同,我有这个meta: 我想这是由于滚动条(15像素)所致。我该如何做得更好? 问题答案: 您对滚动条是正确的,这是因为CSS使用的是设备宽度,而JS使用的是文档宽度。 您需要做的是在JS代码中测量视口宽度,而不是使用jQuery width函数。