• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:メニューの横スクロールバーを消したい)

メニューの横スクロールバーを消したい

このQ&Aのポイント
  • ドロップダウンメニューをセンタリング表示しているのですが、横スクロールバーが出てしまいます。
  • overflow:hiddenを使用するとドロップダウンが非表示になってしまうため、解決方法が見つかりません。
  • ul.menuの中のleft:50%を消すと横スクロールバーが消えますが、中央揃えにならなくなります。

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

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

不必要なclass名やidを書き連ねるとHTMLもCSSも煩雑になります。折角のCascading style Sheetなのですからカスケーディングを使わなきゃ・・ ・継承するものは継承させる。 ・同じプロパティはセレクタのグループ化で一度しか書かない ・セレクタで特定できるものまで、不必要なidやclass名は書かない。 ・ひとつのHTML要素に関わる部分は、スクロールなしに見渡せるよう整理する。  サンプルは外形だけですが、HTMLもスタイルシートもこんな簡単でわかりやすいもので済むはずです。それでいて、スマートホンから幅広ディスプレイに対応しています。(ウィンド幅を伸縮して確認してください。また、固定スタイルにするときは設定を変更してください。)  まあ、スタイルシートは20~30行程度に抑えるとメンテナンスが楽です。  プルダウンメニューについて、本来はdispaly:inline-block;とtext-align:centerを組み合わせるべきですが、古いブラウザを考慮するとfloat:leftも致し方ないでしょう。   ★いずれも、タブが全角スペースに置換してあるので戻すこと。 [HTML]class名のnavはHTML5の要素名、将来HTML5に変更すると気楽なので・・ <div class="nav" id="global-nav">  <ul>   <li>イメージ画像</a>    <ul>     <li>ドロップダウン</li>     <li>ドロップダウン</li>     <li>ドロップダウン</li>    </ul>   </li>   <li>イメージ画像</a>    <ul>     <li>ドロップダウン</li>     <li>ドロップダウン</li>    </ul>   </li>   <li>イメージ画像</a>    <ul>     <li>ドロップダウン</li>    </ul>   </li>   <li>イメージ画像</a>    <ul>     <li><a href="dl-1.html">ドロップダウン</a></li>     <li><a href="dl-2.html">ドロップダウン</a></li>     <li><a href="dl-3.html">ドロップダウン</a></li>    </ul>   </li>  </ul> </div> [CSS]子セレクタやinline-blockを理解しない古いブラウザを考慮して長ったらしくなってます。 div.nav ul,div.nav ul li{  display:block;list-style:none;  margin:0;padding:0;  line-height:40px;text-align:center; } div.nav ul{  width:80%;height:40px;  margin:0 auto;min-width:640px;max-width:1000px;  background-color:#999; } div.nav ul li{width:25%;float:left;position:relative;} div.nav ul li ul li{float:none;background:#d1d1d1;} div.nav ul li ul{width:100%;position:absolute;background-color:transparent;} div.nav ul li ul{display:none;} div.nav ul li:hover ul{display:block;} div.nav ul li a{display:block;}

gspopo
質問者

お礼

ありがとうございました!