css通过子元素选择父元素

文章介绍了如何使用CSS的伪类:has选择器来定位并修改特定父元素的样式,特别是在处理ElementUI的table组件中type=expand的展开行时,如何避免使用::v-deep全局影响样式,以及解决因展开行生成的td和tr标签无法直接选中修改padding的问题。
摘要由CSDN通过智能技术生成

伪类: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;
}

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值