css
主页 > 网页 > css >

css通过子元素选择父元素的实现介绍

2024-02-25 | 佚名 | 点击:

伪类:has选择父元素

1

2

3

4

5

6

7

8

td:has(> .unfoldTable){

  //可选中所有td下包含unfoldTable的class标签的td属性

  color: red;

}

td:has(> div){

  //可选中所有td下包含div标签的td属性

  color: red;

}

特殊举例分析:

个别UI框架个别标签通过事件直接生成或者无法选中的情况。直接使用::v-deep会导致全部标签改变,包裹标签使用class名::v-deep无法选中父元素改变父元素属性的情况。

如:elementui的table的type="expand"表格展开行。点击展开后td标签有padding。但td标签和包裹他的tr标签都是点击后产生的。无法在外层包裹div,直接用::v-deep会改变包裹他的表格的样式。

所以可以使用伪类:has来改变td标签的padding。

部分代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

//标签

<el-table-column type="expand">

          <template slot-scope="scope">

            <div class="unfoldTable">

              <el-table

              :show-header="false"

              :data="statusDetail">

                <el-table-column label="序号" width="80" align="center" />

                <el-table-column width="40"></el-table-column>

//样式

::v-deep td:has(> .unfoldTable){

  //需要额外加入穿透和!important

  padding: 0px !important;

}

原文链接:
相关文章
最新更新