解決したいこと
menubarの設定で、写真のように2個目以降左側に余白が入ってしまっているので、余白を除き全てのメニューをバランスよく真ん中に配置したい。
該当のソースコード
NEW:/*全体の設定を追加いたしました。
HTML
1<div class="nav-fix-pos"> 2<nav id="menubar"> 3<ul> 4<li><a href="index.html">メニュー</a></li> 5<li><a href="index.html">メニュー</a></li> 6<li><a href="index.html">メニュー</a></li> 7<li><a href="index.html">メニュー</a></li> 8<li><a href="index.html">メニュー</a></li> 9<li><a href="index.html">メニュー</a></li> 10<li><a href="index.html">メニュー</a></li> 11<li><a href="index.html" target="_blank" rel="noopener noreferrer">メニュー</a></li> 12</ul> 13</nav> 14</div>
CSS
1/*メニュー1個あたりの設定*/ 2#menubar li{ 3 padding: 0 8px; 4 flex: 1; 5} 6 7#menubar li a { 8 margin: 0 auto; 9 display: block; 10 text-decoration: none; 11 text-align: center; 12 line-height: 45px; 13 border-right: 1px dashed #ccc; 14}
余白が入ってしまう↓
CSS
1/*全体の設定 2---------------------------------------------------------------------------*/ 3body { 4 5 6 7 margin: 0px;padding: 0px; 8 color: #000; /*全体の文字色*/ 9 font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "MS Pゴシック", "MS PGothic", sans-serif; /*フォント種類*/ 10 font-size: 15px; /*文字サイズ*/ 11 line-height: 2; /*行間*/ 12 -webkit-text-size-adjust: none; 13 background: #fff; /*背景色*/ 14} 15h1,h2,h3,h4,h5,p,ul,ol,li,dl,dt,dd,form,figure,form { 16 margin: 0px;padding: 0px;font-size: 100%;} 17ul { 18 list-style: none; 19} 20 ol {padding-left: 40px;padding-bottom: 15px;} 21img {border: none;max-width: 100%;height: auto;vertical-align: middle;} 22table {border-collapse:collapse;font-size: 100%;border-spacing: 0;} 23iframe {width: 100%;} 24 25 26/*メニューブロックの設定*/ 27#menubar{ 28 max-width: 1200px; /*最大幅。#header、.contents、#pagetopと数字を合わせる*/ 29 position: relative;z-index: 2; 30 margin: 0 auto; 31 background: #F0C; /*背景色(古いブラウザ用)*/ 32 background: rgba(255,255,255,0.9); /*背景色。255,255,255は白の事で、最後の0.9は透明度90%の事。*/ 33 height: 45px; /*メニューブロックの高さ。ここを変更する場合、fixmenu.cssの「body.is-fixed .header」も変更する。*/ 34 padding: 10px 0; /*上下、左右へあける余白。ここの10pxの数字を変更する場合、fixmenu.cssの「body.is-fixed .header」も変更する。*/ 35} 36/*トップページのメニューブロックの設定*/ 37#top #menubar{ 38 border-radius: 10px; /*角丸のサイズ*/ 39 -webkit-box-shadow: 2px 5px 8px rgba(0,0,0,0.2); /*影の設定。右・下・ぼかし幅・色(rgba)の設定。rgba値は左3つが色指定(この場合は黒)で最後の0.2は透明度20%の事。*/ 40 box-shadow: 2px 5px 8px rgba(0,0,0,0.2); /*同上*/ 41} 42/*メニュー1個あたりの設定*/ 43#menubar li{ 44 padding: 0 8px; 45 flex: 1; 46} 47 48#menubar li a { 49 margin: 0 auto; 50 display: block; 51 text-decoration: none; 52 text-align: center; 53 line-height: 45px; 54 border-right: 1px dashed #ccc; 55} 56 57/*1個目メニューの設定*/ 58#menubar li:first-child { 59 margin-left: 2.8%; /*左側にバランスよく余白を入れる*/ 60} 61 62#menubar li:first-child a { 63 border-left: 1px dashed #ccc; /*左側の線の幅、線種、色*/ 64} 65/*マウスオン時と、現在表示中(current)設定*/ 66#menubar li a:hover, 67#menubar li.current a { 68 color: #fff; /*文字色*/ 69 background:#f0c; /*背景色*/ 70} 71/*小さい端末用(画面幅800px以下)メニューを表示させない*/ 72#menubar-s { 73 display: none;#top #menubar { 74 border-radius: 10px; /*角丸のサイズ*/ 75 -webkit-box-shadow: 2px 5px 8px rgba(0,0,0,0.2); /*影の設定。右・下・ぼかし幅・色(rgba)の設定。rgba値は左3つが色指定(この場合は黒)で最後の0.2は透明度20%の事。*/ 76 box-shadow: 2px 5px 8px rgba(0,0,0,0.2); /*同上*/ 77 } 78 /*メニュー1個あたりの設定*/ 79 #menubar li { 80 padding: 0 8px; 81 flex: 1; 82 } 83 84 #menubar li a { 85 margin: 0 auto; 86 display: block; 87 text-decoration: none; 88 text-align: center; 89 line-height: 45px; 90 border-right: 1px dashed #ccc; 91 } 92} 93/*3本バーアイコンを表示させない*/ 94#menubar_hdr { 95 display: none; 96}
試したこと
・HTMLの余白を削除
・jsfiddleでどこまでが余白が入るか確認
・google dev toolsで1個目のメニューと2個目のメニューの違いを比較↓
CSS
1#menubar li:first-child { 2 margin-left: 2.8%; 3}
が1個目には入っていた。
・ulのpaddingをピンポイントを0にする
・シンプルなソースコードに変更(回答参照)
その他予想したこと(どう修正したらいいかまでは分からず)
・余白はlist-styleプロパティをnoneに指定した跡?
・display: flex; に変更したのでどこかが対応していない?
・各ブラウザが持つmarginやpaddingの初期値が反映されている?
再現するために必要だと思われるソースコード
CSS
1/*PAGE TOP設定 2---------------------------------------------------------------------------*/ 3#pagetop { 4 clear: both; 5 max-width: 1200px; /*最大幅。#header、#menubar、.contentsと数字を合わせる*/ 6 margin: 0 auto; 7} 8#pagetop a { 9 text-decoration: none; 10 text-align: center; 11 display: inline-block; 12 float: right; 13 color: #000; /*文字色*/ 14 font-size: 20px; /*文字サイズ*/ 15 padding: 0px 30px; /*上下、左右へのボックス内余白*/ 16 background: #e2458a; /*背景色*/ 17 border-radius: 4px 4px 0px 0px; /*角丸のサイズ。左上、右上、右下、左下。*/ 18} 19/*マウスオン時*/ 20#pagetop a:hover { 21 background: #e2458a; /*背景色*/ 22 color: #FFF; /*文字色*/ 23}
CSS
1/*MENUページのページ内メニュー 2---------------------------------------------------------------------------*/ 3ul.navmenu { 4 padding-top: 0px; 5 padding-bottom: 0px; 6 text-align: left; 7} 8ul.navmenu li { 9 display: inline-block; 10 padding: 10px; 11}