html,
body {
margin: 0;
padding: 0;
}
body {
width: 450px;
height: 335px;
font-family: "Arial", sans-serif;
font-size: 10px;
color: white;
}
.layout-positioner {
width:350px;
margin:0px auto;
}
.layout-positioner::after {
content:"";
display:table;
clear:both;
}
.container {
background:#34495e;
padding:10px 0px;
}
.header {
background: #c0392b;
padding:5px;
min-height:25px;
}
.menu-container {
background: #3498DB;
}
.menu {
background: #3498DB;
width: 340px;
min-height: 25px;
padding: 5px;
margin: 10px auto 0px;
}
.promo {
background:#c0392b;
width:160px;
min-height:50px;
padding:5px;
margin-top:10px;
}
.promo1 {
float:left;
margin-right:10x;
}
.promo2 {
float:right;
}
.column {
background:#3498DB;
float:left;
min-height:100px;
padding:5px;
margin:10px 0px;
}
.column-left {
width:60px;
margin-right:10px;
}
.column-right {
width:60px;
float:right;
margin-left:10px;
}
.column-main {
width:180px
}
.footer {
background:#34495e;
padding:5px;
min-height:25px;
width:340px;
margin:0px auto;
}
.footer-container {
background:#34495e;
}
Вставьте html-код правильно с помощью кнопки </>
в редакторе сообщений.
<!DOCTYPE html>
<html lang="ru">
<head>
<title>Испытание: строим сетку</title>
<meta charset="utf-8">
</head>
<body>
<div class="container">
<div class="layout-positioner">
<div class="header">Header</div>
</div>
<div class="menu-container">
<div class="menu">Menu</div>
</div>
<div class="layout-positioner">
<div class="promo1 promo">Promo 1</div>
<div class="promo2 promo">Promo 2</div>
</div>
</div>
<div class="layout-positioner">
<div class="column-left column">Left</div>
<div class="column-main column">Main</div>
<div class="column-right column">Right</div>
</div>
<div class="footer-container">
<div class="footer">Footer</div>
</div>
</body>
</html>
Хорошо сделали. Явных ошибок не вижу. Можете еще поработать над сокращением кода. Например, в блоках promo можно в общие стили вынести и свойство float.
спасибо, хотел спросить за блоки “menu” и “footer”, возможно там еще как нибудь сделать отступ от краев без использования padding и container?
layout-positioner использовать можно.
<!DOCTYPE html>
<html lang="ru">
<head>
<title>Испытание: строим сетку</title>
<meta charset="utf-8">
</head>
<body>
<div class="header-container">
<div class="layout-positioner">
<div class="Header"> Header </div>
</div>
<div class="Menu"> Menu </div>
<div class="layout-positioner">
<div class="Promo"> Promo 1 </div>
<div class="Promo"> Promo 2 </div>
</div>
</div>
<div class="body-container">
<div class="layout-positioner">
<div class="body-block"> Left </div>
<div class="body-block Main"> Main </div>
<div class="body-block"> Right </div>
</div>
</div>
<div class="Footer"> Footer </div>
</body>
html,
body {
margin: 0;
padding: 0;
}
body {
width: 450px;
height: 335px;
font-family: "Arial", sans-serif;
font-size: 10px;
color: white;
}
.layout-positioner {
width: 350px;
margin: 0 auto;
}
.layout-positioner::after {
content: "";
display: table;
clear: both;
}
.header-container {
width: 100%;
background: #34495e;
padding: 10px 0;
}
.Header {
min-height: 25px;
background: #c0392b;
padding: 5px;
}
.Menu {
width: 340px;
background: #3498DB;
min-height: 25px;
padding: 5px 55px;;
margin: 10px auto;
}
.Promo {
float: left;
width: 160px;
background: #c0392b;
min-height: 50px;
padding: 5px;
margin-right: 10px;
}
.Promo:last-child {
margin-right: 0;
}
.body-container {
width: 100%;
background: #fff;
padding: 10px 0;
}
.body-block {
float: left;
background: #3498DB;
width: 60px;
min-height: 100px;
padding: 5px;
margin-right: 10px;
}
.body-block:last-child {
margin-right: 0;
}
.Main {
width: 180px;
}
.Footer {
width: 340px;
background: #34495e;
min-height: 25px;
padding: 5px 55px;
}
Оцените пожалуйста, если не сложно. Знаю одну ошибку - padding: 5px 55px;.
55px не надо писать, надо как Вы написали использовать layout-positioner, но если я оборачиваю Menu и Footer в него, они центрируются как и остальные блоки, а надо чтоб только содержимое? правильно понимаю? разъясните пожалуйста чуть подробней как это сделать
Вы сами сказали, что центрировать надо не сам блок, а его содержимое.
Вот так будет:
<div class="Menu">
<div class="layout-positioner">Menu</div>
</div>
А в css не ограничивайте ширину у .Menu и уберите тот некрасивый отступ:
.Menu {
/width: 340px;/
background: #3498DB;
min-height: 25px;
padding: 5px;
margin: 10px auto;
}
Правда придется добавить еще одно правило, для отступа слева:
.Menu .layout-positioner {
padding-left: 10px;
}
Footer попробуйте разобрать сами.
Теперь понятно. Большое спасибо за помощь!
На счет вот этого момента
можно background по краям на :before и :after прицепить, что бы они при наполнении контекстом основного блока menu, тоже выравнивались по высоте блока menu.
Оцените пожалуйста еще один код
Код думаю слишком “плохим” получился
Хоть с первого раза.
HMTL
<!DOCTYPE html>
<html lang="ru">
<head>
<title>Испытание: строим сетку</title>
<meta charset="utf-8">
</head>
<body>
<header>
<div class="layout-positioner">
<div class="header">Header</div>
<div class="menu">Menu</div>
<div class="block2">
<div class="promo1">Promo 1</div>
<div class="promo2">Promo 2</div>
</div>
</div>
</header>
<div class="layout-positioner">
<div class="block2">
<div class="left">Left</div>
<div class="main">Main</div>
<div class="right">Right</div>
</div>
</div>
<div class="layout-positioner">
<footer>Footer</footer>
*,*::before, *::after {
box-sizing: inherit;
}
html {
box-sizing: border-box;
}
html,
body {
margin: 0;
padding: 0;
}
body {
width: 450px;
height: 335px;
font-family: "Arial", sans-serif;
font-size: 10px;
color: white;
}
header {
background-color: #34495e;
padding-top: 10px;
padding-bottom: 10px;
}
footer {
background-color: #34495e;
min-height: 35px;
padding: 5px 55px 0;
}
.block2 {
width: 350px;
margin: 0 auto;
}
.layout-positioner:after {
content: "";
display: table;
clear: both;
}
.header {
width: 350px;
padding-top: 5px;
margin: 0 auto;
padding-left: 5px;
background: #c0392b;
min-height: 35px;
}
.menu {
width: 100%;
margin-top: 10px;
padding-left: 55px;
padding-top: 5px;
margin-bottom: 10px;
min-height: 35px;
background: #3498DB;
}
.promo1 {
padding: 5px 0 0 5px;
float: left;
margin-right: 10px;
width: 170px;
min-height: 60px;
background: #c0392b;
}
.promo2 {
padding: 5px 0 0 5px;
float: left;
width: 170px;
min-height: 60px;
background: #c0392b;
}
.left {
padding: 5px 0 0 5px;
margin-top: 10px;
float: left;
background: #3498DB;
width: 70px;
min-height: 110px;
}
.main {
padding: 5px 0 0 5px;
margin: 10px;
float: left;
background: #3498DB;
width: 190px;
min-height: 110px;
}
.right {
padding: 5px 0 0 5px;
margin-top: 10px;
float: left;
background: #3498DB;
width: 70px;
min-height: 110px;
}
Конечный код. Тоже 100%
<!DOCTYPE html>
<html lang="ru">
<head>
<title>Испытание: строим сетку</title>
<meta charset="utf-8">
</head>
<body>
<header>
<div class="layout-positioner">
<div class="header">Header</div>
</div>
<div class="menu">Menu</div>
<div class="layout-positioner">
<div class="promo1">Promo 1</div>
<div class="promo2">Promo 2</div>
</div>
</header>
<div class="layout-positioner">
<div class="left">Left</div>
<div class="main">Main</div>
<div class="right">Right</div>
</div>
<footer>Footer</footer>
</body>
</html>
*,*::before, *::after {
box-sizing: inherit;
}
html {
box-sizing: border-box;
}
html,
body {
margin: 0;
padding: 0;
}
body {
width: 450px;
height: 335px;
font-family: "Arial", sans-serif;
font-size: 10px;
color: white;
}
header {
background-color: #34495e;
padding-top: 10px;
padding-bottom: 10px;
}
footer {
background-color: #34495e;
min-height: 35px;
padding: 5px 55px 0;
}
.layout-positioner {
width: 350px;
margin: 0 auto;
}
.layout-positioner:after {
content: "";
display: table;
clear: both;
}
.header {
width: 350px;
padding-top: 5px;
margin: 0 auto;
padding-left: 5px;
background: #c0392b;
min-height: 35px;
}
.menu {
width: 100%;
margin-top: 10px;
margin-bottom: 10px;
padding-left: 55px;
padding-top: 5px;
min-height: 35px;
background: #3498DB;
}
.promo1 {
float: left;
padding: 5px 0 0 5px;
margin-right: 10px;
width: 170px;
min-height: 60px;
background: #c0392b;
}
.promo2 {
float: left;
padding: 5px 0 0 5px;
width: 170px;
min-height: 60px;
background: #c0392b;
}
.left {
float: left;
padding: 5px 0 0 5px;
margin-top: 10px;
background: #3498DB;
width: 70px;
min-height: 110px;
}
.main {
float: left;
padding: 5px 0 0 5px;
margin: 10px;
background: #3498DB;
width: 190px;
min-height: 110px;
}
.right {
float: right;
padding: 5px 0 0 5px;
margin-top: 10px;
background: #3498DB;
width: 70px;
min-height: 110px;
}
Повторяетесь, а ведь у вас есть центровщик .layout-positioner.
Меню и футер не центрованы.