.column {
margin-bottom: 10px;
padding: 10px;
background: rgba(0, 255, 255, 0.2);
border: 2px solid white;
display: inline-block;
vertical-align: top;
box-sizing: border-box;
width: 100px;
margin-right: 10px;
}
.table {
display: table;
border-collapse: collapse;
}
.row {
display: table-row;
}
.cell {
display: table-cell;
padding: 5px 10px;
background: rgba(0, 255, 255, 0.2);
border: 2px solid white;
box-sizing: border-box;
width: 118px;
}
.col-3 {
display: none
}
Первое, что мы видим, это обычные <div>
контейнеры, которые нужно оформить и сделать, как показано в образце.
В первой части задания нам нужно блочные элементы сделать строчно-блочными, чего мы и добьемся, добавив display: inline-block;
элементам с классом column.
Блоки встают в одну линию и далее мы просто выравниваем их расположение, используя vertical-align: top;
и задаем ширину в 100px, учитывая все паддинги и бордеры box-sizing: border-box;
. Последним штрихом будет добавление внешнего отступа справа margin-right: 10px;
Во второй части задания все еще проще чем кажется на первый взгляд (сначала мне так не показалось ). Нам нужно просто добавить классам table, row, cell. CSS-свойства display: table
, display: table-row
, display: table-cell
соответственно и убрать отображение 3-й колонки, чтобы таблица примерно стала похожа на ту, что показана в образце:
.col-3 {
display: none
}
Осталось убрать двойную толщину у линий в таблице и “подогнать” все по размерам.
Двойная толщина бордера убирается с помощью border-collapse: collapse
, который мню был размещен в .table.
Ну и последнее - “подгоняем” таблицу по размерам.
В образце мы можем посчитать, что ширина блока 6 клеток, а это 120px (1 клетка = 20px)
Но 120px со свойством box-sizing: border-box;
повели себя странно и (как мне показалось) не учли размер бордера в 2px.
Позже я нашла информацию, что все дело в сочетании свойства border-collapse
и box-sizing
.
Один добрый форумчанин написал:
Note that in this model, the width of the table includes half the table border.
Как я поняла имелось ввиду, что наш центральный бордер имел в сумме ширину 4px. После коллапса он стал 2px, но для расчета значений box-sizing: border-box
использовалось значение половины 4px. (Кто уже встречался с подобной ситуацией и владеет большей информацией то поправьте меня, пожалуйста, если я сделала неправильный вывод).
Учитываем эти 2px и получаем:
box-sizing: border-box;
width: 118px;
в описании класса .cell
Вот, собственно и все.