Два блока одинаковой высоты
Будем верстать на HTML5 под резиновый сайт, поэтому вместо div я использовала main, article и aside
<style>
main {
display: table;
table-layout:fixed;
width: 100%;
border-spacing: 20px; /* расстояние между ячейками */
background: #ccc;
}
article, aside {
display: table-cell;
background: rgb(89, 89, 89);
}
aside {
width: 20%; /* может быть и в px */
}
</style>
<main>
<article></article>
<aside></aside>
</main>
Как сделать в таблице отступы только между ячейками
Жаль, border-spacing (там пример) устанавливает отступ не только между ячейками, но и от краёв таблицы до ячеек. Поэтому для того, чтобы увеличить расстояние между колонками, приходится подвинуть дочерние элементы с помощью transform: translate.
<style>
main {
display: table;
table-layout:fixed;
width: 100%;
border-spacing: 20px 0; /* расстояние будет 20*3=60px, может быть и в % */
background: #ccc;
}
main > :first-child {
transform: translateX(-20px);
}
main > :last-child {
transform: translateX(20px);
}
article, aside {
display: table-cell;
background: rgb(89, 89, 89);
}
aside {
width: 20%;
}
</style>
<main>
<article></article>
<aside></aside>
</main>
Три колонки равной высоты, но разной ширины
Стиль CSS будет тот же. А HTML можно варьировать. Можно задать каждой колонке свою ширину и отступ как в процентах, так и в пикселях.
<main> <article></article> <aside></aside> <aside></aside> </main>
<main> <aside></aside> <article></article> <aside></aside> </main>
Хм, сейчас запутаю вас окончательно, нужно было просто взять div. HTML выше подходит для:
Но не для
Так выглядит Главная страница или страница тегов. Тут вместо article нужно использовать section, у которого будет несколько потомков article. То есть статья — это article. Несколько статей объединяются в section.
12 комментариев:
Еще раз спасибо :)
Amazing .. I will bookmark your web site and take the feeds also?
I am satisfied to search out a lot of helpful info right here within the publish, we'd like develop more strategies inn this regard, thanks foor sharing.
. . . . .
Зачем во втором примере ("Как сделать в таблице отступы только между ячейками"):
1) для main прописано border-spacing (вы задаете расстояние между границами ячеек)?
2) использованы псевдо-селекторы :first-child и :last-child?
Я закомментировал эти функции и пробовал прописывать значения transform: translateX(пиксели) поочередно напрямую для article и aside. Эффект получился тот же самый... В чем секрет?
А вот фокуса с :first-child и :last-child так и не понял?..