Box model

How to split page into 4 equal parts?

I want to divide my page into four equal parts, each of same height and width (50-50%). I don’t want to use JavaScript. I want blocks ( s) to be resized automatically (and relatively) if the browser window is resized. I have not worked with CSS for a long time. I’ve no idea how to handle this.

6 Answers 6

html, body < height: 100%; padding: 0; margin: 0; >div < width: 50%; height: 50%; float: left; >#div1 < background: #DDD; >#div2 < background: #AAA; >#div3 < background: #777; >#div4

It does. I just made this in notepad and viewed it using Firefox 15 and it’s fine in that. Rebuild it yourself if you like. I think the body tag is handled differently in jsfiddle and maybe the divs require some content.

@ScottBrown My apologies Scott, I get frustrated when people post answers which seem to have not been tested. I didn’t realise jsfiddle was an exception. I stand corrected!

Scott Brown and @thatuxguy, the original code did not work. You were taking advantage of Quirks Mode, by not putting at the beginning of the file. Throw that DOCTYPE in there, and you’ll notice the html is required as well. I’ve updated the answer.

Читайте также:  Java runtime open source

If you want to have control over where they are placed separate from source code order:

html, body < height: 100%; margin: 0; padding: 0 >div < position: fixed; width: 50%; height: 50% >#NW < top: 0; left: 0; background: orange >#NE < top: 0; left: 50%; background: blue >#SW < top: 50%; left: 0; background: green >#SE

Note: if you want padding on your regions, you’ll need to set the box-sizing to border-box :

…otherwise your «50%» width and height become «50% + 2em», which will lead to visual overlaps.

Some good answers here but just adding an approach that won’t be affected by borders and padding:

html, body < width: 100%; height: 100%; padding: 0; margin: 0 >div < position: absolute; padding: 1em; border: 1px solid #000 >#nw < background: #f09; top: 0; left: 0; right: 50%; bottom: 50% >#ne < background: #f90; top: 0; left: 50%; right: 0; bottom: 50% >#sw < background: #009; top: 50%; left: 0; right: 50%; bottom: 0>#se

I do have one question why is bottom row bottom=0 and not 100%, same with right column, right = 0 and not 100%. As I said it works, just curious

I did not want to add style to tag and tag.

.quodrant < width: 100%; height: 100vh; margin: 0; padding: 0; >.qtop, .qbottom < width: 100%; height: 50vh; >.quodrant1, .quodrant2, .quodrant3, .quodrant4 < display: inline; float: left; width: 50%; height: 100%; >.quodrant1 < top: 0; left: 50vh; background-color: red; >.quodrant2 < top: 0; left: 0; background-color: yellow; >.quodrant3 < top: 50vw; left: 0; background-color: blue; >.quodrant4
.quodrant < width: 100%; height: 100vh; margin: 0; padding: 0; >.qtop, .qbottom < width: 96%; height: 46vh; >.quodrant1, .quodrant2, .quodrant3, .quodrant4 < display: inline; float: left; width: 46%; height: 96%; border-radius: 30px; margin: 2%; >.quodrant1 < background-color: #948be5; >.quodrant2 < background-color: #22e235; >.quodrant3 < background-color: #086e75; >.quodrant4

Similar to other posts, but with an important distinction to make this work inside a div. The simpler answers aren’t very copy-paste-able because they directly modify div or draw over the entire page.

The key here is that the containing div dividedbox has relative positioning, allowing it to sit nicely in your document with the other elements, while the quarters within have absolute positioning, giving you vertical/horizontal control inside the containing div.

As a bonus, text is responsively centered in the quarters.

   

Title Bar

NW

NE

SE

SW

html, body < height:95%;>/* Important to make sure your divs have room to grow in the document */ #title < background: lightgreen>#dividedbox < position: relative; width:100%; height:95%>/* for div growth */ .quarter /* centers text */ #NW < top:0; left:0; background:orange; >#NE < top:0; left:50%; background:lightblue; >#SW < top:50%; left:0; background:green; >#SE

Источник

Блочная верстка сайта

Раньше на просторах Интернета был широко распространён табличный тип вёрстки, которому посвящена отдельная статья. Однако со временем этот подход к созданию структуры сайта устарел, и на смену ему пришла блочная вёрстка.

Отличия блочной вёрстки от табличной

Если табличная вёрстка подразумевает, что содержимое страницы находятся внутри тега , то концепция блочной вёрстки основана на активном использовании универсальных тегов , внутрь которых помещается содержимое, включая другие теги.

Блочная вёрстка лишена недостатков табличной — поисковыми системами она индексируется лучше, её код не такой развесистый, да и блоки , которые так любят называть «слоями», изначально задумывались универсальными, то есть «для всего», тогда как — это таблица, которую нужно использовать для отображения табличных данных и не более того.

Единственный ощутимый минус блочной вёрстки — сделанные на ней сайты могут по-разному отображаться в обозревателях. Чтобы этого избежать, нужно делать вёрстку «кроссбраузерной», то есть одинаково отображаемой любым обозревателем.

Суть блочной вёрстки

