2012-01-09 4 views
0

問題があります。 PHPスクリプトを使って作業するには、まずHTML/CSSを右下に置く必要があります。私の目標は、より垂直なメニューリストを含む水平リストのサブメニューを表示する垂直メニューを書くことです。水平リストを含むブロック要素の流体幅

ブロック要素に固定幅を追加しない限り、私のブロック要素の水平リストが水平に表示されないという問題があります。その周りに道がありますか?

サンプル文書:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
<style type="text/css"> 
#vertimenu { 
    width: 150px; 
    font-size: 0.75em; 
} 
ul.main-links { 
    background: none; 
} 
ul.main-links li { 
    background: #999; 
    margin-bottom: 1px; 
    list-style: none; 
    width: 150px; 
} 
ul.main-links li:hover { 
    background: #ccc; 
    position: relative; 
} 
ul.main-links li div.sub-container { 
    background: #ccc; 
    display: none; 
    margin: 0; 
    padding: 5px 5px 5px 0; 
} 
ul.main-links li:hover div.sub-container { 
    background: #999; 
    display: inline-table; 
    position: absolute; 
    top: 0; 
    left: 150px; 
} 
ul.sub-categories { 
    margin: 0 0 0 5px; 
    padding: 0; 
} 
ul.sub-categories li{ 
    float: left; 
    list-style: none; 
    display: inline; 
    text-align: center; 
    background: #ccc; 
    margin: 0 0 1px 0; 
} 
ul.sub-links { 
    margin: 0; 
    padding: 0; 
    background: none; 
} 
ul.sub-links li{ 
    list-style: none; 
    margin: 0; 
    padding: 0; 
    background: #999; 
} 
</style> 

</head> 

<body> 

<div id="vertimenu"> 
    <ul class="main-links"> 
     <li><a href="#">Home</a> 
      <div class="sub-container"> 
       <ul class="sub-categories"> 
        <li>Category A 
         <ul class="sub-links"> 
         <li><a href="#">Sub Menu Item 1</a></li> 
         <li><a href="#">Sub Menu Item 2</a></li> 
         <li><a href="#">Sub Menu Item 3</a></li> 
         <li><a href="#">Sub Menu Item 3</a></li> 
         </ul> 
        </li> 
        <li>Category B 
         <ul class="sub-links"> 
         <li><a href="#">Sub Menu Item 1</a></li> 
         <li><a href="#">Sub Menu Item 2</a></li> 
         <li><a href="#">Sub Menu Item 3</a></li> 
         <li><a href="#">Sub Menu Item 3</a></li> 
         </ul> 
        </li> 
        <li>Category C 
         <ul class="sub-links"> 
         <li><a href="#">Sub Menu Item 1</a></li> 
         <li><a href="#">Sub Menu Item 2</a></li> 
         <li><a href="#">Sub Menu Item 3</a></li> 
         <li><a href="#">Sub Menu Item 3</a></li> 
         </ul> 
        </li> 
       </ul> 
      </div> 
     </li> 
    </ul> 
</div> 

</body> 
</html> 

あなたはおよそ500pxなど.SUB・コンテナへの固定幅を追加する場合は、その中の水平方向のリストは動作します。私は固定幅を追加することはできませんので、私のPHPで追加するときに意図したように動作しませんでした。ブロック以外にも他の値を表示しようとしましたが、トリックはありません。

私はdisplay:block要素内で水平リストの代わりにテーブルを使うことができますが、実際にはチューブ状のデータではないので、可能ならば避けたいと思います。 EDIT:テーブルを使用すると、水平リストと同じ問題が発生するため、正しく動作しません。申し訳ありません

私は意味を成していない場合、私は適切な用語と専門家ではないよ...

任意のアイデア?

答えて

0

に設定されている#vertimenuul.main-links liの幅を継承しているため、リストがその幅に拘束されているのはなぜですか。

これらの幅を削除して、代わりにul.main-links liの幅を150pxとします。ここで

はデモです:http://jsfiddle.net/rfeUe/

+0

[OK]を、私は#vertimenuから150ピクセルを削除することができます。私は2番目の部分については混乱しています。あなたは、ul.main-links liから削除して、ul.main-linkに追加します。代わりにリ?それを削除するだけで、それを直ちに追加するのはどういうことでしょうか?あなたはそれを言うつもりはないと思いますよね? –

関連する問題