#html #css
#HTML #css
Вопрос:
У меня есть 5 наборов полей, которые я хочу разместить в определенном дизайне. Все они имеют одинаковую ширину, но могут иметь разную высоту.
┌-[Fieldset 1]----┐
| |
| |
└-----------------┘
┌-[Fieldset 2]----┐ ┌-[Fieldset 3]----┐
| | | |
| | | |
| | | |
└-----------------┘ └-----------------┘
┌-[Fieldset 4]----┐ ┌-[Fieldset 5]----┐
| | | |
| | | |
| | | |
| | | |
└-----------------┘ └-----------------┘
в моем исходном коде HTML я хочу сделать исходный код «чистым», который удаляет все ненужные теги форматирования, которые включают «br» и «p». Контейнер наборов полей устанавливается на всю ширину окна.
Единственный способ, которым я могу придать стиль этой структуре в настоящее время, — это разместить элементы «br» после наборов полей, которые я хочу переместить на следующую строку:
<fieldset style='width:200px;'><legend>Fieldset1</legend></fieldset><br/>
<fieldset style='width:200px;'><legend>Fieldset2</legend></fieldset>
<fieldset style='width:200px;'><legend>Fieldset3</legend></fieldset><br/>
<fieldset style='width:200px;'><legend>Fieldset4</legend></fieldset>
<fieldset style='width:200px;'><legend>Fieldset5</legend></fieldset>
Контейнер, в котором хранятся наборы полей, фактически занимает всю длину экрана (т.е.: 100%). Если я уберу букву «б», наборы полей выстроятся рядом друг с другом случайным образом.
Я пробовал различные способы выровнять и настроить наборы полей в том порядке, в котором я хочу, используя CSS, включая использование float, clear, padding-left, но безрезультатно.
Существует ли надлежащая методология с использованием CSS, которую можно применить для получения желаемого эффекта, как показано выше?
спасибо.
Ответ №1:
<style type="text/css">
fieldset {
width: 200px;
float: left;
}
.clear {
clear: both;
}
</style>
<fieldset><legend>Fieldset1</legend></fieldset>
<fieldset class="clear"><legend>Fieldset2</legend></fieldset>
<fieldset><legend>Fieldset3</legend></fieldset>
<fieldset class="clear"><legend>Fieldset4</legend></fieldset>
<fieldset><legend>Fieldset5</legend></fieldset>
Комментарии:
1. Упс, только что заметил, что забыл подключить класс clear вместо встроенных стилей. 🙂
2. попробовал применить ваш стиль к моей странице, и это не сработало. Он выровнял наборы полей от 1 до 5 по верхней части экрана. Я вырезал и вставил ваш код на чистую страницу, и я получил тот же эффект с макетом, который я получил. в настоящее время я использую IE7.
3. Использовали ли вы версию после обновления? У меня там была опечатка.
Ответ №2:
использовать
.fld{float:left;}
.fld1{float:left;}
class .fld для 2-го и 3-го наборов полей.
класс .fld1 для набора полей 4 и 5.
Вот рабочий пример:http://jsfiddle.net/anish/xaZDC /
Ответ №3:
Если вы хотите, чтобы все, кроме первого набора полей, передавались, используйте Anishs answe, если вы всегда хотите выкладывать 1-2-2-2 и т.д., посмотрите эту скрипку
РЕДАКТИРОВАТЬ Только что заметил, что это почти идентично ответу dtbarne. Примите его и используйте мой, чтобы увидеть это в действии