Как еще можно разделить страницу на блоки используя проценты?
Привет
Я недавно начал свое знакомство с CSS и сделал вот такую штуку codepen.io/SuperManEver/pen/Mwoadb?editors=110 Вопрос: правильно ли я это сделал? Есть ли еще как-ть другие способы это сделать?
Не стоит использовать position: fixed без прямой необходимости.
Как уже написали выше не лишним будет указать min-width/min-height.
Два левых блока имеют одинаковую ширину, верно будет их обернуть в общий div. В дальнейшем это упростит расширение шаблона, если, например, под меню понадобится ещё один блок.
Не стоит сильно увлекаться id. Они имеют свои плюсы в javascript'е и могут использоваться как якори, но в целом, даже для одиночных блоков, лучше использовать class.
Со стилизацией меню проще работать, если добавить ссылкам display: block и все стили, включая :hover/:active, использовать на них.
Ну и по мелочам: есть лишние свойства, такие как display: block у элементов с position: absolute/fixed и width: 100% у блочных элементов. Эти вещи по-умолчанию устанавливаются браузером.
У вас всё верно, просто #main перекрывает часть .menu-wrapper и кажется, будто min-width не работает, хотя ширина фиксируется и частично залезает под #main.
nluparev: Нужно иначе подходить к задаче: либо задавать минимальную ширину общему контейнеру, чтобы блоки внутри не конфликтовали, либо делать один из блоков с постоянным размером а у другого постоянный отступ. То, что хотите вы, подразумевает, что #main изменит своё поведение как только .menu-wrapper достигнет определённого размера. Такие вещи отлавливаются только javascript'ом.
nluparev: Можно через них, но тогда min-width не нужен. Просто меняется ширина .menu-wrapper с процентов на пиксели и ставится фиксированный отступ у #main.
Слишком простая задача, чтобы по ней писали туториалы. На window вешается обработчик события resize и внутри него в общих чертах:
if ($(".menu-wrapper").width() > 400) /* ... */;
else /* ... */;