【问题标题】:Is there a way to apply css to elements without adding a class to table elements? [duplicate]有没有办法在不向表格元素添加类的情况下将 css 应用于元素? [复制]
【发布时间】:2017-10-13 14:00:12
【问题描述】:

假设我有以下...

td {
    padding: 8px;
}

 td a {
     display: block;
     padding: 8px;
     width: 100%;
     height: 100%;
 }

我想将第一个 css 代码应用于所有没有 <a><td> 元素,我想将第二个 CSS 代码应用于只有 <a> 的元素。

我尝试了以下方法:

td:not(a) {
    padding: 8px;
}

td:not(td a) {
    padding: 8px;
}

如何在不向元素添加类的情况下完成这项工作?

【问题讨论】:

  • 不可能仅使用 CSS。您需要添加类来区分单元格。
  • 我以为是这样,但希望有一些我不知道的方式。
  • 不,CSS 没有“包含”(以前有这个,但它表示文本内容,而不是标签)或“包含”。所以你要JS先在TD上设置类。
  • 很高兴知道。谢谢

标签: html css


【解决方案1】:

这可以通过 JavaScript 完成。假设您希望任何带有<a> 元素的td(为简单起见,我将直接假设在其中)具有黄色背景。这是 jQuery 中的一个示例:

<table>
  <tr>
    <td>No a elements here</td>
    <td>I have an <a href="#">a</a> element.</td>
  </tr>
</table>

CSS:

td {
  border: 1px solid blue;
}

脚本:

$(document).ready(function(){
  $('td a').parent().css('background', 'yellow');
});

笔在https://codepen.io/wahhabb/pen/QvxEjd

【讨论】:

    猜你喜欢
    • 2016-12-29
    • 2021-05-05
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2020-12-17
    • 1970-01-01
    相关资源
    最近更新 更多