• ベストアンサー

css 横並びのナビゲーションバーを二段にする場合

CSSでデザインしてるのですが・・・。 ナビゲーションバーで横並びに4項目。 ここまでは出来るのですが、この4項目を 2段にして、8項目にするには、どのように書くのがスマートでしょうか。 テーブルにしたほうが早そうな気もしますが、 表かといいうと、違う気もします。 ulでリスト表示の途中で改行させる方法があるのか、 マークアップが適切とはいえないけれど、 リストが二つあることにして、ulを二つにするか、 などと考えています。 初心者でよくわかっていないのですが、 皆様はどのようにしたら良いと思われますか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tsucu
  • ベストアンサー率62% (71/113)
回答No.1

たとえば、外枠のブロックで横幅を決めちゃって、その中で float: left; じゃだめ?非常に単純にCSSとHTMLを書くとこんな感じ。 ■CSS部 *{ margin:0; padding:0; } ul {width: 600px;} li { height: 50px; width: 150px; list-style-type: none; float: left; display: block; } ■HTML部 <ul> <li>めにゅー1</li> <li>めにゅー2</li> <li>めにゅー3</li> <li>めにゅー4</li> <li>めにゅー5</li> <li>めにゅー6</li> <li>めにゅー7</li> <li>めにゅー8</li> </ul>

takeetakee
質問者

お礼

シンプルで理にかなってますね。とても助かりました!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • 15mm
  • ベストアンサー率65% (65/100)
回答No.2

<ul>を二つ作ってそれを2段にするとどうでしょう。 文字数がばらばらでも確実に4つずつ詰め込めますし、 一段に入れる量も簡単に変えられるでしょう。 幅の設定はなくてもいいはずです。 マージンの設定は適当に変えてください ul{margin:0px;} li{display:inline;margin:0px 3px;} <ul><li>1段目1つ目</li><li>1段目2つ目</li>・・・</ul> <ul><li>2段目1つ目</li><li>2段目2つ目</li>・・・</ul>

takeetakee
質問者

お礼

