查看: 90|回覆: 0

css通过子元素选择父元素的实现示例

[複製鏈接]

2

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2009-8-4
發表於 2026-5-3 22:16:39 | 顯示全部樓層 |閲讀模式

伪类:has选择父元素

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。

部分代码:

//标签
<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;
}
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部