В графическом редакторе создаётся макет сайта: размечается, где какая область страницы (шапка, низ, боковая панель, основной контент) будет находиться и сколько места занимать, готовятся картинки, фоны.

Каждая часть страницы помещается в свой блок : верх сайта — в первый, меню — во второй, контент — в третий и т. д. Каждый блок наполняется содержимым средствами HTML, а также позиционируется и оформляется с помощью CSS-разметки.

Конечный HTML-документ представляет собой набор блоков с контентом внутри. Оформление зачастую находится в отдельном CSS-файле, подключенном к странице тегом , или как минимум в контейнере секции .

Принципы блочной вёрстки

Первый — конечно же, повсеместное использование тега , который можно назвать базовым элементом блочной структуры, но об этом было сказано уже достаточно много.

Второе правило — принцип разделения кода, согласно которому содержимое от оформления нужно отделять. Говоря проще и ближе к нашему случаю: HTML — отдельно, CSS — отдельно (желательно в разные файлы). Такой подход делает структуру понятней. Программисту не нужно открывать CSS, дизайнеру — HTML. Все смотрят свой код и не мешают друг другу. Идеально.

Третий принцип — таблицы нужно использовать не везде, а по необходимости, при этом полностью отказываться от них так же странно, как и применять не к месту.

Пример блочной вёрстки

Но, сколько не теоретизируй, а понимать всё проще на примере.

Итак, у нас есть макет (рисунок ниже). Условный, конечно — просто разметка, ведь цель примера — как можно наглядней объяснить принцип создания блочной вёрстки. Зная базу, навести красоту и усложнить макет вы сможете и сами, а я лучше не буду перегружать пример.

Макет будущей страницы

Согласно макету, страница сайта будет содержать пять блоков: «шапку», навигационное меню, боковую панель, основной блок с контентом и «ноги».

Сначала создадим HTML-страницу: обозначим структуру, разметим её. HTML-код будет таким:

      

header (шапка сайта)

Блок навигации

Левая панель

Основной контент страницы

Разберём некоторые моменты.

— это блок-родитель, внутри которого расположились все остальные блоки. Как ячейки таблицы внутри . Назначение дочерних контейнеров должно быть понятно, за исключением разве что блока . Это вспомогательный слой, его смысл будет понятен, когда вы увидите код CSS.

Если открыть HTML-файл в браузере, не подключая таблицу стилей, страница будет выглядеть так.

Страница без подключенных стилей

Теперь добавим файл CSS, код которого приведён ниже.

body < background: #FFF; color: #000; font-family: Arial, sans-serif; font-size: 14px; >#header < background: #F5DEB3; width: 100%; height: 55px; >#container < background: #FFD700; margin: auto auto; text-align: center; width: 80%; height: 400px; >#navigation < background: #FE9798; width: 100%; height: 25px; >#sidebar < background: #40E0D0; float: left; width: 20%; height: 280px; >#content < background: #DCDCDC; float: right; width: 80%; height: 280px; >#clear < clear: both; >#footer

С помощью стилей мы последовательно оформляем содержимое тега и всех находящихся внутри контейнеров с помощью ранее изученных правил.

#clear запрещает обтекание элемента слева и справа. Если убрать это правило, вёрстка «поедет» и низ сайта перестанет корректно отображаться.

CSS творит чудеса, и с ним наша HTML-страница примет уже совсем другой вид.

С подключенным CSS файлом

Вот и весь смысл блочной структуры. Дальше можно только наполнять сайт содержимым и усложнять оформление, но делаться это будет всё равно по изложенному выше принципу. Также посмотрите статью про вёрстку сайта из PSD макета, там эти принципы показаны более наглядно.

Полезные ссылки:

  • Основы HTML — бесплатный 2-х часовой видеокурс по основам HTML;
  • Бесплатный курс по верстке сайта — пример блочной вёрстки с чистого листа;
  • Вёрстка сайта с нуля 2.0 — полноценный платный курс;
  • Создание приложений для Android — для тех, кто давно хотел попробовать себя в мобильной разработке (не для новичков).

Источник

Как поделить одну страничку на два блока?

Здравствуйте, мне нужно в html документе прописать чудо код, чтоб сделалось 2 блока (1 — Контент, 2 — Правая панель). Вот код:

     
Обо мнеМои товарыОтзывыЗадать вопрос

Характеристики ZOPO ZP700 Тип Смартфон Тип корпуса моноблок Габариты Вес: 148 гр
Размеры: 126×68×11 мм. Количество SIM – карт 2 активных sim – карты(WCDMA+GSM/GSM+GSM) Операционная система Android 2.3 Процессор MediaTek MT6575 Стандарт связи WCDMA/HSDPA 900/2100MHz
GSM 900/1800/1900MHZ Дисплей Емкостной AVS экран с поддержкой Multitouch
материал - стекло.
4,3 дюйма QHD
16 млн.цветов
Разрешение экрана: QHD, 960х540 пикс. Функции памяти RAM: 1 Гб.
ROM: 4 Гб.
Слот для карт памяти microSD (TransFlash), расширение максимально до 32 Gb. Беспроводные технологии Bluetooth BT 3.0, EDR.
Wi-Fi b/g/n
GPS Камера Основная 8 Мп, автоматический фокус, цифровой зум
Фронтальная 0,3 Мп Аккумуляторная батарея Li-Ion, 1700 мАч Разъем под наушники 3.5 мм TV Отсутствует. Комплект поставки Мобильный телефон
Батарея - 1 шт.
Зарядное устройство
USB-кабель
Стерео гарнитура
Руководство пользователя на английском языке. Цвет корпуса Черный.

