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

HTML LINK媒体和CSS媒体查询之间的区别

梁丘烨
2023-03-14
问题内容

我知道有两种添加媒体查询的方法:

HTML链接:

<LINK REL="stylesheet" TYPE="text/css" MEDIA="(max-width: 1024px)" HREF="foo.css">

CSS:

@media all and (max-width: 1024px) {
    ......
}

我已经阅读了文档,并且了解了这两种方法之间的明显区别。但是,以下是我有两个疑问,请问您是否可以澄清:

1)浏览器对HTML Media Link的处理方式是否不同于CSS Media
Query?我的意思是,我知道是否在CSS中添加CSS媒体查询,无论如何,所有CSS文件都会下载到所有设备,并且当浏览器解释编译后的CSS时,只有相应的媒体查询才会生效。但是,如果将Media
Link添加为HTML,是否仅在具有指定宽度匹配的设备时,浏览器才下载foo.css?与Css媒体查询相比,浏览器处理HTML媒体链接的方式是否有所不同?还是全部相同,只是添加到网页的方式不同?

2)假设foo.css是否也具有宽度小于1024px的媒体查询,如下所示:

body {
   padding: 10px;
}     
@media all and (max-width: 900px) {
    body {
       padding: 5px;
    }     
}    
@media all and (max-width: 800px) {
    body {
       padding: 0px;
    }     
}

如果上述文件是使用HTML链接添加的,例如:

<LINK REL="stylesheet" TYPE="text/css" MEDIA="(max-width: 1024px)" HREF="foo.css">

这会成为嵌套媒体查询浏览器查看方式吗?我不明白的是,如果上述内容是使用html链接添加的,我不知道浏览器是否会像这样实际上将其视为无效:

@media all and (max-width: 1024px) {
    body {
       padding: 10px;
    }

    @media all and (max-width: 900px) {
        body {
           padding: 5px;
        }

    }

    @media all and (max-width: 800px) {
        body {
           padding: 0px;
        }

    }

}

所以我的问题是,如果我在使用HTML媒体链接添加的css文件中还有其他媒体查询,那是否有效?

编辑: 我从桌面使用chrome浏览了开发人员工具,即使从桌面设备浏览,我也看到平板电脑文件已下载:

1)因此,对于问题1,可以安全地假设所有浏览器都包含较旧的浏览器,而移动浏览器是否执行相同的操作,即即使将所有文件放在HTML链接下也要下载所有文件?

2)对于问题2,当浏览器屏幕调整为平板电脑宽度时,我可以看到chrome确实使用了平板电脑css内的媒体查询。html中以1024px链接的css文件被视为media
=“(max-
width:1024px)”。但是,那不是意味着放在平板电脑的css文件中的媒体查询实际上是嵌套的媒体查询吗?虽然有效,但在逻辑上是错误的吗?某些更严格的浏览器是否认为这无效?


问题答案:

关于样式表的下载,这是当前规范草案的内容:

用户代理应响应用户环境的变化重新评估媒体查询,例如,如果设备从横向平铺到纵向,则相应地更改依赖于这些媒体查询的任何构造的行为。

这意味着您不能只评估每个媒体查询,然后下载适当的样式表,因为环境可能会发生变化,从而导致对这些媒体查询的重新评估。我认为可以对其进行优化,但是就目前而言,所有浏览器都会下载所有样式表,而与媒体查询无关。

对于第二个问题,规范没有提及HTML声明的和CSS声明的媒体查询之间的任何区别。从CSS3开始,允许嵌套媒体查询,并且将@media-rules放入已经标记过的样式表中media="…"应该与纯CSS嵌套媒体查询相同。



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

  • 问题内容: iPhone 5的屏幕更长,无法捕捉到我网站的移动视图。iPhone 5新增了哪些响应式设计查询,可以与现有iPhone查询结合使用吗? 我当前的媒体查询是这样的: 问题答案: 另一个有用的媒体功能是。 请注意, iPhone 5没有16:9的宽高比 。实际上是40:71。 iPhone <5: iphone 5: iPhone 6: iPhone 6 Plus: iPad:

  • 在这本书中,我想要把主要精力都集中在讲解Sass的基础使用,和证明Sass并不会和你的工作流程脱节。但在最后一章中,我想讨论一些使用Sass结合媒体查询的高级技术和一些我每天工作中用到的将复杂CSS简化的例子。 只要你能想到的,Sass就可以办到。使用变量和一些mixin会让你的生活变得更轻松。如果你想的话,Sass完全不局限于这些简单的功能。下面这个例子再一次举重若轻的展示了Sass的建立兼容高

  • 我目前正在努力获得一个CSS网格来处理一些较小屏幕尺寸的媒体查询。我基本上有一个两行三列的网格,在较小的屏幕尺寸下,它可以向下延伸到三行两列。我想让它进入一个网格,在一个电话大小的屏幕上有6行和一个主列。以下是我目前的代码: } 这在很大程度上是可行的。然而,出于某种奇怪的原因,尽管我在上面做了一些粗制滥造的努力,但这些框并没有集中在较小的屏幕上。下面是完整的代码笔来说明我的问题:https://

  • 响应式网站设计只有弹性布局这一个技巧是不够用的,媒体查询( media queries )也是响应式设计的核心技巧之一。媒体查询是可应用于 CSS 样式的简单过滤器。有了这些过滤器,我们可以根据设备呈现内容的特点轻松更改样式,包括显示屏类型、宽度、高度、方向甚至是分辨率。 在 CSS2.1 中定义了媒体类型,通过给 元素添加 media 属性,可以为不同的媒体类型加载不同的样式表。 <link r

  • 在早些时候,为了满足移动用户的需求,需要为移动设备专门建立一个额外的网站。随着响应式设计的出现,这种做法已经越来越少见了。 2010年5月25日,Ethan Marcotte在A List Apart上发表了一篇开创性的文章,在这篇名为Responsive Web Design的文章中,他将媒体查询、弹性网格布局、弹性图片这三种已有的开发技术整合起来,并命名为响应式Web设计(RWD,Respon