Не получается зафлоатить Right вправо ! Делал по аналогии с 26 заданием, но не понимаю в чем ошибка. Заранее спасибо ! Вот мой код и ссылка на задание: https://htmlacademy.ru/courses/65/run/27
HTML:
Испытание: строим сетку
CSS
html,
body {
margin: 0;
padding: 0;
}
body {
width: 450px;
height: 335px;
font-size: 10px;
font-family: “Arial”, sans-serif;
color: white;
}
.clearfix::after {
content: “”;
display: table;
clear: both;
}
.layout-positioner {
width: 350px;
margin: 0 auto;
}
.layout-positioner::after {
content: “”;
display: table;
clear: both;
}
.header,
.wrapper-promo,
.footer {
background-color: #34495e;
}
.header .layout-column,
.promo-1,
.promo-2 {
background-color: #c0392b;
}
.menu,
.features .layout-column {
background-color: #3498db;
}
.header {
min-height: 55px;
}
.header .layout-column {
width: 340px;
min-height: 25px;
margin-top: 10px;
padding: 5px;
}
.menu {
min-height: 30px;
padding-top: 5px;
}
.wrapper-promo {
min-height: 80px;
}
.wrapper-promo .layout-column {
min-height: 50px;
margin-top: 10px;
}
.promo-1 {
float: left;
width: 160px;
padding: 5px;
}
.promo-2 {
float: right;
width: 160px;
padding: 5px;
}
.features {
margin: 10px;
}
.features .layout-column {
min-height: 100px;
width: 70px;
margin-right: 10px;
padding: 5px;
float: left;
}
.features .layout-column:last-child {
margin-right: 0;
}
.main {
width: 100px;
}
.footer {
min-height: 35px;
}
/*
Используемые цвета:
#34495e – мокрый асфальт
#c0392b – красный
#3498db – синий
*/
Прошу прощения за косячный код !
<!DOCTYPE html>
<html lang="ru">
<head>
<title>Испытание: строим сетку</title>
<meta charset="utf-8">
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="header">
<div class="layout-positioner">
<div class="layout-column">Header</div>
</div>
</div>
<div class="menu">
<div class="layout-positioner">Menu</div>
</div>
<div class="wrapper-promo">
<div class="layout-positioner">
<div class="promo-1 layout-column">Promo 1</div>
<div class="promo-2 layout-column">Promo 2</div>
</div>
</div>
<div class="features">
<div class="layout-positioner">
<div class="layout-column">
<div class="left">Left</div>
</div>
<div class="layout-column">
<div class="main">Main</div>
</div>
<div class="layout-column">
<div class="right">Right</div>
</div>
</div>
</div>
<div class="footer">
<div class="layout-positioner">Footer</div>
</div>
</body>
</html>
Примените float: right; для .features .layout-column:last-child
И ширину средней колонки нужно будет изменить – они у Вас все три одинаковой ширины.
.main {
width: 100px;
}
Это правило ширину колонки не изменяет: Вы изменяете ширину .main внутри блока .layout-column, но поскольку у .layout-column своя фиксированная ширина – .main просто выпадает из родителя не изменяя его ширины.
Ширина левой, правой колонок -- 60px, средней -- 180px...
В Вашем случае примерно так:
.features {
margin: 10px;
}
.features .layout-column {
min-height: 100px;
width: 60px;
margin-right: 10px;
padding: 5px;
float: left;
}
.features .layout-column:nth-child(2) {
width: 180px;
}
.features .layout-column:last-child {
margin-right: 0;
float: right;
}
Вообще код нескольку путанный – требует доработки… но мы же учимся…
Зачем у Вас .clearfix::after?
Вроде как, рекомендовано оставить у вас в курсах =)
У Вас уже есть это правило – и оно применяется.
.layout-positioner::after {
content: "";
display: table;
clear: both;
}
А .clearfix::after висит мёртвым грузом…
Спасибо ! А Вы можете дать пример кода, который правильный ? Я искал на форуме, но так и не нашёл…Везде код требующий доработок. Так и непонятно как должен выглядеть оптимальный код для этого задания .