【问题标题】:change css style of span that has checked input child using CSS [duplicate]使用CSS更改已检查输入子项的跨度的CSS样式[重复]
【发布时间】:2020-06-29 10:41:04
【问题描述】:

我想在检查子输入时更改跨度背景图像,有什么方法可以使用 CSS 做到这一点?

<span style='background-image:'url(bla bla)''><input id='child'/>span to be changed</span>

【问题讨论】:

  • 不,这不是给我答案,建议使用任何浏览器都不支持的 (:has)
  • 当问题被标记为重复时,这是 StackOverflow 自动生成的评论。我并不是在暗示有答案,我将其标记为与已被多次询问的问题的重复。目前的答案是否定的。您需要使用 Javascript 以干净的方式实现这一目标。

标签: css


【解决方案1】:

目前无法在 CSS 中选择元素的父级。
无论如何,您可以使用:has() 伪类,即is still not supported by any browser.
使用:has(),您的代码将是这样的:

span:has(> #child.checked) { /* styles */ }



但最好的办法是使用 JavaScript。

【讨论】:

  • 好的,但仍然不是所有浏览器都支持。
  • ¯_(ツ)_/¯ 你必须使用 JavaScript
  • 荒凉,但css中没有其他办法
【解决方案2】:

这是在没有:has的情况下实现目标的一个技巧

span {
  display: inline-block;
  width: 200px;
  height: 50px;
  border: 1px solid red;
  background-color: transparent;
  position: relative;
}
#child:before {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}
#child:checked:before {
  background: red;
  z-index: -1;
}
&lt;span style='background-image:'url(bla bla)''&gt;&lt;input id='child' type="checkbox"/&gt;span to be changed&lt;/span&gt;

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-09
  • 2018-09-17
  • 1970-01-01
  • 2012-06-06
  • 2013-09-02
  • 2021-08-11
  • 1970-01-01
相关资源
最近更新 更多