Позиционирование радиокнопок и меток по вертикали в чистом css

#html #css

#HTML #css

Вопрос:

Следующий HTML-код генерируется из библиотеки и не может быть изменен каким-либо образом, поэтому мне нужно решение только для CSS для моей проблемы. Я бы хотел, чтобы переключатели отображались вертикально, а не слева направо друг от друга, вот так введите описание изображения здесь

Это мой код.

 <span class="buttonset" id="test">

      <input type="radio" id="test_1" name="test" value="CC">
      <label for="test_1">Option 1</label>

      <input type="radio" id="test_2" name="test" value="PL">
      <label for="test_2">Option 2</label>

      <input type="radio" id="test_3" name="test" value="AL">
      <label for="test_3">Option 3</label>

      <input type="radio" id="test_4" name="test" value="HL">
      <label for="test_4">Option 4</label>

      <input type="radio" id="test_5" name="test" value="CL">
      <label for="test_5">Option 5</label>

      <input type="radio" id="test_6" name="test" value="CL">
      <label for="test_6">Option 6</label>

  </span>
  

Смотрите также http://jsfiddle.net/QHvhs/
Есть ли чистый CSS-способ получения новой строки после каждого элемента ввода и метки?

Ответ №1:

вы можете использовать псевдоселектор css3 :after для вставки разрыва строки после каждой метки, делая список вертикальным.

 .buttonset label:after {
    content:"A"; 
    white-space:pre;
}
  

живая демонстрация: Fiddle

Комментарии:

1. О, ты, грязный маленький мошенник: p 1 за ответ только для CSS и избиение меня.

Ответ №2:

Это более семантически лучше.

Вы не должны размещать элементы формы внутри диапазона, а использовать DIV.

 <span class="buttonset" id="test"> 
  

Для

 <div class="buttonset" id="test">
  

И способ, которым вы должны обернуть ЯРЛЫК,

 <label for="test_6"><input type="radio" id="test_6" name="test" value="CL"> Option 6</label>
  

Затем вы можете использовать CSS selector лучшим семантическим способом

 .buttonset label {
    display: block;
}
  

Комментарии:

1. Да, я согласен, это было бы неплохо. Но я никак не могу изменить HTML. Я, казалось, был слишком расплывчатым в этой части. Соответствующим образом отредактирует текст.