我想知道使用 CSS 可以“仅”完成哪些事情,而使用 Javascript 动态更新的样式“属性”是不可用的。到目前为止我知道:
- 媒体查询
- 伪标签
还有吗?
更新:
这个问题已结束,但我在尝试决定用于项目的技术时提出了这个问题,但其中一个选项不能使用 CSS 样式表,只能使用 javascript 操作样式属性。
内联样式属性只能包含属性声明(例如width: 10px
或color: red
)。它们不能包含任何其他 CSS 结构:不能包含选择器、规则(例如@import
、@media
、@font-face
)等。只是属性声明。
但是,它们在级联中扮演着重要角色:具有该属性的元素的任何样式都具有最高优先级(!important
当然是在考虑之后)。
顺便说一下,实际上有一整套专门用于样式属性的模块,但这不是作者的必读内容。
因此,任何不是 CSS 声明的东西都只能在样式表中出现,而不是在样式属性中。不知道你问的是不是这个...
请注意,媒体查询和@media
规则不是一回事;媒体查询也可以存在于样式表之外的区域中,例如 HTML 的media
属性,它们是下一个最常见的地方。
我相信伪类(:hover
等)和伪元素(:after
, :before
)不能通过 JS(我的意思是通过 style 属性)添加/操作,因为它们不是 DOM 的一部分。