将 css 应用于相邻元素

Posted

技术标签:

【中文标题】将 css 应用于相邻元素【英文标题】:applying css to adjacent element 【发布时间】:2022-01-17 00:15:59 【问题描述】:

大家好,如果我有一个像下面这样的 html 元素呢

<div>
  <div>Name</div>
  <div><input type="text" class="check">
  <div>Age</div>
  <div><input type="number" class="check"></div>
  <div>address1</div>
  <div><input type="text"></div>
</div>

我想更改具有 .check css 属性的元素的先前元素。 类似名称 -> *带有读取颜色的名称。

在 CSS 中可以吗?或者我需要和JS混合吗?

任何想法或建议将不胜感激。

谢谢。

【问题讨论】:

您的.check 课程还有什么用途?你不能使用 css 来做你想做的事情,但是对 html/classes 进行一些小的重新排列,它会相对简单 不,我的意思是在父元素中添加check 类,并以css .check input .. .check &gt; div:first-child color: red 等为例 我的建议是使用 jQuery。那里相当直截了当。但据我所知,我认为纯 CSS 无法实现。 .required display:none; .check .required display:block; 将在“check”添加到父元素时自动显示具有“必需”类的子元素。 如果您无法更改 HTML(正如您对 flex-direction 答案的评论所暗示的那样),请务必将其添加到问题中。会节省很多时间。 【参考方案1】:

这是一个可能的解决方案。应用的更改:

input 标签不再在自己的 divinput 标记和包含标签的div 更改了位置。 CSS 只能向前看。

.container 
  display: flex;
  flex-direction: column-reverse;


input 
  width: 200px;


input.check+div 
  color: green;
<div>
  <div class="container">
    <input type="text" class="check">
    <div>Name</div>
  </div>
  <div class="container">
    <input type="number" class="check">
    <div>Age</div>
  </div>
  <div class="container">
    <input type="text">
    <div>address1</div>
  </div>
</div>

【讨论】:

感谢您的提示.. -> CSS 只能期待问题是这已经在运行服务.. 我无法按原样更改.. ; 【参考方案2】:

我不得不说 Gerard 的想法看起来不错,如果需要我会使用它,但也许您也可以尝试为您想要应用 CSS 的那些元素赋予类,这样您就可以直接选择这些元素。如果这不是您想要的,您也可以尝试使用 ntn-child,如下所示:

<div class="my-class">
  <div>Name</div>
  <div><input type="text" class="check">
  <div>Age</div>
  <div><input type="number" class="check"></div>
  <div>address1</div>
  <div><input type="text"></div>
</div>

CSS

.my-class:nth-child(n) 
  color: red;

考虑到 n 是您要应用代码的子编号,因此根据您的父元素中有多少元素,您可以将 n 设置为一个或另一个。

【讨论】:

以上是关于将 css 应用于相邻元素的主要内容,如果未能解决你的问题,请参考以下文章

根据子元素将CSS样式应用于元素[重复]

css中padding和margin到底是相对于父元素还是子元素?

如果它有带有 CSS 的子元素,则将样式应用于父元素 [重复]

将 CSS 样式应用于子元素

我可以将 CSS 样式应用于元素名称吗?

将css类上的日期选择器应用于多个输入元素但失败