2013-11-29 3 views
1

Пожалуйста, взгляните на это fiddle. Как вы можете видеть, у меня есть float: left на элементе label, я ожидал, что Country4 должен начинаться с новой строки в соответствии с максимальной высотой вышеупомянутых элементов, но не смог добиться следующего результата без корректировки margin-top и margin-left (то есть не гибкий способ сделать это, как может быть country5, coutry6 позже):Неисправность в плавающих элементах

Примечание: не уверен, что там будет всегда три метки в строке может быть 2 или 3 или 4. So clear:both после в этом случае не будет работать определенное количество элементов.

enter image description here

Вот простой код:

<html> 
    <head> 
     <style> 
      label { 
       float: left; 
      } 
      dt { 
       font-weight: bold; 
       color: green; 
      } 
     </style> 
    </head> 
    <body> 
     <form style="width: 460px"> 
      <fieldset> 
       <label> 
        <dt>Country1</dt> 
         <dd>United States</dd> 
         <dd>United States</dd> 
       </label> 
       <label> 
        <dt>Country2</dt> 
         <dd>United States</dd> 
         <dd>United States</dd> 
         <dd>United States</dd> 
         <dd>United States</dd> 
         <dd>United States</dd> 
       </label> 
       <label> 
        <dt>Country3</dt> 
         <dd>United States</dd> 
       </label> 
       <label> 
        <dt>Country4</dt> 
         <dd>United States</dd> 
         <dd>United States</dd> 
         <dd>United States</dd> 
         <dd>United States</dd> 
         <dd>United States</dd> 
       </label> 
      </fieldset> 
     </form> 
    </body> 
</html> 
+0

Пожалуйста, включите правильный код, чтобы воспроизвести проблему ** в самом вопросе. ** –

+0

вы хотите использовать JQuery для этого ?? – Zword

+0

@Zword Я надеялся получить некоторое простое решение css. Если нет способа, то jquery в порядке :( –

ответ

4

Вместо того, чтобы float вы, возможно, хотите использовать display:inline-block:

label { 
    width:130px; 
    vertical-align:top; 
    display:inline-block; 
} 

И демонстрационная http://jsfiddle.net/dbrH9/6/

+0

Perfect Sir, Thanks :) –

+0

Я нашел решение с помощью JQuery . Но вы сделали это с помощью простого CSS. +1 – Zword

+0

рад помочь вам – DaniP

0

к метке вы хотите поместить в новую строку, применить это:

<label style="clear:both"> 
+0

Не обязательно country4 является последним элементом. Может быть country5 country6 позже. –

+0

Он будет работать ... Только поместите это в каждый первый элемент строки –

+0

Если я применил ваш метод на всех 'label', он будет складывать их по вертикали, так как на этикетке есть' float: left'. –

Смежные вопросы