2013-06-24 98 views
0

У меня есть следующий HTML:линия кнопки вверх радио

<tr> 
    <td class=tabTwo vAlign=top> 
     <table border=0 cellPadding=0 cellSpacing=0 width=100%> 
      <tr> 
       <td vAlign=top width=5%>4.</td> 
       <td>Test 1?</td> 
      </tr> 
      <tr> 
       <td width=5%></td> 
       <td colSpan=2>a) <input type="radio" name="S1Q4" value="a" id="s1q4a" /> <label for="s1q4a">A</label></td> 
      </tr> 
      <tr> 
       <td width=5%></td> 
       <td colSpan=2>b) <input type="radio" name="S1Q4" value="b" id="s1q4b" /> <label for="s1q4b">B</label></td> 
      </tr> 
      <tr> 
       <td width=5%></td> 
       <td colSpan=2>c) <input type="radio" name="S1Q4" value="c" id="s1q4c" /> <label for="s1q4c">C</label></td> 
      </tr> 
      <tr> 
       <td width=5%></td> 
       <td colSpan=2>d) <input type="radio" name="S1Q4" value="d" id="s1q4d" /> <label for="s1q4d">D</label></td> 
      </tr> 
     </table> 
    </td> 
</tr> 

Производит:

enter image description here

Как я сделал радио-кнопки выравнивания по прямой линии? B & C кажутся кривыми.

+2

является таблица действительно здесь требуется? – j08691

+0

Это часть более крупного фрагмента кода. Возможно, для этого примера это не так, но для цели требуется. – Si8

+0

Проблема с выравниванием переключателей заключается в том, что они выстраиваются по-разному в зависимости от того, какая ОС или тема дисплея используется пользователем. –

ответ

-1

HTML

<div class="form-wrapper"> 
    <div class="radio-choice"> 
     <span>a) </span> 
     <input id="option1" type="radio" name="opt1"/> 
     <label for="option1">Option 1</label> 
    </div> 

    <div class="radio-choice">  
     <span>b) </span> 
     <input id="option2" type="radio" name="opt2"/> 
     <label for="option2">Option 2</label> 
    </div> 

    <div class="radio-choice"> 
     <span>c) </span> 
     <input id="option3" type="radio" name="opt3"/> 
     <label for="option3">Option 3</label> 
    </div> 
</div> 

CSS

.radio-choice * { 
    vertical-align: middle; 
} 

.form-wrapper div{ 
    float: left; 
    clear: both; 
} 

.form-wrapper span { 
    display: inline-block; 
    width: 10px; 
} 

http://jsfiddle.net/NewwV/1/

+0

Прекрасно работает ... Думаю, мне придется удалить ТАБЛИЦУ. – Si8

+0

Ваш пример не включает в себя: a) b) c), что является ошибкой выравнивания: http://jsfiddle.net/rxUWf/ –

+1

Вы должны избегать использования '

' 'для макета, независимо. Даже для форм они обычно не нужны. Семантически говоря, '
' следует использовать только для табличных данных. –

3

Если вы собираетесь использовать таблицу. Поместите входы в свою ячейку. Ширина буквы a), b) и т. Д. - это то, что бросает выравнивание.

Я бы не использовал таблицу. Твой выбор.

2

Ваш вопрос казался немного расплывчатое, но лучше всего мои знания, наличие пуль a) b) c) в одной и той же клетке вызывает проблему , Вот моя скрипка: http://jsfiddle.net/bTNvA/

Я попытался решить эту проблему путем перемещения пули в другой ячейке:

<tr> 
    <td width=5%> a) </td> 
    <td colSpan=2> <input type="radio" name="S1Q4" value="a" id="s1q4a" /> <label for="s1q4a">A</label></td> 
</tr> 
+0

Не могу ли использовать маржу, чтобы компенсировать разницу? – Si8

+1

Вы могли бы, но ИМО, если вы используете моноширинный шрифт шрифта, не будет его обрезать. вы можете поместить пули в класс 'bullets' и присвоить ему' width' для согласованности. –

+1

Спасибо за ответ. – Si8