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

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

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

问题

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

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

请将 "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"?

  1. <div>
  2. <input class="red"/>
  3. </div>
  4. <div id="message">
  5. Error message
  6. </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 -->

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

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

  1. &lt;div&gt;
  2. &lt;input class=&quot;red&quot; /&gt;
  3. &lt;/div&gt;
  4. &lt;div id=&quot;message&quot;&gt;
  5. 错误消息
  6. &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 -->

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

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

  1. &lt;div&gt;
  2. &lt;input class=&quot;red&quot; /&gt;
  3. &lt;/div&gt;
  4. &lt;div id=&quot;message&quot;&gt;
  5. Error message
  6. &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:

确定