プロが教えるわが家の防犯対策術!

横並びでサブメニューがあるメニューを以下の様に作成しました
HTMLは
<ul>
<li><a href="">トップページ</a></li>
<li><a href="">メニュー2</a>
<ul class="sub-menu">
<li><a href="">メニュー2のサブメニュー</a></li>
<li><a href="">メニュー2の長いんだよサブメニュー</a></li>
<li><a href="">メニュー2のサブメニュー</a></li>
</ul>
</li>
<li><a href="">メニュー3</a></li>
<li><a href="">メニュー4</a></li>
<li><a href="">メニュー5</a></li>
<li><a href="">メニュー6</a></li>
<li><a href="">メニュー7</a></li>
</ul>


CSSは

ul{
float:right;
font-size:95%;
padding-bottom:20px;
}

ul ul{padding-bottom:0;width:auto;}

ul li{
display:inline-block;
vertical-align:text-top;
text-align:left;
padding:5px 0;
margin-left:15px;
background:url(../images/arrow.png) no-repeat 0 9px;
}

ul lia{
display:block;
padding:0 0 0 12px;
overflow:hidden;
}

ul li li{
display:block;
padding:0;
margin-left:5px;
background:url(../images/arrow2.png) no-repeat 0 6px;
}
これですと添付画像の左のようになってしまいます。
サブメニューの長さに関係なく、右のようにメニューを詰めることは可能ですか

「<li>タグでメニューを作った場合」の質問画像

A 回答 (1件)

ナビゲーションでしょうから、文書構造が分かるようにclass名をnavにしたdivで囲んでおきます。


<div class="nav">
 <ul>
  <li><a href="">トップページ</a></li>
  <li><a href="">メニュー2</a>
   <ul>
    <li><a href="">メニュー2のサブメニュー</a></li>
    <li><a href="">メニュー2の長いんだよサブメニュー</a></li>
    <li><a href="">メニュー2のサブメニュー</a></li>
   </ul>
  </li>
  <li><a href="">メニュー3</a></li>
  <li><a href="">メニュー4</a></li>
  <li><a href="">メニュー5</a></li>
  <li><a href="">メニュー6</a></li>
  <li><a href="">メニュー7</a></li>
 </ul>
</div>

/* ナビゲーションのリストのスタイルをリセット*/
div.nav ul,div.nav ul li{
margin:0;padding:0;
line-height:2em;
text-align:center;
width:100%;
position:relative;
background-color:white;
z-index:100;
}
/* 横並び */
div.nav ul li{
display:inline-block;
width:13%;/* 7項目なので100÷7≒14.29 */
}
div.nav ul li ul{
position:absolute;
top:2em;
width:300%;
}
div.nav ul li ul li{
display:block;
text-align:left;
width:auto;
}
/* hover */
div.nav ul li ul{display:none;}
div.nav ul li:hover ul{display:block;}
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
上記をヒントに思うように設定できました。

お礼日時:2014/12/19 09:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!