Испытание прошел, но код цээсэс вышел громоздкий. Я только начинаю, и не могу “опытным глазом” оценить: есть ли варианты сократить код или это так и надо?
Конечно, есть варианты сократить код. Этим приемом вы уже пользовались в этом фрагменте: <div class="column column-1">Promo 1</div> <div class="column column-2">Promo 2</div>
Класс column у вас в css определяет общие свойства для двух колонок promo, а column-1 и column-2 - только свойства, которыми они отличаются.
Такой же прием можно использовать для колонок left, main и right.
Посмотрите другие темы на форуме, еще есть другой вариант для центрирования блоков в сетке.
Блок menu не центрировали, поэтому такая некрасота осталась:
.header .menu {
background-color: #3498DB;
padding-top: 5px; padding-left: 55px;
min-height: 30px;
margin-bottom: 10px; margin-left: -50px; margin-right: -50px;
}
А в целом уже гораздо лучше.
А как же наследуемое свойство layout-positioner, которое центрирует все элементы? И оно же задает ширину, которую блоку menu как-то пробить надо…
Был еще такой вариант, но он тоже топорный.
Теоретически, можно еще один уровень вложенности задать для хедера. Тогда layout-positioner надо будет прописывать не для контейнера, а для каждого блока в отдельности. Но увеличивается html-код. Что оптимальнее в таком случае?
Не знаю как у вас, но у меня вопросов много: ошибки в коде видны не вооруженным глазом.
Во-первых код срабатывает на 90%, что уже говорит о многом.
Во-вторых, вы посмотрите на то, как оформляете футер и меню. Чтобы padding в футере работал верно - вы добавили дополнительный div после центровщика. В меню в хеадере вы же это проигнорировали. И вообще, имхо, нужночаще использовать box-sizing, чтобы не было проблем - код упрощается.
Так же по всему коду вы используете padding-top и padding-left. А если текста в блоках будет много, то снизу и справа у вас отсупов не будет от границ блока, что не есть хорошо. Так же некоторые места кода у вас повторяются несколько раз, хотя все можно уместить в одну строчку: я про блок контекста и margin-right и width.
Но, повторюсь, все это лишь мое мнение, а я такой же новичок как и вы.
Спасибо за мнение! Потом займусь повторением темы и прогоню задание еще разок.
По поводу центровщика: сходу не смог решить задачку расширения блока меню на всю ширину родителя. Если применить ко всему хеадеру, то меню принимает те же рамки, заданные центровщиком (был дурацкий вариант с отрицательными маргинами). Поэтому, если заметили, центровщик в меню вложен, а для остальных элементов это родитель. Этот код у меня на 100% сработал… но проверю.
Про box-sizing - это свойство еще подробно не разбиралось, поэтому я его и не применял. Иду от и до, так сказать)