Замените таблицу HTML на Divs
Хорошо, я пытаюсь купить идею о том, что html-таблицы не должны использоваться, и что divs должны быть. Однако у меня часто есть код, похожий на следующий
<table>
<tr>
<td>First Name:</td>
<td colspan="2"><input id="txtFirstName"/></td>
</tr>
<tr>
<td>Last Name:</td>
<td colspan="2"><input type="text" id="txtLastName"/></td>
</tr>
<tr>
<td>Address:</td>
<td>
<select type="text" id="ddlState">
<option value="NY">NY</option>
<option value="CA">CA</option>
</select>
</td>
<td>
<select type="text" id="ddlCountry">
<option value="NY">USA</option>
<option value="CA">CAN</option>
</select>
</td>
</tr>
</table>
Я хочу, чтобы метки были выровнены, и я хочу, чтобы элементы управления были выровнены. Как мне это сделать без использования таблиц?
Ответы
Ответ 1
Это должно сделать трюк.
<style>
div.block{
overflow:hidden;
}
div.block label{
width:160px;
display:block;
float:left;
text-align:left;
}
div.block .input{
margin-left:4px;
float:left;
}
</style>
<div class="block">
<label>First field</label>
<input class="input" type="text" id="txtFirstName"/>
</div>
<div class="block">
<label>Second field</label>
<input class="input" type="text" id="txtLastName"/>
</div>
Надеюсь, вы поняли концепцию.
Ответ 2
Помните, что хотя таблицы не рекомендуется в качестве основного средства макета страницы, они все еще имеют свое место. Таблицы можно и нужно использовать, когда и когда это необходимо, и пока некоторые из наиболее популярных браузеров (ах, IE, ахм) не станут более стандартными, таблицы иногда являются лучшим путем к решению.
Ответ 3
Я просмотрел все для легкого решения и нашел этот код, который работал у меня. right
div - это третий столбец, который я оставил для удобочитаемости.
Вот HTML:
<div class="container">
<div class="row">
<div class="left">
<p>PHONE & FAX:</p>
</div>
<div class="middle">
<p>+43 99 554 28 53</p>
</div>
<div class="right"> </div>
</div>
<div class="row">
<div class="left">
<p>Cellphone Gert:</p>
</div>
<div class="middle">
<p>+43 99 302 52 32</p>
</div>
<div class="right"> </div>
</div>
<div class="row">
<div class="left">
<p>Cellphone Petra:</p>
</div>
<div class="middle">
<p>+43 99 739 38 84</p>
</div>
<div class="right"> </div>
</div>
</div>
И CSS:
.container {
display: table;
}
.row {
display: table-row;
}
.left, .right, .middle {
display: table-cell;
padding-right: 25px;
}
.left p, .right p, .middle p {
margin: 1px 1px;
}
Ответ 4
Вы можете создавать простые формы с плавающей точкой, не теряя при этом макет жидкости. Например:
<style type="text/css">
.row { clear: left; padding: 6px; }
.row label { float: left; width: 10em; }
.row .field { display: block; margin-left: 10em; }
.row .field input, .row .field select {
width: 100%;
box-sizing: border-box;
-moz-box-sizing: border-box; -webkit-box-sizing: border-box; -khtml-box-sizing: border-box;
}
</style>
<div class="row">
<label for="f-firstname">First name</label>
<span class="field"><input name="firstname" id="f-firstname" value="Bob" /></span>
</div>
<div class="row">
<label for="f-state">State</label>
<span class="field"><select name="state" id="f-state">
<option value="NY">NY</option>
</select></span>
</div>
Это, как правило, ломается, хотя, когда у вас сложные формы, где есть сетка из нескольких столбцов фиксированной и гибкой ширины. В этот момент вы должны решить, придерживаться ли div и отказываться от жидкого макета, чтобы просто отбросить все в фиксированные позиции пикселей или позволить таблицам это делать.
Для меня лично жидкая компоновка является более важной функцией удобства использования, чем точные элементы, используемые для размещения формы, поэтому я обычно иду за таблицами.
Ответ 5
В основном это сводится к использованию страницы с фиксированной шириной и установке ширины для этих меток и элементов управления. Это самый распространенный способ реализации табличных макетов.
Существует множество способов настройки ширины установки. Blueprint.css - очень популярная css-инфраструктура, которая может помочь вам настроить столбцы/ширину.
Ответ 6
для этого есть очень полезный онлайн-инструмент, просто автоматически преобразуйте таблицу в div:
http://www.html-cleaner.com/features/replace-html-table-tags-with-divs/
И видео, которое объясняет это: https://www.youtube.com/watch?v=R1ArAee6wEQ
Я использую это ежедневно. Я надеюсь, что это поможет;)