[解決済み] テーブルを使わないで、このHTMLレイアウトは可能ですか?
質問
1、2週間前に簡単なレイアウトの問題が発生しました。 すなわち、ページのセクションはヘッダーを必要としていました。
+---------------------------------------------------------+
| Title Button |
+---------------------------------------------------------+
かなり単純なものです。 Webの世界ではテーブルが嫌われているようです。 なぜ HTML フォームではテーブルの代わりに定義リスト (DL,DD,DT) タグを使うのですか? さて、テーブルと divs/CSS の一般的な話題は、たとえば以前にも取り上げました。
ですから、これはレイアウトのためのCSSとテーブルについての一般的な議論をするためのものではありません。 これは単に 1 つの問題に対する解決策です。 私は、以下を含む CSS を使用して上記のさまざまな解決策を試しました。
- ボタンまたはボタンを含む div を右にフロートさせる。
- ボタンの相対位置; および
- 位置は相対+絶対です。
これらの解決策はどれも、異なる理由で満足のいくものではありませんでした。 たとえば、相対的な位置決めでは、z-index の問題が発生し、ドロップダウンメニューがコンテンツの下に表示されるようになりました。
そこで、結局、元に戻りました。
<style type="text/css">
.group-header { background-color: yellow; width: 100%; }
.group-header td { padding: 8px; }
.group-title { text-align: left; font-weight: bold; }
.group-buttons { text-align: right; }
</style>
<table class="group-header">
<tr>
<td class="group-title">Title</td>
<td class="group-buttons"><input type="button" name="Button"></td>
</tr>
</table>
そして、それは完璧に動作します。 シンプルで、後方互換性があり(おそらく IE5 でも動作するでしょう)、ただ動作するだけです。 位置や浮動小数点数で混乱することはありません。
では、テーブルなしで同等のことができる人はいるのでしょうか?
要件は
- 下位互換性があること。 をFF2、IE6に対応させました。
- 合理的に一貫しています。 異なるブラウザー間で
- 垂直方向に中央揃え。 ボタンとタイトルが異なる高さであること。
- フレキシブルです。 位置決め(パディングやマージン)やスタイリングを適度に正確に制御できます。
余談ですが、今日、興味深い記事をいくつか見つけました。
EDITです。 フロートの問題について詳しく説明します。 これは一種の作品です。
<html>
<head>
<title>Layout</title>
<style type="text/css">
.group-header, .group-content { width: 500px; margin: 0 auto; }
.group-header { border: 1px solid red; background: yellow; overflow: hidden; }
.group-content { border: 1px solid black; background: #DDD; }
.group-title { float: left; padding: 8px; }
.group-buttons { float: right; padding: 8px; }
</style>
</head>
<body>
<div class="group-header">
<div class="group-title">This is my title</div>
<div class="group-buttons"><input type="button" value="Collapse"></div>
</div>
<div class="group-content">
<p>And it works perfectly. It's simple, as backward compatibile as it gets (that'll work probably even on IE5) and it just works. No messing about with positioning or floats.</p>
<p>So can anyone do the equivalent without tables that is backwards compatible to at least FF2 and IE6?</p>
<p>On a side note, I came across a couple of interesting articles today:</p>
</div>
</body>
</html>
おかげさまで
アリP
のために
overflow: hidden
の部分と同じです (それでもなぜかは分かりませんが)。 ここで問題が発生します。 タイトルとボタンを垂直方向に中央寄せにしたいとします。 これは、要素の高さが異なるために問題があります。 これを比較してみましょう。
<html>
<head>
<title>Layout</title>
<style type="text/css">
.group-header, .group-content { width: 500px; margin: 0 auto; }
.group-header { border: 1px solid red; background: yellow; overflow: hidden; }
.group-content { border: 1px solid black; background: #DDD; }
.group-header td { vertical-align: middle; }
.group-title { padding: 8px; }
.group-buttons { text-align: right; }
</style>
</head>
<body>
<table class="group-header">
<tr>
<td class="group-title">This is my title</td>
<td class="group-buttons"><input type="button" value="Collapse"></td>
</tr>
</table>
<div class="group-content">
<p>And it works perfectly. It's simple, as backward compatibile as it gets (that'll work probably even on IE5) and it just works. No messing about with positioning or floats.</p>
<p>So can anyone do the equivalent without tables that is backwards compatible to at least FF2 and IE6?</p>
<p>On a side note, I came across a couple of interesting articles today:</p>
</div>
</body>
</html>
で、これは完全に動作します。
どのように解決するのですか?
仕事を素早く正確に行うために、利用可能なツールを使用することは悪いことではありません。
この場合、テーブルが完璧に機能しました。
私は個人的に、これにはテーブルを使用しました。
ネストされたテーブルは避けるべきだと思います、物事が面倒になる可能性があります。
関連
-
[解決済み] CSS - カーソルを置いたときに塗りつぶしの色を変更する - SVG PATH
-
[解決済み] input type="button "に背景画像を追加するには?
-
[解決済み] 画像の横のテキストを縦に揃える?
-
[解決済み] How can I set the default value for an HTML <select> element?
-
[解決済み] Sublime Text 2を使ってHTMLコードを再フォーマットするにはどうしたらいいですか?
-
[解決済み] HTMLで表示される上下の三角形(軸のない矢印)に使用できる文字は何ですか?
-
[解決済み] HTMLの "role "属性は何のためにあるのですか?
-
[解決済み] CSSコンテンツによるHTMLエンティティの追加
-
[解決済み] Bootstrap3による垂直方向の整列
-
[解決済み】CSSを使用して、すべてのブラウザでdiv要素を垂直方向に中央に配置するにはどうすればよいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
iframeフレームワークの使用
-
[解決済み] ジャンボトロンのセンター出しは?
-
[解決済み] 箇条書きのない順序なしリストが必要です。
-
[解決済み] 画像の横のテキストを縦に揃える?
-
[解決済み] divの内容を下に揃える方法
-
[解決済み] HTMLの "role "属性は何のためにあるのですか?
-
[解決済み] 複数のノンブレイキングスペース("nbsp")ではなく、タブスペースを使用しますか?
-
[解決済み] Zalgoテキストはどのように機能しますか?
-
[解決済み] HTMLのレイアウトにテーブルを使用しない理由は?[クローズド]
-
[解決済み] DIVの代わりにテーブルを使用する [重複]。