html - 为什么 <link> ‘title’ 属性会导致浏览器忽略我的样式?

标签 html css

以下 html 文档(连同 CSS)无法呈现 b.css 中的样式.

<!doctype html>
<html>
    <head>
        <link rel="stylesheet" media="screen" type="text/css" title="A" href="a.css" />
        <link rel="stylesheet" media="screen" type="text/css" title="B" href="b.css" />
    </head>
    <body>
        <div id="A">A</div>
        <div id="B">B</div>
    </body>
</html>

/* a.css */
div#A   { color: blue;  }
/* b.css */
div#B   { color: red;   }

使标题相同(例如 <link ... title="A"> 修复它,但我不明白原因,为什么它应该。标题在做什么,在这里,这是错误的?

最佳答案

The HTML spec states that there are three kinds of stylesheets : 持久的、首选的和替代的。

  • 如果样式表与 rel="stylesheet" 链接并且没有 title 属性,则样式表是“持久的”。呈现时会使用所有持久样式表。
  • 如果样式表与 rel="stylesheet" 链接并具有 title 属性,则该样式表是“首选”;具有相同 title 的首选样式表被分组在一起,但不应超过一组。浏览器似乎只会选择一个首选样式表来呈现,因为应该只有一个。
  • 最后,如果样式表与 rel="alternate stylesheet" 链接并具有 title,则它是“alternate”。这些样式表应该允许用户选择样式表,它们按 title 组合在一起,并显示在浏览器的样式表选择器中(如果有的话)(在 Firefox 中为 View >> Page Style)。每个组(按标题)是相互排斥的。

通过将 title 属性放在您的样式表上,您会在不知不觉中将它们变成首选样式表,而不是预期的持久样式表。这也是当它们都具有相同标题时它们起作用的原因。

关于html - 为什么 <link> ‘title’ 属性会导致浏览器忽略我的样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1959959/

相关文章:

html - 为 UIActivityViewController 事件填充超链接属性字符串

html - CSS定位问题

javascript - 水平滚动时制作静态div

jquery - css + jQuery 下拉子菜单溢出

javascript - 如何将效果与菜单列表和子菜单列表分开?

android - 在 jquery 移动多页面模板结构中遇到问题

css - IE7 与内部有 4 个 div 的 div 容器的兼容性错误

javascript - AngularJS - Bootstrap Material Datetimepicker 不工作

javascript - 基于分配给它的特定 css 类的另一个 div #id 隐藏带有 css #id 的 div

html - 图像/文本的 CSS 垂直对齐