4

我有从这个网站借来的自定义单选按钮:http: //www.inserthtml.com/2012/06/custom-form-radio-checkbox/

不幸的是,我正在使用一个有用的插件,我无法轻易修改它在我的 DOM 中使用标签内的嵌套输入填充,这样......

<label>
  <input class="regular-radio">

我想使用选择器.regular-radio + label来选择标签。但是,它仅适用于:

<input class="regular-radio">
<label>

我在这里展示了我的例子:http: //jsfiddle.net/BR3MB/

我如何修改该 CSS 以处理父标签而不是相邻标签?
在这种情况下,我真的很难编辑 DOM,因为已经有很多依赖于该结构。

4

3 回答 3

3

不幸的是,目前这不能使用 CSS 来完成,因为 CSS 只能从右到左读取。这意味着选择器中最右边的元素将是接收样式的元素,并且最右边的元素必须始终是选择器中它左侧的任何元素的子元素或兄弟元素。对您来说,问题在于您要设置样式的元素是父元素。

作品中有一个父选择器(http://www.red-team-design.com/css-parent-selector),但在此之前您将不得不求助于使用 JavaScript。

话虽如此,我认为在这种情况下最好的解决方案是将插件的输出更改为更有用的东西(如果可能的话)。

于 2012-09-17T23:55:43.733 回答
1

遗憾的是,没有用于父样式的 CSS 选择器。获取父样式的唯一方法是通过 Javascript。在 CSS Tricks 上,Chris Coyier 谈到了是否将这个选择器添加到规范中的争论的优点和缺点。就个人而言,我希望它存在,但希望我的代码永远不会工作。

于 2012-09-17T23:54:18.377 回答
0

在 CSS 中选择元素的父级是不可能的。您可能必须使用类似这样的方法来选择它:

label:nth-of-type(x) {}

其中 x 是父标签的编号。

于 2012-09-17T23:55:09.797 回答