Макеты div в css, как ячейки таблицы в таблицах HTML
Еще раз сегодня я наткнулся на проблему, которую я всегда встречаю с макетами css. Я хотел бы иметь 5 дивизий в горизонтальном ряду. Скажем, например, их ширина должна быть:
- 1: 60 px,
- 2: 30%,
- 3: 40px,
- 4: *
- 5: 100px
где * означает "заполнить оставшееся пространство". В прежние времена это было то, как мы планировали таблицы ширины. В настоящее время из-за причин доступности html-таблицы запрещены для макетов. Это просто пример. Я ищу общее решение.
Кто-нибудь знает генератор, легкое решение для javascript (может быть плагин jQuery), учебник, книгу или волшебник, которые могут помочь мне решить эту проблему сейчас и навсегда?
Несмотря на то, что решение на основе javascript возможно, предпочтительным будет решение не script.
Ответы
Ответ 1
Вы можете использовать display:table
, чтобы создать этот эффект, я быстро сделал fiddle
Это делает индивидуальный div
действительным, как ячейки таблицы, а section
- это таблица, я использовал раздел, чтобы иметь более чистый код, а также div
.
Вы заметите, что ячейки таблицы становятся меньше, чем вы указали, если размер окна слишком мал, это из-за поведения по умолчанию в таблице. Для борьбы с этим просто добавьте минимальную ширину (с тем же значением, что и ширина)
Ответ 2
http://jsfiddle.net/lnplnp/bFrmD/
#div1 {
width: 60px;
}
#div2 {
width: 30%;
}
#div3 {
width: 40px;
}
#div4 {
}
#div5 {
width: 100px;
}
.layout {
display:table;
}
.cell {
display: table-cell;
}
<html>
<head>
<title>DIV LIKE TABLE</title>
</head>
<body>
<div class="layout">
<div id="div1" class="cell">1</div>
<div id="div2" class="cell">2</div>
<div id="div3" class="cell">3</div>
<div id="div4" class="cell">4</div>
<div id="div5" class="cell">5</div>
</div>
</body>
</html>
Перейди палец! С недавними броузерами вы можете сделать это сейчас!