2014-07-14 49 views
1

我有一個簡單的案例複選框標籤對齊,我似乎無法得到它的工作。 標籤應該換行,並且所有行應該從第一行開始的位置開始。 與此類似:爲什麼這兩個內聯塊不對齊?

0 Xxxx 
    xxxx 
    xxxx 

,而不是這樣的:

0 Xxxx 
xxxxxx 
xxxxxx 

的HTML是:

<div class="limit"> 
    <input id="dd" type="checkbox" /> 
    <label for="dd" > Label text dh dfjgh dfhd;fhdh djh gfjh sfghj gpfhj sfpgdhj spfghj pfgohj spdfgoh spdfgih spdfgohi</label> 
</div> 

CSS:

label { 
    display: inline-block; 
    margin-left: 1.5em; 
    border: 1px dashed gray; 
} 

.limit { 
    border: 1px solid black; 
    vertical-align: top; 
    max-width: 300px; 
} 

input { 
    display: inline-block; 
} 

和活生生的例子就在這裏:http://jsbin.com/virohima/1/edit?html,css,output

我現在得到這個權利:

0 
    Xxxxx 
    xxxxx 
    xxxxx 

我在做什麼錯?

回答

1

添加float:leftinput,使labeldisplay:block

label { 
    display: block; 
    margin-left: 1.5em; 
    border: 1px dashed gray; 
} 

.limit { 
    border: 1px solid black; 
    vertical-align: top; 
    max-width: 300px; 
} 

input { 
    display: inline-block; 
    float:left 
} 

DEMO

+0

工程。不漂亮,但它的作品。 –

+0

我喜歡這個答案,因爲它不會讓我在內聯塊中放置一個'max-width'。另外,I @ @Suresh是因爲他指出'inline-block'將佔用100%的寬度,這是我設計問題的根本原因。 (這將使這個答案完成,國際海事組織) – Ben

0

試試這個:

label { 
    display: inline; 
    margin-left: 1.5em; 
    border: 1px dashed gray; 

} 

.limit { 
    border: 1px solid black; 

    max-width: 300px; 
} 

input { 
    float: left; 
} 
1

內聯元素指定寬度,否則它會採取100%。

label { 
display: inline-block; 
border: 1px dashed gray; 
width:272px; 
} 

.limit { 
border: 1px solid black; 
vertical-align: top; 
max-width: 300px; 
} 

input { 
display: inline-block; 
width:20px; 
margin:0px; 
vertical-align:top; 
} 

DEMO

+0

謝謝。我選擇了另一個答案,但你的評論幫助我理解了我設計中的問題(我沒有選擇你的答案,因爲我覺得更好的解決方案不包括'max-width',但我確實+1了你的答案) – Ben

+0

沒問題本。我很高興,因爲它可以幫助你。 –