-

<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>...</li>
<li>8</li>
<li>9</li>
</ul>

というリストを、

7 4 1
8 5 2
9 6 3

という風に並べたいのですが、
どのようにすれば上手くいくでしょうか。

3つずつdivでくくって並べるというのでなく、あくまで
li要素を上記のように並べたいのですが、うまいやり方が思いつかず……。

もし、同じようなことをしているサイトなどがあれば、
そちらも教えていただければ嬉しいです。

みんなの回答 12 件

名無しさんの回答

topとかleftとか指定して無理やり並べるくらいしか思いつかないかな。あとはJavascriptとか。
何でそんな捻くれた並び順に固執するのか分からんですが。

名無しさんの回答

まったく試してないけど、こういう縦書きライブラリで実現できるんかな?知らんけど。

JavaScriptを使った縦書きライブラリ「竹取 JS」 - MOONGIFT|オープンソース・ソフトウェア紹介を軸としたIT...

http://www.moongift.jp/2010/07/taketori-js/
名無しさんの回答

tableタグを使わない理由がわからない

名無しさんの回答

やっぱりposition: absolute; ですかね〜

名無しさんの回答

float:rightとnth-childとネガティブマージン。3はだめ?対応環境は?

名無し

↑liの中にブロック要素ないとダメですね。<li><p>1</p></li>みたいに。申し訳ないです。

名無しさんの回答

tableでやらないってことは恐らく動的に吐かせるとかそういうことなんだろうけど、情報が足りなすぎるでしょ。対応環境とかliの高さ幅は固定なのか否かとかliが9つなのは例なのか実際そうなのかとか。

名無しさんの回答

動的に何かしたいのかな?

名無しさんの回答

テーブルを使わない厨だな。わりと居る。

名無し

テーブルを使わない厨(笑)自分もそうですが(笑)

名無し

レイアウト目的でテーブル使うなよ(激怒)

名無しさんの回答

liの幅、高さ固定で、かつcss3つかえるなら(ブラウザチェックしてないけど)

ul li:nth-child(1),  
ul li:nth-child(2),  
ul li:nth-child(3) { margin : 0 0 0 auto; } 
ul li:nth-child(4) { margin : -100% auto 0 auto; } 
ul li:nth-child(5),  
ul li:nth-child(6) { margin : 0 auto 0 auto; } 
ul li:nth-child(7) { margin : -100% auto 0 0; } 
ul li:nth-child(8),  
ul li:nth-child(9) { margin : 0 auto 0 0; }
名無しさんの回答

そもそもHTMLの構文上正しくない表現の仕方だよね。何がしたいんだ?

名無しさんの回答

もう本当にどうしてもそうしなければならないなんらかの理由があるならテーブルで組んでrole="presentation"だね。

名無しさんの回答

js使ったほうがはやい。

for文で回して、縦の列が3以上になったら、yの値をクリアして、xを左にプラスするやり方でいける。
プログラムにおけるごく普通の整列するための処理。

最終更新日:2012-09-16 (2,994 views)

関連するトピックス

ページ上部に戻る