リストをfoat:leftさせ横並びのメニューを作っています.下記画像の赤枠の幅に(包含されているdivのボーダーを赤線にしています)メニューをぴったり収めたいのですが,左右に余白ができてしまいます.
いろいろネット等で調べてみましたが原因がわかりません.ご教授よろしくおねがいします.
------CSSソース-----------------------------------------------------
/*グローバルナビゲーション */
.globalnavi{
width:770px;
height:30px;
margin:0;
padding:0;
border:1px solid #cc0000;
}
.gloabalnavi ul{
height:30px;
margin:0;
padding:0;
background:#ffffff;
list-style:none;
}
.globalnavi li{
float:left;
margin:0;
padding:0;
}
.globalnavi span{
display:none;
}
.globalnavi a{
height:30px;
display:block;
background-repeat:no-repeat;
}
li#m1{
width:154px;
background-image:url(../image2/menu1.gif);
background-position:0px -30px;
}
li#m1 a{
background-image:url(../image2/menu1.gif);
}
li#m1 a:hover{
background-image:none;
}
li#m2{
width:154px;
background-image:url(../image2/menu2.gif);
background-position:0px -30px;
}
li#m2 a{
background-image:url(../image2/menu2.gif);
}
li#m2 a:hover{
background-image:none;
}
li#m3{
width:154px;
background-image:url(../image2/menu3.gif);
background-position:0px -30px;
}
li#m3 a{
background-image:url(../image2/menu3.gif);
}
li#m3 a:hover{
background-image:none;
}
li#m4{
width:154px;
background-image:url(../image2/menu4.gif);
background-position:0px -30px;
}
li#m4 a{
background-image:url(../image2/menu4.gif);
}
li#m4 a:hover{
background-image:none;
}
li#m5{
width:100px;
background-image:url(../image2/menu5.gif);
background-position:0px -30px;
}
li#m5 a{
background-image:url(../image2/menu5.gif);
}
li#m5 a:hover{
background-image:none;
}
------------------------------------------------------------------
-----HTML ソース--------------------------------------------------
<div class="globalnavi">
<ul>
<li id="m1" title="研究室紹介へのリンク"><a href="#"><span>大学紹介</span></a></li>
<li id="m2" title="スタッフへのリンク"><a href="#"><span>スタッフ</span></a></li>
<li id="m3" title="研究設備へのリンク"><a href="#"><span>研究設備</span></a></li>
<li id="m4" title="アーカイブへのリンク"><a href="#"><span>アーカイブ</span></a></li>
<li id="m5" title="外部リンクへのリンク"><a href="#"><span>リンク</span></a></li>
</ul>
</div><!--div globalnavi finish-->
------------------------------------------------------------------
No.4ベストアンサー
- 回答日時:
> 全体が左に寄りすぎてHPの背景からはみ出してしまいました.
補足のソースを拝見しましたが、幅830pxのmid-backの領域に対して、幅770pxのglobalnaviの領域が左右方向に均等の余白を持ってセンタリングされず、mid-backの左端に揃って描画されてしまう…という状態と解釈して宜しいですか?
その状況は、IE6/7以外のFirefox等のブラウザで起きていますよね?前者であれば親要素のmid-backの"text-align: center;"の指定が(間違って)効いてしまうので、現状のままでもglobalnaviはセンタリングされていると思いますので…
"text-align: center;"の本来の役目はテキストなどのインライン要素に対するセンタリングであり、ブロック要素(div等)の位置自体をセンタリングする性質は持っていません(IEでの結果は正しくない解釈に依るものです)。それは左右marginをautoにする事で調整できるので、下記の様に修正を加えてみて下さい。
.globalnavi{
(省略)
margin: 0 auto;
(省略)
}
こうする事で、globalnaviはwidthが770pxと決め打ちされているので、親要素のmid-backの830pxの幅から770pxを引いた残りの分(60px)が左右の余白として均等に割り振られる(左マージン30px/右マージン30pxとなります)ので、結果としてセンタリングされて表示されます。
No.3
- 回答日時:
> スペルミスとは,恥ずかしいかぎりです
いえ、結構ある事ですので、なんかいくらやってもおかしい…と思ったら、先ずは設定したCSSのセレクタとHTMLのマークアップがちゃんと対になっているかどうかを確かめてみる、という習慣を付けると良いですよ。
> 全体が左に寄りすぎてHPの背景からはみ出してしまいました.
それは本件とは別の問題ですね。globalnaviの親要素との兼ね合いに不具合があると思われますが、その部分の情報を提供して頂かないとわかりません。
この回答への補足
globalnaviの親要素はmid-backでプロパティーは以下の様になっています.
.mid-back{
border:1px solid #cc0000;
width:830px;
margin:0px auto 0px auto;
padding:0px 0px 0px 0px;
background: url(../image/back-mid.gif) repeat-y center ;
text-align:center;
}
なおHTMLは以下の様になっています.よろしくお願いします.
-------------HTML--------------------------------------------------
<div class="mid-back">
<div class="globalnavi">
<ul>
<li id="m1" title="研究室紹介へのリンク"><a href="#"><span>大学紹介</span></a></li>
<li id="m2" title="スタッフへのリンク"><a href="#"><span>スタッフ</span></a></li>
<li id="m3" title="研究設備へのリンク"><a href="#"><span>研究設備</span></a></li>
<li id="m4" title="アーカイブへのリンク"><a href="#"><span>アーカイブ</span></a></li>
<li id="m5" title="外部リンクへのリンク"><a href="#"><span>リンク</span></a></li>
</ul>
</div><!--div globalnavi finish-->
<image src="image/top1.jpg" border="none" >
<div class="mid">
あああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ
</div> <!--div mid finish-->
</div><!--div mid-back finish-->
-------------------------------------------------------------------
No.1
- 回答日時:
実際にサンプルを検証していませんが、提供された情報を見ると単純に計算を間違っていると思いますが。
globalnaviの幅が770pxなのに対し、子要素liの幅の合計が154px×4+150px=716pxなのでぴったりに並べるには54px足りません。
下記だけ100pxになっているのは何故ですか?
li#m5{
width:100px;
(省略)
}
この回答への補足
当初は5番目の要素もwidth154pxでしたが,それでは余白が現状と同じで5番目の要素が表示されなかったので5番目の要素を表示させようと幅を小さくした結果です.
補足日時:2009/06/17 12:25お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- HTML・CSS HTML & CSS 縦ボックス内の文字の左右センタリング 3 2023/03/25 04:23
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlの文字が縦書きになる
-
widthやheightの数値に単位(px...
-
CSS、width100%でもできる余白
-
cssで「下よせ」ってどうやって...
-
CSS(0の単位)について
-
ページを拡大縮小でborderが消...
-
<div>と<div>の間の10px程の...
-
floatした画像の下揃えについて
-
CSSの角丸での質問です。 今、C...
-
スクロールボックスを中央に配...
-
定義リスト dl dd dt
-
余分な縦スクロールバーが出て...
-
heaerとfooterに背景画像が難し...
-
Flexslider2のカーセルスライダ...
-
CSSでボックスのheightが0になる
-
【スタイルシート?】同行内で...
-
テーブル内の文字が揃わない
-
【CSSについて】リストをフロー...
-
リストを全体的に右寄せにしたい。
-
CSSで余白とパディングに”0”を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlの文字が縦書きになる
-
widthやheightの数値に単位(px...
-
画像イメージの上下左右、欲し...
-
css初心者 フレックスボックス...
-
表示倍率を変えるとレイアウト...
-
CSSがなぜかfont-sizeだけ効か...
-
CSS、width100%でもできる余白
-
W3Cのソースコードの検証サービ...
-
CSS:animation開始位置の設定
-
CSSで指定した背景画像にリンク...
-
<div>と<div>の間の10px程の...
-
余分な縦スクロールバーが出て...
-
CSSでボックスのheightが0になる
-
【CSS】ヘッダーの高さが不明の...
-
スクロールボックスを中央に配...
-
li 黒丸含んで移動する方法
-
border-style:solidで文字がずれる
-
【HTML&CSS】フッター下部の余...
-
Media Queries 4 で 非推奨とな...
-
初心者html・CSS ウィンドウを...
おすすめ情報