首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CSS颜色父行

CSS颜色父行
EN

Stack Overflow用户
提问于 2020-07-01 01:33:19
回答 3查看 50关注 0票数 0

我是一个CSS初学者,我需要着色的一行HTML表格,其中包含一个具有特定id的单元格<th>

如何访问th:id=yeah的父元素以添加此css选项:background-color:red

代码语言:javascript
运行
复制
<table style="width:100%">
  <tr>
    <th id="yeah">Firstname</th>
    <th>Lastname</th>
    <th>Age</th>
  </tr>
  <tr>
    <td id="one">Jill</td>
    <td>Smith</td>
    <td>50</td>
  </tr>
  <tr>
    <td>Eve</td>
    <td>Jackson</td>
    <td>94</td>
  </tr>
</table>

<style>
  #one{
    background-color: red
  }

  tr#yeah{
    background-color: blue
  }

  table.class-name th:first-child {
    background: red;
}
</style>
EN

回答 3

Stack Overflow用户

发布于 2020-07-01 01:52:17

你差一点就到了!

你的CSS:

代码语言:javascript
运行
复制
tr#yeah{
background-color: blue;
}

更改:

代码语言:javascript
运行
复制
#yeah{
background-color: blue;
}

请记住一件小事。在CSS中设计元素的样式时,不必总是包含标记()

CSS知道您正在通过标签ID (#yeah)设置特定元素的样式,这就是为什么要在html中为元素指定ID的原因。

祝你好运:祝你学习愉快。

票数 0
EN

Stack Overflow用户

发布于 2020-07-01 01:58:56

这似乎是一个框架问题。您要问的是如何获取已找到的元素并对其父元素执行某些操作。

你不能这样做。CSS不是那样工作的。它不会倒退。

编辑:我的前两个建议给出了实现我认为是最终目标的替代结构。如果您一定要使用您提供的结构,那么我的第三个答案提供了一种可能的变通方法,根据您非常具体的环境,该变通方法可能会实际工作,也可能不会。

在实践中,您似乎想要实现的是设置表格标题的样式,这是完全可能的。归根结底,这取决于元素的结构以及元素、类和It的使用。

一种方法是使用额外的元素thead来标识表的标题行。这是可样式化的,因为您设计的是thead的子元素,而不是元素的父元素。

代码语言:javascript
运行
复制
thead>tr {
  background-color: red;
}
代码语言:javascript
运行
复制
<table style="width:100%">
  <thead>
    <tr>
      <th>Firstname</th>
      <th>Lastname</th>
      <th>Age</th>
    </tr>
  </thead>
  <tr>
    <td>Jill</td>
    <td>Smith</td>
    <td>50</td>
  </tr>
  <tr>
    <td>Eve</td>
    <td>Jackson</td>
    <td>94</td>
  </tr>
</table>

另一种方法是简单地为标题所在行提供自己的类,而不是使用thead

突然间,这也是可样式化的。我们指出,我们正在寻找的tr (表行)也有一个名为header-row的类(由下面CSS中的.指示,前面没有空格)

代码语言:javascript
运行
复制
tr.header-row {
  background-color: red;
}
代码语言:javascript
运行
复制
<table style="width:100%">
  <tr class="header-row">
    <th>Firstname</th>
    <th>Lastname</th>
    <th>Age</th>
  </tr>
  <tr>
    <td>Jill</td>
    <td>Smith</td>
    <td>50</td>
  </tr>
  <tr>
    <td>Eve</td>
    <td>Jackson</td>
    <td>94</td>
  </tr>
</table>

作为最后的手段,(我真的希望你能避免这种情况,但是...)如果您完全使用了前面介绍的结构,那么可以为元素及其后续的同级元素使用同级选择器~。它不会将其应用于tr父元素,但会应用于所有th元素。然而,与您试图解决的"parent“问题类似,只有当"id'd”元素是行中的第一个元素时,这才能起作用。

代码语言:javascript
运行
复制
#yeah, #yeah ~ th {
  background-color: red;
}
代码语言:javascript
运行
复制
<table style="width:100%">
  <tr>
    <th id="yeah">Firstname</th>
    <th>Lastname</th>
    <th>Age</th>
  </tr>
  <tr>
    <td>Jill</td>
    <td>Smith</td>
    <td>50</td>
  </tr>
  <tr>
    <td>Eve</td>
    <td>Jackson</td>
    <td>94</td>
  </tr>
</table>

票数 0
EN

Stack Overflow用户

发布于 2020-07-01 02:15:54

不幸的是,没有CSS选择器从另一个元素指向父元素。但是,您也可以对具有给定id的所有tdth进行着色。

代码语言:javascript
运行
复制
#yeah {
  background: red;
}

#yeah ~ th, #yeah ~ td{
  background-color: red
}

这将使单元格的id=Yeah颜色为红色,其同级元素为蓝色。

但有一个问题:红色单元格必须是行中的第一个单元格(例如表),因为同级选择器"~“只影响目标之后的元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62663101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档