960 grid system-вложенные сетки имеют проблему компоновки
Я только начал разрабатывать сайт хобби для себя, и пытаюсь использовать 960 CSS grid system для размещения моих html-элементов на экране.
Я получил основную идею и только что реализовал скелетный сайт здесь, на моем сервере
Пока у меня есть несколько вопросов:
<div class="container_12">
<div class="grid_12">
<div id='top_bar' class='grid_insider'><!-- start of #top_bar -->
<ul id='top_menu' class='grid_5'><!-- start of #top_menu -->
<li>Home</li>
<li>Fake1</li>
<li>Fake2</li>
<li>Fake3</li>
</ul><!-- end of #top_menu -->
<ul id='user_panel' class='grid_2 prefix_4'><!-- start of #user_panel -->
<li>log in</li>
<li>faq</li>
</ul><!-- end of #user_panel -->
</div><!-- end of #top_bar -->
</div>
<div class="clear"></div>
<div id='title_bar' class="grid_12">
<h1 id="logo" align='center'>LOGO, TITLE and SLOGAN all go here!</h1>
</div><!-- end .grid_1 -->
<div class="clear"></div>
Я использую шаблон на основе сетки 12, поэтому общее число " сеток "на каждой" строке " должно быть 12. Однако я могу сделать только два элемента на одной " строке" при этом общее количество сеток складывается до 11, а не 12. Если я изменю класс #user_panel " на "grid_3 prefix4", то это фактически приведет этот элемент к следующей строке, которая все ломает.
Другое дело, что, хотя элементы первого уровня, такие как top_bar_ и title_bar, находятся в правильном положении (вы можете подтвердить это с помощью удобного плагина Firefox gridfox), с точной шириной 940px вложенные сетки не находятся в положениях, которые они должны быть (немного в стороне от проектного положения).
Я новичок в этой системе css grid, есть ли лучший способ управлять элементами гнезда? Я должен сказать, что некоторые из примеров веб-сайтов на 960.gs довольно удивительно видеть :)
Заранее спасибо за любое предложение!
Обновленная Информация
Хорошо, основываясь на ответе ниже, я считаю, что все еще можно использовать цветные границы при отладке вложенных сеток, есть способ adhoc "обмануть":
.grid_insider
{
border : 1px solid red;
margin : -1px; /* this will stop the element from 'expanding' its space */
}
2 ответов:
Не уверен, что вы не поняли, но фреймворк предоставляет метод для вложенных элементов.
Это переопределяет поля, которые они дают всем элементам сетки, таким образом позволяя элементам на стороне упираться в стороны своих контейнеров./* `Grid >> Children (Alpha ~ First, Omega ~ Last) ------------------------------------------------*/ .alpha { margin-left: 0; } .omega { margin-right: 0; }Что вам нужно сделать, так это дать левой строке меню класс
alpha, а правой-классomega. Затем вам придется удалить все границы, которые вы добавили к этим двум элементам и их контейнеру. Это потому что CSSfloatS очень точны и сломаются, если вы сделаете элементы больше, чем определенная структура.Если вам нужно добавить границы, вам придется добавить некоторые дополнительные стили, которые переопределяют их и дают им ширину на два px (по одному для каждой стороны границы) меньше, чем это определено в фреймворке.
И очень поздний ответ....
Используйте любой контур для ваших границ
`outline: 1px solid red;`Или использовать размер коробки
.gridInsider { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
Comments