Встроенные радиокнопки с метками - PullRequest
0 голосов
/ 17 февраля 2011

У меня есть следующая форма:

        <form action="post.php" method="POST">
            <fieldset>
                 <div class="ratingClass">
                      <input type="radio" class="radio" name="rate" value="1" id="1"/>
                      <label for="1">1</label>
                      <input type="radio" class="radio" name="rate" value="2" id="2"/>
                      <label for="2">2</label>
                      <input type="radio" class="radio" name="rate" value="3" id="3"/>
                      <label for="3">3</label> 
                      <input type="radio" class="radio" name="rate" value="4" id="4"/>
                      <label for="4">4</label>
                      <input type="radio" class="radio" name="rate" value="5" id="5"/>
                      <label for="5">5</label>                                                                
                 </div>
            </fieldset>
            <input type="submit" value="Rate">
        </form>

Стиль с помощью следующего CSS:

fieldset { 
 overflow:hidden; 
}
.ratingClass { 
 float:left; 
 clear:none;
}
label { 
 float:left; 
 clear:none; 
 display:block; 
 padding: 2px 1em 0 0; 
}
input[type=radio], input.radio { 
 float:left;
 clear:none; 
 margin: 2px 0 0 2px; 
}

Это все внутри другого div, который имеет стиль text-align: center;.

Я понимаю, что поведение происходит из-за поплавков, но если я уберу их, то переключатели больше не будут отображаться как встроенные.

Как их расположить по центру?

Ответы [ 3 ]

3 голосов
/ 17 февраля 2011

Вам не нужно ни плавать, ни делать метки, блокирующие элементы.Замена вашего CSS этим приводит к центрированию всего:

fieldset {
  overflow: hidden;
}
label {
  padding: 2px 1em 0 0;
}
input[type=radio], input.radio {
  margin: 2px 0 0 2px;
}

<div class="ratingClass"> также является лишним и может быть удалено.

0 голосов
/ 17 февраля 2011

Если вы можете справиться с фиксированной шириной для ratingClass div, вы можете сделать это следующим образом ...

.ratingClass { 
    width:300px; /* insert desired width here */
    margin:auto;
}
0 голосов
/ 17 февраля 2011

Попробуйте создать контейнер .ratingClass либо:

.ratingClass { 
 float:left; 
 clear:none;
 width: 100%;
 text-align: center; 
}

или

.ratingClass { 
 float:none;
 text-align: center; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...