Wyrównanie przycisku radia / pola wyboru w HTML / CSS

Jaki jest najczystszy sposób na prawidłowe wyrównanie przycisków / pól wyboru z tekstem? Jedyne niezawodne rozwiązanie, z którego dotychczas korzystałem, to oparte na tabelach:


<table> <tr> <td><input type="radio" name="opt"></td> <td>Option 1</td> </tr> <tr> <td><input type="radio" name="opt"></td> <td>Option 2</td> </tr> </table>

Chciałbym znaleźć rozwiązanie, które nie zakłada nic o rozmiarach lub specjalnych dziwactwach w przeglądarce. Macie jakieś sugestie?

1 odpowiedź

Jednym z najczęściej zalecanych rozwiązań jest użycie vertical-align: middle:

<input type="radio" style="vertical-align: middle"> Label

Problem polega jednak na tym, że nadal powoduje to widoczne niedopasowania, nawet jeśli teoretycznie powinno to działać. Specyfikacja CSS2 mówi, że:

''Własność vertical-align określa wyrównanie pionowe elementów inline lub komórek tabeli. Middle wyrównuje środek elementu ze środkiem małych liter rodzica.''

Powinien więc znajdować się w idealnym środku (wysokość x to wysokość znaku x). Jednak problem wydaje się być spowodowany faktem, że przeglądarki często dodają losowe nierówne marginesy do przycisków opcji i pól wyboru. Można sprawdzić, na przykład w Firefoksie za pomocą Firebug, że domyślny margines pola wyboru w Firefox to 3px 3px 0px 5px. Nie jestem pewna, skąd pochodzi, ale inne przeglądarki wydają się mieć podobne marginesy. Aby więc uzyskać idealne wyrównanie, należy pozbyć się tych marginesów:

<input type="radio" style="vertical-align: middle; margin: 0px;"> Label

Warto zauważyć, że w rozwiązaniu opartym na tabelach marginesy są w jakiś sposób zjadane i wszystko ładnie się wyrównuje.

Twoja odpowiedź

Zaloguj się aby odpowiedzieć.

Operiada

Operiada to polskojęzyczne forum informatyczne działające na zasadzie pytań i odpowiedzi.

Obserwowane tagi

Zaloguj się aby obserwować tagi.