如何在仅使用CSS的情况下,如果父元素具有特定ID的兄弟元素,添加样式。

huangapple go评论65阅读模式
英文:

How to add a style if the parent has a sibling with a specific id using only CSS

问题

如果父元素有一个具有ID "message" 的兄弟元素,您可以使用CSS来为输入元素添加边框颜色。以下是相应的CSS代码:

div#message + div input.red {
  border-color: your-border-color;
}

请将 "your-border-color" 替换为您想要的边框颜色值。这段CSS代码将选择具有 "red" 类的输入元素,但仅当其父元素的下一个兄弟元素是具有ID "message" 的div时才会应用边框颜色。

英文:

Given this code below, how can I add a border color in the input element if the parent has a sibling with this ID "message"?

<div>
  <input class="red"/>
</div>
<div id="message">
  Error message
</div>

I can't use JS in this case, only CSS. Thank you.

答案1

得分: 2

你可以使用 :has 与选择器 div:has( + div#message) > input

<!-- begin snippet: js hide: false console: true babel: false -->

<!-- language: lang-css -->

div:has( + div#message) &gt; input {
  border: solid 2px red;
}

<!-- language: lang-html -->

&lt;div&gt;
  &lt;input class=&quot;red&quot; /&gt;
&lt;/div&gt;
&lt;div id=&quot;message&quot;&gt;
  错误消息
&lt;/div&gt;

<!-- end snippet -->

英文:

You could use :has with the selector div:has( + div#message) &gt; input:

<!-- begin snippet: js hide: false console: true babel: false -->

<!-- language: lang-css -->

div:has( + div#message) &gt; input {
  border: solid 2px red;
}

<!-- language: lang-html -->

&lt;div&gt;
  &lt;input class=&quot;red&quot; /&gt;
&lt;/div&gt;
&lt;div id=&quot;message&quot;&gt;
  Error message
&lt;/div&gt;

<!-- end snippet -->

huangapple
  • 本文由 发表于 2023年8月4日 04:34:28
  • 转载请务必保留本文链接:https://go.coder-hub.com/76831456.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定