You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何选中两层深div中包含radio输入框的div并设置样式?

选中包含radio的父div的方案

目前主流现代浏览器已支持CSS :has() 伪类,无需加类名就可以选中包含指定子元素的父容器,写法如下:

.container > div:has(input[type="radio"]) {
  /* 此处为父div的自定义样式,示例如下 */
  padding: 8px;
  margin: 4px 0;
  border: 1px solid #eee;
}

如果需要兼容不支持:has()的旧版浏览器,纯CSS无法实现选中父元素的需求,可直接针对radio输入框设置样式。


单独为radio输入框设置样式的方案

你原有写法的选择器本身可以正确匹配到radio元素,样式不生效是因为原生表单元素的默认外观受浏览器内置样式限制,直接设置border不会生效,需要先清除默认外观,调整后的代码如下:

.container > div > input[type="radio"] {
  /* 清除浏览器默认样式 */
  appearance: none;
  -webkit-appearance: none;
  /* 自定义尺寸和基础样式 */
  width: 16px;
  height: 16px;
  border: 1px solid green;
  border-radius: 50%;
  outline: none;
  cursor: pointer;
  position: relative;
  top: 2px;
}

/* 额外补充选中状态的样式,符合常规交互逻辑 */
.container > div > input[type="radio"]:checked {
  background-color: green;
  box-shadow: inset 0 0 0 3px #fff;
}

内容的提问来源于stack exchange,提问作者Eric Nguyen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 09:45:07