选择带标签的单选按钮

Selecting Radio Button w/ Label

我正在尝试通过将替代图像隐藏在按钮各自标签的背景中来设置单选按钮的样式(有点像 this technique)。无论如何,作为测试,我想看看我是否可以让这个 css 在单选按钮标签上工作:

input[type="radio"] + label {
    display:inline-block;
    width:19px;
    height:19px;
    margin:-1px 4px 0 0;
    vertical-align:middle;
    background:#000;
    cursor:pointer;
    color:red;
}

不幸的是,我在上面CSS中无法得到任何影响标签的东西。

我正在使用以下内容生成单选按钮:

<%= f.input :trademark_search, as: :radio_buttons, label: 'Would you like us to do a trademark search and provide advice regarding any issues we identify in relation to the name you have selected?', input_html: { class: 'form-control' } %>

它呈现以下内容HTML:

<span class="radio">
  <label for="incorporation_trademark_search_true">
    <input id="incorporation_trademark_search_true" class="radio_buttons optional form-control" type="radio" value="true" name="incorporation[trademark_search]">
    Yes
  </label>
</span>
<span class="radio">
  <label for="incorporation_trademark_search_false">
    <input id="incorporation_trademark_search_false" class="radio_buttons optional form-control" type="radio" value="false" name="incorporation[trademark_search]">
    No
  </label>
</span>

无论如何,我真的很想弄清楚我在这里遗漏了什么。如有任何想法,我们将不胜感激。

所以这是如何工作的 + 将 select 紧随其后的兄弟姐妹。

这是正确的使用方法。

div {
  background: red;
  height: 10px;
}
div + span {
  display: block;
  height: 10px;
  background: blue;
}
<div></div>
<span></span>


然后这就是您尝试使用它的方式(select父级)

div {
  background: red;
  height: 10px;
}
div + span {
  display: block;
  height: 10px;
  background: blue;
}
<div>
  <span></span>
</div>

如您所见,那是行不通的。


紧接着的部分演示在这里,我在中间放了一个<i>。如您所见,它不会起作用。

div {
  background: red;
  height: 10px;
}
div + span {
  display: block;
  height: 10px;
  background: blue;
}
<div></div>
<i></i>
<span></span>