简体中文
html、body、:root等选择器。由于页面的css样式隔离,且html节点并未添加data-xxx属性,html、:root写在页面style内无效,只能写在App.uvue内。:deep()/::v-deep 用法参考 单文件 style - 深度选择器 文档。| 名称 | 示例 | Web | Android | iOS | HarmonyOS | 描述 |
|---|---|---|---|---|---|---|
| 通配选择器 | * {} | 4.0 | x | x | x | - |
| 类选择器 | .class {} | 4.0 | 3.9 | 4.11 | 4.61 | - |
| 元素选择器 | [tag]{} | 4.0 | x | x | x | - |
| ID 选择器 | #[id]{} | 4.0 | x | x | x | - |
| 属性选择器 | [attr]{} | 4.0 | x | x | x | - |
| 分组选择器 | .a, .b {} | 4.0 | 3.9 | 4.11 | 4.61 | - |
| 直接子代选择器 | .a > .b {} | 4.0 | 3.9 | 4.11 | 4.61 | - |
| 后代选择器 | .a .b {} | 4.0 | 3.9 | 4.11 | 4.61 | - |
| 一般兄弟选择器 | .a ~ .b {} | 4.0 | 3.9 | 4.11 | 4.61 | - |
| 紧邻兄弟选择器 | .a + .b {} | 4.0 | 3.9 | 4.11 | 4.61 | - |
| 伪类选择器 | :active {} | 4.0 | x | x | x | - |
| 伪元素选择器 | ::before {} | 4.0 | x | x | x | - |
注意
hover-class,考虑到跨端兼容和体验,建议使用 hover-class 属性来实现点击态效果。详见<template>
<div :class="{{docBody}}">
<text :class="{{rowDesc}}">描述内容</text>
</div>
</template>
<style>
.doc-body1 .row-desc1 {
color: #ff0000;
}
.doc-body1 .row-desc2 {
color: #0000ff;
}
.doc-body2 .row-desc1 {
color: #00ff00;
}
</style>
<script lang="uts">
export default {
data() {
return {
rowDesc: 'row-desc1',
docBody: 'doc-body1'
}
}
}
</script>
以上代码示例,当我们把 rowDesc 变量从 row-desc1 变为 row-desc2 时,会更新 text 节点样式,但是如果把 docBody 变量从 doc-body1 变为 doc-body2,是不会更新 text 节点样式的。
因为 doc-body 不是最后一个选择器,非末尾的选择器变更有可能影响很多 DOM 元素,从而影响到渲染性能。
注意
App端相邻选择器暂不支持动态新增或删减节点,为了优化性能减少一些重新渲染工作,示例 https://issues.dcloud.net.cn/pages/issues/detail?id=1452