HTML/CSSにおけるラジオ/チェックボックスの整列について
質問
テキストと適切にラジオボタン/チェックボックスを配置するための最もきれいな方法は何ですか?私がこれまで使用してきた唯一の信頼できる解決策は、テーブルベースです。
<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>
これは一部の人から顰蹙を買うかもしれません。私はちょうど(再び)テーブルレス ソリューションを調査するのに時間を費やしましたが、失敗しました。私は、フロート、絶対/相対位置決め、および同様のアプローチのさまざまな組み合わせを試しました。それらはほとんどラジオボタン/チェックボックスの推定高さに黙って依存しているだけでなく、異なるブラウザで異なる動作をしました。理想的には、サイズや特別なブラウザの癖について何も仮定しない解決策を見つけたいと思います。私はテーブルを使用することに問題はありませんが、他のソリューションがどこにあるのか疑問に思っています。
どのように解決するのですか?
私は最終的に問題を解決したと思います。一般的に推奨されている解決策は、vertical-align: middleを使用することです。
<input type="radio" style="vertical-align: middle"> Label
しかし、問題は、理論的にはうまくいくはずなのに、これでも目に見える位置のずれが生じてしまうことです。CSS2 の仕様にはこうあります。
vertical-align: middle: 親ボックスのベースラインに親のx-heightの半分を加えたボックスの垂直方向の中点を整列させます。
つまり、完全な中央にあるはずです (x-height は文字 x の高さです)。しかし、この問題は、ブラウザが一般的にラジオ ボタンやチェック ボックスに不規則な余白を追加していることが原因となっているようです。例えばFirefoxでFirebugを使って確認すると、Firefoxのデフォルトのチェックボックスのマージンは
3px 3px 0px 5px
. これはどこから来ているのかわかりませんが、他のブラウザも同じようなマージンをとっているようです。したがって、完璧な配置を得るためには、これらの余白を取り除く必要があります。
<input type="radio" style="vertical-align: middle; margin: 0px;"> Label
テーブルベースのソリューションでは、余白が何らかの形で確保され、すべてがきれいに整列していることに注目するのは興味深いことです。
関連
-
iframeフレームワークの使用
-
[解決済み] jQueryでチェックボックスに "checked "を設定する
-
[解決済み] CSSの親セレクタはありますか?
-
[解決済み] CSSでcellpaddingとcellspacingを設定する?
-
[解決済み] どのラジオボタンが選択されているかをjQueryで知るにはどうしたらよいですか?
-
[解決済み] div内の要素を縦に並べるにはどうしたらいいですか?
-
[解決済み] Webサイトのブラウザタブアイコン(ファビコン)を追加する方法を教えてください。
-
[解決済み】なぜHTMLは "chucknorris "を色と見なすのか?
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
-
[解決済み】HTML5入力のプレースホルダの色をCSSで変更する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ローカルリソースのロードが許可されていない問題を解決する
-
document.forms 使用方法
-
[解決済み] CSS - カーソルを置いたときに塗りつぶしの色を変更する - SVG PATH
-
[解決済み] bootstrapでボタンにリンクを貼るには?
-
[解決済み] slackのチームIDやチャンネルIDを調べる最も簡単な方法は何ですか?
-
[解決済み] HTMLとCSSによるテーブルスクロール [重複]について
-
[解決済み] HTML IFステートメント
-
[解決済み] divの内容を下に揃える方法
-
[解決済み] Bootstrap 3 の sr-only とは何ですか?
-
[解決済み] 残りの幅を埋めるためにdivを展開する