暇なので昔やったコーディングで悩んだものを見直しています。
デザイナーから以下のような構成のカンプが上がってきました。
http://i.imgur.com/WVcCOKI.jpg
まず、こういのが思い浮かびますが
http://jsfiddle.net/s34sS/1/
floatで頑張っても無理そうです。
当時はテンパって謎のtable組してしまいましたが
こんな感じでしょうか?
リストの連続性が失われるのがなんだかさびしい。
http://i.imgur.com/YrkIIYF.jpg
皆様ならどうするでしょう?
もっとスマートな方法があったら教えてください。
コーディングはいつも時間との戦いで大変です。。
みんなの回答 5 件
CSS3になっちゃうけど、column-widthを使えば出来ます。
ttp://www.htmq.com/css3/column-width.shtml
まず枠に囲われたものはliでもdivでも対応できる。
枠の中、titleとリスト要素はそれぞれdivなりliで囲い、囲った要素にdisplay: inline-blockかfloatをかけて、中の物はブロック要素。
枠の中のリスト要素で左右にずれているのはulをネストさせてpaddginでもmarginでもかければ良い。
よくフッターにあるサイトマップみたいな感じだね。
自分の場合だったらdl>dt+ddまでは一緒で、ulは列ごとに設置せず横一列で組むようにする。(コードが簡潔に書けるし、メンテナンスしやすくなるため)
cssはネガティブマージンとfloatで。これだと文字拡大等されても問題なく動作するし、幅広いブラウザに対処できる。
何が問題なのかわかんないな。
fiddleを見る限り、トピ主のコードへの疑問点。
JavaScriptやjQueryで動的にレイアウト制御すれば、
HTML自体は以下のようなシンプルな構造でもぜんぜんいける。
<h1>タイトル1</h1>
<ul>
<li>あああ</li>
<li>いいい</li>
<li>ううう</li>
</ul>
<h1>タイトル2</h1>
<ul>
<li>あああ</li>
<li>いいい</li>
<li>ううう</li>
</ul>
関連するトピックス