【发布时间】:2013-05-17 18:21:40
【问题描述】:
好的,我无法影响吐出的 HTML,因为它来自在线调查工具。但我可以链接到我自己的 CSS 样式表,并随意影响样式。
这是问题所在,我有一系列带图像的单选按钮,HTML 如下所示:
<table class="ChoiceStructure">
<tr>
<td class="ControlContainer">
<input choiceid="1" type="radio" name="QID16" id="QID16-1">
</td>
<td class="LabelContainer">
<span class="LabelWrapper">
<label for="QID16-1">
<img src="some/image1.jpg" />
</label>
</span>
</td>
<td class="ControlContainer">
<input choiceid="1" type="radio" name="QID16" id="QID16-2">
</td>
<td class="LabelContainer">
<span class="LabelWrapper">
<label for="QID16-2">
<img src="some/image2.jpg" />
</label>
</span>
</td>
<td class="ControlContainer">
<input choiceid="1" type="radio" name="QID16" id="QID16-3">
</td>
<td class="LabelContainer">
<span class="LabelWrapper">
<label for="QID16-3">
<img src="some/image3.jpg" />
</label>
</span>
</td>
</table>
我用这个隐藏了实际的单选按钮:
.ChoiceStructure tr input[type="radio"]{display: none;}
我希望在选择项目/选中单选按钮时让图像或标签获得 2 像素的灰色边框。
我尝试了很多其他方法,但似乎无法让它发挥作用。
.ChoiceStructure tr input[type="radio"]:checked > td:nth-child(2) span label {
border:2px solid #4d4d4d;
}
我觉得我已经尝试了所有解决方案,但有效的解决方案除外。我感谢任何人可以提供的任何帮助。谢谢。
编辑
我不能用 CSS 做我想做的事,而是被指示寻找 Javascript 解决方案。我没有加载 JQuery 或任何其他框架的方法,所以我需要一个纯 JS 解决方案。我不擅长 JS,我可以摆弄它,但我自己写的不太好。任何帮助表示赞赏。
编辑 2 我找到了一种加载 JQuery 的方法,现在这是一个选项。
【问题讨论】:
-
你有链接到 JavaScript 文件吗?
-
CSS 只向下遍历。所以不幸的是,没有办法将选中单选按钮的信息严格通过 CSS 传递给父元素和父元素的相邻元素。
-
问题是 CSS 选择器不能定位祖先/父元素,这是你想要做的。如果标签和输入元素是兄弟元素,那么你可以这样做,但它们都是两个单独的表格单元格的子元素。
-
我正在研究是否可以直接添加 javascript 或链接到文件。
-
@MarcAudet 更新和标记。感谢您的帮助。
标签: javascript css radio-button css-selectors label