alt text

Нужно сделать, чтоб было как на картинке:

Источник

Разделение страницы на 3 независимых вертикальных блока

Задача состоит в том, что необходимо разделить на три части страницу. Два сайдбара слева и справа, и контент посередине. Ширина каждого блока статическая и главное что блок с контентом должен отображаться по центру. Неожиданно возникли проблемы с такой задачей и нигде не могу найти решение, уже вроде все перепробовал и интернет прошерстил. Вот что у меня вышло с помощью display: table. Но блоки между собой очень зависимы, и я даже не могу воспользоваться какими-либо отступами для контента, не затрагивая другие блоки. HTML:

 
some content some content some content some content some content some content some content some content some content
some content some content some content some content some content some content some content some content some content
some content some content some content some content some content some content some content some content some content
.page-wrapper < display: table; width: 100%; height: 100%; >.left-panel-wrapper, .right-panel-wrapper < display: table-cell; width: 100px; height: 100%; background-color: #f6f8fa; >.left-panel, .right-panel < display: inline-block; >.content-wrapper < display: table-cell; >.content

2 ответа 2

.page-wrapper < display: flex; justify-content: space-between; >.left-panel-wrapper < width: 200px; background-color: orange; >.right-panel-wrapper < width: 200px; background-color: green; >.content-wrapper < /*width: 250px;*/ width: calc(100% - 400px); padding: 0 30px; >
 
some content some content some content some content some content some content some content some content some content
some content some content some content some content some content some content some content some content some content some content some content some content some content some content some content some content some content some content

some content some content some content some content some content some content some content some content some content

на inline-block с костылём

.page-wrapper < text-align: justify; overflow: hidden; min-width: 1000px; >.page-wrapper:after < content: ''; width: 100%; display: inline-block; >.left-panel-wrapper < display: inline-block; width: 200px; background-color: orange; vertical-align: top; >.right-panel-wrapper < display: inline-block; width: 200px; background-color: green; vertical-align: top; >.content-wrapper < display: inline-block; vertical-align: top; width: 500px; margin: 0 auto; padding: 0 10px; >/* костыль */ .left-panel-wrapper, .right-panel-wrapper, .content-wrapper < position: relative; >.left-panel-wrapper:before, .right-panel-wrapper:before, .content-wrapper:before
 
some content some content some content some content some content some content some content some content some content
some content some content some content some content some content some content some content some content some content some content some content some content some content some content some content some content some content some content

some content some content some content some content some content some content some content some content some content

Суть в том, что обвертки даёте overflow: hidden; а каждой колонки подкладку в виде before, через absolute, что создаёт вид background.

Источник

Как разделить один div на 4 одинаковые части?

введите сюда описание изображения

Как разделить один div на 4 одинаковые части?

5 ответов 5

* < padding: 0; margin: 0; box-sizing: border-box; >.items < overflow: hidden; font-size: 0; >.item < font-size: 12px; height: 100vh; width: 25%; display: inline-block; vertical-align: top; background: #ccc; position: relative; >.item:nth-of-type(even) < background: #ddd; >.item:after
body < margin: 0; font-family: sans-serif; >.wrapper < display: flex; width: 100%; height: 350px; >.wrapper-inner < position: relative; align-self: stretch; flex-grow: 1; background-size: cover; background-position: center; >.wrapper-inner:after < content: ''; position: absolute; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(55, 71, 79, 0.5); z-index: 1; >.wrapper-inner._bg-0 < background-image: url(http://i.imgur.com/iLYwNUt.jpg); >.wrapper-inner._bg-1 < background-image: url(http://i.imgur.com/Hk0pCIG.jpg); >.wrapper-inner._bg-2 < background-image: url(http://i.imgur.com/hYsr8VD.jpg); >.wrapper-inner._bg-3 < background-image: url(http://i.imgur.com/7ovysYf.jpg); >.wrapper-inner-title < position: relative; font-weight: 700; text-transform: uppercase; font-size: 14px; color: white; padding: 16px; z-index: 2; >.wrapper-inner-subtext
 
Modern living room
Interior design
Modern living room
Interior design
Modern living room
Interior design
Modern living room
Interior design

В любом случае придется в div добавить еще четыре других div’а. И потом применить флекс.

Как минимум — ложим в один div ещё четыре div , а потом что-то вроде

А вообще, попробуйте ознакомиться с замечательным фреймворком Bootstrap. Он достаточно лёгкий в понимании, и с ним вы сможете избежать лишней писанины в стилях(медиа запросы для адаптивности, размеры блоков).

Источник

Оцените статью