ありがとうございます! この方法でとりあえず目標達成できました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 横並びリストでの改行

    リストをcssでフロートで横並びにした場合の話ですが、 たとえば、項目が5つあって、liのwidthを指定せずに500pxのボックスの中に横並びにすると、5つの合計の幅が500pxでおさまる場合は問題ないのですが、おさまらない場合、IEで項目の途中で改行されてしまいます。 li { white-space: nowrap; } で改行させないようにすることはできるのですが、これだと、1項目の中身が500pxを超えてしまうような長文の場合、逆に突き抜けてしまい困っております。 何かよい方法があればご教授いただけると助かります。

    • 締切済み
    • CSS
  • 「CSS」リストの2段組どのように組まれていますか?(同一カテゴリの場合)

    リストの2段組ですが、皆さんどのように組まれていますか? リストの項目が同一カテゴリーだった場合です。 例えば下記のような同一カテゴリー(花)の場合 ・チューリップ ・あじさい ・たんぽぽ ・ひまわり ・すみれ ・パンジー これを ============= ・チューリップ  ・ひまわり ・あじさい     ・すみれ ・たんぽぽ    ・パンジー ============= のように表示させたい場合です。 投稿した後に表示がズレるかもしれませんが、 ・ひまわり ・すみれ ・パンジー の頭は揃えたいです。 苦肉の策で下記のようなマークアップをしています。 <ul class="left"> <li>チューリップ</li> <li>あじさい</li> <li>たんぽぽ</li> </ul> <ul class="right"> <li>ひまわり</li> <li>すみれ</li> <li>パンジー</li> </ul> そして左右にfloatさせています。 ただ、これだとリストが途中で分断されてしまって 正しいマークアップとは言えないですよね・・・。 こういうケースって結構あるのでは、と思い、 色んなサイトを巡りましたが見つからず。 皆さんこういったケースの場合どのように組まれてますか? いっそテーブルの方が良いのでしょうか? 項目は後から追加するものと想定してください。 (縦に可変していきます) どうぞ宜しくお願いいたします。

    • ベストアンサー
    • HTML
  • 【css】異なる種類の要素を横並びに表示する方法

    たとえば見出し要素<h1>とリスト要素<ul>を横並びに表示したい場合、cssでは何をどれに対して指定すれば良いのか教えていただけませんか。 よろしくお願いします。

    • 締切済み
    • CSS
  • ナビゲーションバーを配置すると隙間ができてしまいます・・

    adobeのCS4シリーズのphotoshop,illustrator,fireworksのいずれかを使ってナビゲーションバーを作りたいと思っています。 今回、fireworksを使用して画像をボタン化、そしてアップ画像やダウン画像を作成、最後にアクティブ領域(ボタンと同じ大きさ)を指定してdreamweaverでdivタグの中に挿入しました。divはcssで横幅805に指定してあります。 ナビゲーションバーはボタンが6つ横並びにあり、横幅は全部で760です。 ナビゲーションバー単独でブラウザにて確認した際は隙間などなかったのですが、dreamweaverに挿入するとdivの横幅805を超えてナビゲーションバーのテーブルは900近くの幅で表示されています。 ボタンとボタンの隙間は1ピクセルずつに設定したはずが、20ピクセルほども空いています。 どこの設定を誤ったのか全く分からないので、こちらでご相談させていただきました。 解決法、おわかりの方いらっしゃいましたらお願いします。

  • ナビゲーションバーのポップアップについて

    日本ユニセフ協会のページにあるナビゲーションバーには、ポップアップ機能が付いていますが、どのようにしたらできるのでしょうか? UL.LIタグをCSSで加工している思うですが....。 サンプルなど詳しい情報がありましたらご指導お願い致します。 http://www.unicef.or.jp/

    • ベストアンサー
    • CSS
  • CSSでナビゲーションバーを作る際、両端をそろえるにはどうすればよいでしょうか?

    CSSでWebデザインをしています。 ナビゲーションバーの両端をそろえたいのですが、どうすればよいでしょうか? たとえば・・・ #navi{ width:800px; height:35px; margin:0px auto 0; } でとりあえず、800pxにそろえています。 この#naviのwidthの大きさとheaderや他のものもすべて800pxに統一したものをセンターであわせています。 センターであわせる方法は、margin:0px auto 0;であわせています。 本題なのですが、#naviの中に、ulliでナビゲーションバーを設置しようとしているのですが、どうしても右端に余白ができてしまったり、少しでも大きいと2段目へずれたりします。 widthの大きさを均等にするために%表示でしようとしているのですが、それもうまくいきません。 また、FFでうまく表示ができてもIEでは崩れたりします。 基本的なことかもしれないのですが、既出の中にはないようでしたので教えていただけるとありがたいです。 説明が下手ですので、回答していただくにあたって、不明瞭な部分がございましたら補足させていただきますので、なにとぞご教授下さいませ

    • ベストアンサー
    • CSS
  • CSSを用いてリストを横並びにして、それを2行にまたがせる方法

    CSS を用いて、リストを横並びにしたのはいいのですが、そのリストの数が多く、2行にまたがらざるを得ません。 Firefox ですと枠内に入りきらないリストは自動的に改行して表示してくれるのですが、IE ですと入りきらないリストを右端に無理矢理表示(縦に伸びていきます)し、そのリストの次から2行目と移り変わります。 -- HTML -- <div id=content> <ul> <li><a href="">AAA</a></li> <li><a href="">BBB</a></li> <li><a href="">CCC</a></li> <li><a href="">DDD</a></li> <li><a href="">EEE</a></li> <li><a href="">FFF</a></li> </ul> </div> -- CSS -- #content ul { padding: 0; margin: 0; list-style-type: none; } #content li { float: left; display: block; padding: 2px 10px 0 5px; margin: 0; list-style-type: none; } 上記の例ですとEEEが1行目に入りきらない場合、Firefox では、EEEが2行目へとなって後が続きます。 IEですと EEE のうち E 1文字だけでも入ると残りの2文字は下方へずれて行きます。そして、FFFから2行目となります。 このIEでの不具合で良い解決法があれば、ご教授願います。 よろしくお願い致します。

    • ベストアンサー
    • HTML
  • ナビゲーションバーを端まで伸ばす方法

    Webサイトのヘッダにあるナビゲーションバーのデザインに関する質問です。 ulタグでコンテンツを箇条書きにしたあと、CSSで横書きに変更して、borderで文字の上下左右に線を引くという方法でナビゲーションバーを作成していますが、この方法だと   ┌─┬─┬─┐   │あ│い│う│   └─┴─┴─┘ (AAで上手く表現できているか分かりませんが) のように、バーの線がページの端まで届かず、ページの中央で浮いた状態になってしまいます。 http://award.sendenkaigi.com/ http://www13.koko-dake.jp/ 一方、上記のページを見ると  ──┬─┬─┬─┬──     │あ│い│う│  ──┴─┴─┴─┴── のように、バーの線が端まで伸びています。 こうしたバーを作成するにはどのようにCSSを書けばよいのでしょうか。

    • 締切済み
    • CSS
  • CSSでリスト横並び…そしてそれを中央へ

    CSSでリスト横並び…最近知った物ですが、問題が絶えません…。以下のようにして、CSSでリストを横並びにしたのは良いのですが、それを中央表示させたいため、ネットで色々と調べ、それを真似ているのですが、うまく中央へ表示されません。一体何が悪いのでしょうか? 最初は ul も利用していましたが、あるサイトのソースだと ul を利用していなかったので省いたところ、変化なかったので、省いたままにしています。 +++ CSS ソース +++ #smenu { clear: both; margin: 0 auto; padding: 20px 0; width: 900px; height: 50px; white-space: nowrap; list-style-type: none; text-align: center; } #smenu li { float: left; margin: 0 auto; padding: 2px 10px; text-align: center; } #smenu a { display: block; text-align: center; } +++ HTML ソース ++++ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <div id=smenu> <li><a href="#">AAA</a></li> <li><a href="#">BBB</a></li> <li><a href="#">CCC</a></li> </div> よろしくお願いします。

    • ベストアンサー
    • HTML
  • リストを横並びにするとマーカーが消える(IE)

    cssデザインをしているのですが、<ul><li></li></ul>タグで箇条書きを使っています。これをfloatで横並びにさせたのですが、IEで見たとき横に表示されるべきマーカーが消えてしまいます。これの対処法を教えていただけませんでしょうか?画像で置き換え以外の方法でお願いします。