【问题标题】:Is there no difference between No media and media="all" in css link?css链接中的No media和media="all"之间没有区别吗?
【发布时间】:2011-10-18 19:00:30
【问题描述】:

No media 和 media="all" 没有区别吗?

<link rel="stylesheet" type="text/css" media="all" href="style.css">

<link rel="stylesheet" type="text/css" href="style.css">

【问题讨论】:

  • Netscape 4 无法识别媒体类型,因此添加 media="all" 让浏览器忽略并因此从 Netscape 4 中隐藏样式表。

标签: html css


【解决方案1】:

In HTML 4.01,默认值为screen
In HTML5,默认值已更改为all

因此,这取决于您在页面中使用的 doctype 声明。 没关系,用户代理无论如何都会对标准感到困惑;见克努的评论。 (我敢打赌,这就是他们在 HTML5 中将其更改为 all 的原因。)

再一次,只有当您支持的用户代理不在数字屏幕上显示页面或显示任何视觉信息时,这才真正重要。

【讨论】:

【解决方案2】:

媒体是指css文件适用的地方,例如:屏幕、打印等。 默认为全部。 表示如果您不指定任何媒体,解析器会将其视为全部

Documentation

【讨论】:

    【解决方案3】:

    似乎是和不是。在规范中的14.4.1 部分中,它说没有媒体类型的样式表适用于所有媒体,而另一个在不需要时被过滤掉。 但是在14.2.3 部分,它应该默认为屏幕,它应该在非分页计算机屏幕上使用,而所有设备都应该适用于所有设备(more information on media-descriptors here)。

    【讨论】:

    • 也许只有在以前包含带有media="screen" 的链接时才会出现这种情况。有效地成为默认级联(屏幕>全部)。
    【解决方案4】:

    我绝不会在外部链接样式表中使用“全部”。现实情况是,过去 20 年的浏览器并不总是遵循建议。使用“all”,您仍然有太多的困惑,以及部分浏览器支持:

    1. Netscape 4 系列等旧版浏览器不支持“all”
    2. IE6 在使用“screen”作为媒体类型时存在问题,并且依赖于“all”,而当时许多其他人不支持它。
    3. 当时排除媒体属性时,许多浏览器默认为“全部”,即使“屏幕”应该是默认值。
    4. 在@import 样式表调用中使用“all”时,IE 4-7 将无法加载样式表。
    5. 与“screen”相比,还部分支持媒体查询中的“all”。
    6. “All”有其自身的错误和怪癖......例如它可能会弄乱后来添加的“打印”表,并且某些浏览器在使用“all”打印时无法导入样式。
    7. 过去,没有“媒体”和“标题”属性的“链接”标签不仅在某些旧版浏览器中默认为“所有”媒体类型,而且意味着所有媒体设备都将链接的样式表视为可选或"preferred" 用户可以在浏览器中更改的表格。

    不要在链接样式表中使用“media=all”的所有理由。我的建议是始终使用 EXPLICIT 媒体类型,如“屏幕”或“打印”。但是,如果您唯一的选择是为任何和所有可能的设备设计一个工作表,您可以在需要模拟“全部”时删除“媒体”属性。只要理解上面列出的问题。

    【讨论】:

      猜你喜欢
      • 2015-05-27
      • 1970-01-01
      • 2015-09-10
      • 2015-02-10
      • 2017-12-25
      • 2016-05-12
      • 1970-01-01
      • 2020-10-25
      • 1970-01-01
      相关资源
      最近更新 更多