2012-12-16 191 views
2

我仍在工作我的頁腳。所以我想有一個語言選擇器應該放在首位。所以我試圖找到一個方法列出來,我不知道該怎麼做!一切都會列在下面。如何使css下拉菜單中的一個下拉菜單

的HTML結構是這樣的:

<div id="legals"> 
    <div id="list2"> 
    <span class="down">text large</span> 
     <ul class="nav2"> 
     <li><a href="/one">one</a></li> 
     <li>|</li> 
     <li><a href="/two">two</a></li> 
     <li>|</li> 
     <li><a href="/three">three</a></li> 
     <li>|</li> 
     <li>select:</li> 
      </ul> 
       <ul class="flag"> -->here it starts 
       <li id="1"> -->just an image of a flag. when hover this, the divs below should be visible 
        <ul class="drop_down"> 
          <div> -->as an container for the flags and label 
           <li id="en"></li>-->shows just an image<a href="#">one</a> -->will be the link 
          </div> 
          <div> 
         <li id="fr"></li><a href="#">two</a> 
          </div> 
          <div> 
         <li id="pl"></li><a href="#">three</a> 
          </div> 
         </ul> 
       </li> 
       </ul> 
     </div> 
</div> 

而對於CSS:

.footer #legals #list2 .flag { 
    width: 20px; 
    height: 10px; 
    margin-top: 14px; 
    margin-left: 8px; 
    float: left; 
    display: inline-block; 
    border: 1px solid #ccc; 
} 
.footer #legals #list2 .flag:hover { 
    border: 1px solid #fff; 
} 
.footer #legals #list2 .flag li{ 
    width: 20px; 
    height: 10px; 
    display: inline-block; 
    float:left; 
    background-image:url(../images/flags.png); 
} 
.footer #legals #list2 .flag #en{ 
    background-position: -40px; 
} 

/*HOVERSETTINGS*/ 
.footer #legals #list2 .flag li .drop_down{ 
    display:none; 
} 

.footer #legals #list2 .flag li .drop_down div{ 
    width: 100px; 
    height: 16px; 
    border-top: 1px solid #9fce23; 
    border-bottom: 1px solid #9fce23; 
    background-color: #f23; 
     display:block; 
} 
.footer #legals #list2 .flag li .drop_down div li{ 
    width: 20px; 
    height: 10px; 
    background-image:url(../images/flags.png); 
    background-repeat: no-repeat; 
    border: 1px solid #ccc; 
    margin-top: 1px; 
} 
.footer #legals #list2 .flag li .drop_down div:hover{ 
    color: #fff;  
} 
.footer #legals #list2 .flag li .drop_down div a{ 
    font-family: Arial, Helvetica, sans-serif; 
    font-size: 12px; 
    color: #ccc; 
    font-weight:bolder; 
    text-align: left; 
    margin-left: 10px; 
} 

所以,如果有一個人誰可以幫我我真的感激。

回答

1

你可以嘗試這樣的事情http://jsfiddle.net/ZG2BL/

的想法是,要設置li持有下拉ulposition:relative;ul下拉爲position:absolute;,並給它一個正面底部值,它會顯示出來以上父母li

我必須說你有很多獨特的代碼。例如,他不需要li元素被包裝在div等等。你也不能有數字ID。

+0

你好,謝謝你回答這個問題。李的問題是我有一個很大的sprite.png。這我不能用作div的背景圖片。所以我不得不使用li來限制我想要顯示的可見標誌。否則我不知道如何去實現它。 – bonny

+0

@bonny在這種情況下,把裏面的div –

+0

好吧,非常感謝你的幫助。 – bonny

0

這是確實難以製作一個上拉菜單,因爲HTML/CSS從上到下工作,並且要創建一個上拉菜單,您必須確切知道菜單的大小。

幸運的是,有黑客可以解決這個問題。我只是想出了一個有點複雜,但應該只是罰款:

  1. 做一個下拉菜單
  2. 旋轉整個菜單使用CSS 180度。
  3. 確保旋轉點設置正確,以便使用菜單欄(?)的中間作爲旋轉點進行旋轉。
  4. 將所有菜單項目旋轉180度以確保文本不是顛倒的。

就像我說的,它有點複雜,但它應該工作。將項目旋轉​​180度將迫使CSS從下到上工作,因此您不必對任何高度進行硬編碼。

當然,有些JavaScript替代品比較容易,但如果你理解我剛寫的東西,這個CSS hack應該相當容易實現。

+0

OMG !!!第一步:準備好。第二步:這是如何工作的? – bonny

+0

查看[您最喜愛的搜索引擎](http://www.bing.com/search?q=css+rotate)。 –