Gizport
1 回答
0
Share (facebook)
176
view
全般

htmlで写真の赤線で囲まれた青のメニューを一列のしたいのですが、よ...

htmlで写真の赤線で囲まれた青のメニューを一列のしたいのですが、よくわかりません。
初心者なのでよくわかりませんが、たぶんcssが間違ってると思います。
どこが悪いのか分からないので教えてください。 とりあえずcssはこれです。



/* --- ナビゲーションバー --- */
div.nav {
width: 100%; /* ナビゲーションの幅 */
background: #4e83b3 url(hor_menu6_off.gif) repeat-x top; /* ナビゲーションの背景 */
border-top: 2px #84aed2 solid; /* 上境界線 */
border-bottom: 2px #2c5170 solid; /* 下境界線 */
font-size: 80%;
}

/* --- メニューエリア --- */
div.nav ul.nl {
width: 600px; /* メニューの幅 */
margin: 0 auto; /* センターに配置 */
padding: 0;
background: #4e83b3 url(hor_menu6_off.gif) repeat-x top; /* メニューの背景 */
border-left: 1px #2c5170 solid; /* メニューの左境界線 */
border-right: 1px #84aed2 solid; /* メニューの右境界線 */
list-style-type: none;
text-align: center;
}

/* --- メニュー項目 --- */
div.nav ul.nl li {
width: 20%; /* 項目の幅 */
float: left;
}

/* --- リンク --- */
div.nav ul.nl li a {
display: block;
position: relative; /* IE6用 */
padding: 7px 2px 4px; /* リンクエリアのパディング(上、左右、下) */
border-left: 1px #84aed2 solid; /* リンクエリアの左境界線 */
border-right: 1px #2c5170 solid; /* リンクエリアの右境界線 */
text-decoration: none; /* テキストの下線(なし) */
font-weight: bold; /* 文字の太さ(太字) */
color: #ffffff; /* 文字色 */
line-height: 100%; /* 行の高さ */
}
/* 英字部分 */
div.nav ul.nl li a span.en {
display: block;
margin-top: 2px; /* 英字部分の上マージン */
font-size: 85%; /* 英字の文字サイズ */
font-weight: normal; /* 文字の太さ(ノーマル) */
color: #eee8aa; /* 英字の文字色 */
}
/* --- ポイント時の設定 --- */
div.nav ul.nl li a:hover {
background: #5e91bd url(hor_menu6_on.gif) repeat-x top; /* ポイント時の背景 */
}
div.nav ul.nl li a:hover span.en {
color: #fde337; /* ポイント時の英字の文字色 */
}

/* --- clearfix --- */
.clearFix:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.clearFix {
min-height: 1px;
}
Yahoo!知恵袋 4802日前
コメントする
お気に入り
1
質問者が選んだベストソリューション
原因はwidthの誤解。
本来、widthで指定する値にはpaddingやborderの数値を含みません。
IEとかいうウンコブラウザだと含んじゃうバージョンもありますけど。

なので
width: 20%; /* 項目の幅 */
これが原因です。

これじゃ(20%+X)×5項目となって、Xの合計の分が100%を超えてしまう。
すると4項目並んだ後に行が変わるんです。
ここまでの説明で、具体的な解決策は思いつくと思います。
Yahoo!知恵袋 4797日前
シェア
 
コメントする
 

参考になったと評価
  このQ&Aは参考になりましたか?

Share (facebook)
その他の解決方法を知っていますか?
回答する
全般
29
Views
質問者が納得原因はwidthの誤解。 本来、widthで指定する値にはpaddingやborderの数値を含みません。 IEとかいうウンコブラウザだと含んじゃうバージョンもありますけど。 なので width: 20%; /* 項目の幅 */ これが原因です。 これじゃ(20%+X)×5項目となって、Xの合計の分が100%を超えてしまう。 すると4項目並んだ後に行が変わるんです。 ここまでの説明で、具体的な解決策は思いつくと思います。
4802日前view29

関連製品のQ&A