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

HTML5中样式元素的“作用域”属性的当前状态是什么?

钱宇
2023-03-14
问题内容

允许的父元素

可以包含元数据元素,div,noscript,section,article和aside的任何元素

<style>任何地方(<div>允许的地方)都允许或多或少地允许这样做

可以使用此元素的上下文:(注释:样式)

If the scoped attribute is absent: where metadata content is expected.
If the scoped attribute is absent: in a noscript element that is a child

of a head element.
If the scoped attribute is present: where flow content is expected, but
before any other flow content other than inter-element whitespace, and not
as the child of an element whose content model is transparent.


以及本文档后面的内容:

作用域属性是一个布尔属性。如果存在,则表示样式仅适用于以样式元素的父元素为根的子树,而不是整个Document。

如果存在范围属性,并且元素具有父元素,则样式元素必须是其父元素中流内容的第一个节点,而不是元素间空格,并且父元素的内容模型必须不具有透明组件

看起来像有(或将有)“两个不同的<style>元素”:

  • <style> -全球-~~仅在 <head>
  • <"scopestyle"> -仅(!)具有布尔范围attr,~~仅在开始时 <div>

(请读成“或多或少”之类的“ ~~”)

但是后面的链接已有2年以上的历史了,所有浏览器(我测试过Chrome,FF,IE,Opera)都将流入解释<style>为好像在标题中一样。(并忽略AFAIK范围-
是-仍然没有标准)

所以我的三部分问题

  1. 我对W3C文档(两种样式-逻辑)的解释正确吗?

  2. 现在的状态是什么-2015年?

  3. 而且,可能有人在外面,谁知道即将发生的事情?


问题答案:

您对规范的解释似乎正确。在[风格上的标签页MDN包含的描述scoped属性。

scoped 如果存在此属性,则样式仅适用于其父元素。如果不存在,则样式适用于整个文档。

这是一个有效的示例,仅在Firefox 21至54中有效。

例:

<div>

  <p>Out of scope.</p>

  <div>

    <style scoped>

      p {

        background: green;

      }

    </style>

    <p>In scope (green background).</p>

  </div>

  <p>Out of scope.</p>

</div>

在不支持该scoped属性的浏览器中,这些样式将全局应用。

:scope伪选择:

除了作用域属性,还存在的的:scope伪选择可以使用的。此实现提供与以前相同的支持。

例:

<div>

  <p>Outside scope.</p>

  <div>

    <style scoped>

      :scope p {

        background: green;

      }

    </style>

    <p>In scope (green background).</p>

  </div>

  <p>Outside scope.</p>

</div>

此选项还增加了可能的优点,即如果浏览器不了解该scoped属性,则样式将不会全局应用。唯一的问题是:scope,即使scoped不支持该属性,Safari
7+也会识别伪选择器,因此在Safari 7+中失去了优势。

整体风格:

和以前一样,使用style不带scoped属性的标签将创建全局样式,因此只有在包含scoped属性的情况下,它才是作用域。



 类似资料:
  • 问题内容: 我有一个div的特定样式表。现在我想使用js动态修改div的一个属性。 我该怎么做? 它是否正确? 问题答案: 几乎是正确的。 由于是JavaScript操作符,因此您实际上不能在属性名称中使用它。如果您正在设置,或者类似的单字,您的代码就可以正常工作。 但是,对于任何带连字符的属性名称,您都需要记住的是,在javascript中,您删除了连字符,并使下一个字母变为大写,因此应为。 还

  • 问题内容: 有人知道Java 7是否会使用闭包吗? 问题答案: 在Devoxx 2008上,Mark Reinhold明确指出Java 7 中将不 包括闭包。 等待!闭包 将 包含在Java 7中。Mark Reinhold 在Devoxx 2009上宣布了这一逆转。 系住那个!闭包( lambda表达式 )已推迟到Java 8为止。有关更多信息,请遵循Project Lambda(JSR 335

  • 问题内容: 我在上设置了20px的高度,但是当它在浏览器中呈现时,其高度仅为14px。 有任何想法吗? 问题答案: 您不能使用和设置和的元素。使用代替。 根据CSS2规范 10.6.1内联非替换元素 该属性不适用。内容区域的高度应基于字体,但是此规范未指定如何。UA可以例如使用字体的em-box或最大升序和降序。(后者将确保在em- box上方或下方具有部分文字的字形仍位于内容区域内,但导致不同字

  • 问题内容: 在过去的一年中,我听说有关Scala语言的炒作越来越多。我知道有几个现有项目计划将Scala支持与IDE集成在一起。但是,并不总是很清楚集成到底有多好。 他们当前是否支持Intellisense以及Eclipse和Netbeans是否支持Java语言?他们还支持即时验证吗? 问题答案: 我不能亲自谈谈IntelliJ或NetBeans插件的稳定性(尽管我听过很多好消息),但是用于Ecl

  • 我有4个HTML元素,我需要知道它的属性(HTML5):a-download、href、hreflang、media、rel、target、键入img-alt、crossorigin、height、ismap、longdesc、size、src、srcset、usemap、width ol-reversed、start、键入td-headers、colspan、rowspan 还有吗?

  • 问题内容: 我具有以下功能,当触发该功能时,DIV将变为半透明。 但是,我希望此功能可同时应用于多个DIV。我尝试为每个DIV赋予相同的类名,然后使用,但不知道如何实现它。 会更合适,如果可以的话,我将如何实施呢? 问题答案: 我将使用querySelectorAll选择它们并在它们上循环。 编辑:正如上面的评论所述,如果这些值不是动态的并且使用,则最好将这些值放在类中: