2012-05-24 28 views
2

在一行中設置一堆標籤/下拉列表的方式是什麼樣,但每個下拉列表的上方都有一個標籤。使用css設計一行標籤和下拉列表

目前,我有我的HTML

<label for="select1">Label1</label> 
<select id="select1">...<select> 

<label for="select2">Label2</label> 
<select id="select1">...<select> 

<label for="select3">Label3</label> 
<select id="select3">...<select> 

默認情況下,它們都在一排排隊。 如果我申請這個風格

label { 
display:block; 
} 

我得到所有的人都排成一列,在缺乏更好的詞。

那麼,我將如何對它們進行設計,以便在一行中添加一堆標籤/下拉列表,但每個下拉列表中都有一個標籤位於其上方?當然沒有桌子。

謝謝。

回答

2

更新:精製跨瀏覽器顯示

不太確定你的最終目標是什麼,但如果我正確的解釋,我認爲像this updated fiddle顯示的是你要什麼,使用這種(要求設置明確的width一起工作):

CSS

label, select { 
    display: inline-block; 
    width: 100px; 
} 

label { 
    position: relative; 
    top: -1.2em; 
    left: 5px; 
} 

select { 
    margin: 1.5em 0 0 -100px; 
} 

多行更新

設置固定寬度的包裝元素like this fiddle以使行包裝。

0

查看本頁頂部的菜單(問題,標籤,用戶,...)它與無序列表放在一起。

<div class="nav mainnavs"> 
    <ul> 
     <li class="youarehere"><a id="nav-questions" href="/questions">Questions</a></li> 
     <li><a id="nav-tags" href="/tags">Tags</a></li> 
     <li><a id="nav-users" href="/users">Users</a></li> 
     <li><a id="nav-badges" href="/badges">Badges</a></li> 
     <li><a id="nav-unanswered" href="/unanswered">Unanswered</a></li> 
    </ul> 
</div> 

您可以將每個標籤/下拉對粘貼到列表項中。

<li> 
    <label for="select1">Label1</label> 
    <br /> 
    <select id="select1">...<select> 
</li> 
+0

我不知道爲什麼這是downvoted,列表是一種有效的方式來組合'標籤'和'選擇'(雖然我不會使用br)。 – Gareth

+0

根本不起作用。我已經把display:inline屬性放在列表上,正如我通常那樣;它仍然將它作爲一個專欄來設計。如果我刪除
,那麼它只是一行標籤和列表.... – sarsnake

+0

我在小提琴中試過:http://jsfiddle.net/gUKwF/不行。 – sarsnake

3

將每個「列表/標籤」組合包裝在塊元素中。然後,您可以浮動該元素具有在同一行上多個項目:

<div class='lst'> 
    <label for="select1">Label1</label> 
    <select id="select1">...<select> 
</div> 

<div class='lst'> 
    <label for="select2">Label2</label> 
    <select id="select1">...<select> 
</div> 

<div class='lst'> 
    <label for="select3">Label3</label> 
    <select id="select3">...<select> 
</div>​ 

div.lst { 
float: left; 
margin: 0 5px 0 5px; 
} 

div.lst label { 
display: block; 
} 

例小提琴:http://jsfiddle.net/Z5hAm/

+0

我有點想避免divItis。那麼不妨將它粘在一張桌子上。 – sarsnake

1

你可能得組labelselect在另一個標籤像pdivfieldset,然後製作該元素display:inline-blockfloat:left

0

我最終把它們粘在一張桌子上,因爲我有幾個這樣的行,他們都必須排隊。

+0

這是不幸的,考慮到我的解決方案可以完美地工作,沒有所有額外的標記,並保持對齊多行(見我的[更新的小提琴](http://jsfiddle.net/L5sTY/9/))。當然,我不知道'寬度'要求是否是您的問題。 – ScottS

+0

結束了嘗試你的,謝謝一堆!我修改了寬度;否則保留爲。 – sarsnake

+0

很高興爲你效勞。當我不需要時,我討厭你去看桌子。 – ScottS