Как сделать див в диве

Верстка блоками DIV. С самого начала

15.09.2015 в 12:27, joey

Верстка блоками div давно уже стала стандартом и имеет ряд преимуществ перед табличной версткой. Однако на деле начинающие разработчики путаются в поведении этих самых блоков.

Давайте разберем основные моменты при блочной верстке. Сейчас мы не будем брать во внимание стандарт html5, а просто рассмотрим основу основ при верстке блоками div, которая используется при создании макета или же какого то отдельного компонента страницы.

Что считать блочным элементом?

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

Итак, от простого к сложному. Посмотрим, как отобразятся блоки div по умолчанию без стилей, влияющих на их положение. Для наглядности стили к элементам будем добавлять инлайново, через атрибут style.

Добавим значение ширины для каждого блока:

Видно, что каждый блок согласно спецификации располагается с новой строки. Это их нормальное поведение.

Теперь возникает вопрос, как расположить блоки div на одной строке, друг за другом?

Для этого существует свойство float, которое определяет, с какой стороны блок будет принудительно выровнен. При этом с другого края, он может обтекаться другими элементами.

Свойство float имеет следующие значения:

Добавим float:left к нашим блокам, чтобы блоки выровнялись по левому краю:

В результате, блоки выстроились на одной строке. Хорошо, допустим, мы захотели добавить еще один div снизу, и сделаем это без указания свойства float:

Видно, что блок добавился как то криво. Кажется, что он добавился с новой строки под Блок 1. На самом деле, Блок 4 занимает место от начала Блока 1 и на 450 пикселов вправа. Вот посмотрите:

Почему так вышло? Вкратце, так происходит, потому что элементы с float выпадают из потока документа. Однако, это тема отдельной статьи. Здесь же мы познакомимся с новым свойством clear, которое управляет поведением плавающих элементов:

Добавим Блоку 4 свойство clear:left, которое запретит этому элементу обтекание других плавающих элементов с левой стороны.

Блок 4 разместился с новой строки, как нам надо.

В данном случае мы знаем как располагаются другие блоки, потому в примере сразу указали clear:left. Бывают ситуации, когда мы точно не знаем, с какой стороны встретится плавающий блок, поэтому в таких случаях стоит указывать clear:both, отменяющий обтекание с обеих сторон. Теперь мы разобрались как расположить блоки div на одной строке горизонтально.

Следует помнить, что блоки со значением float располагаются на одной строке, если позволяет ширина родительского элемента. Если блочные элементы не умещаются в ряд, они будут переноситься на новую строку. Если это критично, например, при верстке макетов, нужно это учитывать и у блоков с float обязательно задавать ширину – фиксированную (px) или резиновую (%, rem и т.д.). Дальше посмотрим на такие ситуации.

Как повлиять на блоки, если мы хотим разместить эти блоки по центру?

Классическим решением будет добавление блокам родителя и использование свойства margin: 0 auto;

Возьмем разметку из предыдущих примеров и усовершенствуем её.

Здесь вроде всё просто.

А если нам не нравится, что текст вплотную прилипает к краю родительского блока и хотим добавить поля без внесения изменений в разметку, только с помощью css. Добавим элементам свойство padding:

И видим, что наша верстка рассыпалась! Блок 3 куда то уехал. Почему так вышло? Ответ прост. Добавив поля элементам мы увеличили их ширину. Теперь значения таковы:

Блок 1: 10 + 200 + 10 = 220px

Блок 2: 10 + 150 + 10 = 170px

Блок 3: 10 + 100 + 10 = 120px

Блок 4: 10 + 450 + 10 = 470px

220 + 170 + 120 = 510px

Общая ширина трех блоков 510, они не умещаются в ширину родителя (450) и потому переносятся на новую строку.

Как поправить? Можно сделать следующее:

Используем второй вариант, получается так:

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

Создаем разметку макета:

Если что-то непонятно — спрашивайте в комментариях.

Источник

Как сделать див в диве

Способов выравнивания блоков довольно много. Каждый выбирает для себя более привычный. Я опишу 5 способов, выбирайте наиболее подходящий.

Как сделать див в диве. Смотреть фото Как сделать див в диве. Смотреть картинку Как сделать див в диве. Картинка про Как сделать див в диве. Фото Как сделать див в диве

/* эти стили на выравнивание не влияют */
width: 400px;
background-color:#CCC;
border: 1px solid #999;
padding: 20px;
>

Код HTML-смтраницы:

margin:5px 20% 10px 20%;

width:60%;
Код страницы аналогичен предыдущему способу.
Как сделать див в диве. Смотреть фото Как сделать див в диве. Смотреть картинку Как сделать див в диве. Картинка про Как сделать див в диве. Фото Как сделать див в диве
И в этом случае два и более блока будут располагаться так же вертикально, даже если их суммарная длинна много меньше ширины экрана браузера.

Как сделать див в диве. Смотреть фото Как сделать див в диве. Смотреть картинку Как сделать див в диве. Картинка про Как сделать див в диве. Фото Как сделать див в диве

Стили для этих блоков:

.dop-block <
position: relative;
float: right;
right: 50%;
>
.blk4 <
position: relative;
float: left;
left: 50%;

/* эти стили на выравнивание не влияют */
margin: 5px;
background-color:#CCC;
width:400px;
border: 1px solid #999;
padding: 20px;
>

Если блоков в странице не много, т.е. они помещаются в одну строку, то выравнивание для них работает:
Как сделать див в диве. Смотреть фото Как сделать див в диве. Смотреть картинку Как сделать див в диве. Картинка про Как сделать див в диве. Фото Как сделать див в диве

.dop-block <
text-align: center;
>

.blk5 <
display: inline-block;

/* дополнительный стиль для вытавнивания текста внутри блока */

text-align:left;

/* эти стили на выравнивание блоков не влияют */
margin: 5px;
background-color:#CCC;
width:400px;
border: 1px solid #999;
padding: 20px;

Страница в этом варианте будет выравнивать блоки даже если их общая длинна превышает ширину окна браузера:

Как сделать див в диве. Смотреть фото Как сделать див в диве. Смотреть картинку Как сделать див в диве. Картинка про Как сделать див в диве. Фото Как сделать див в диве

Не все способы описаны. Если вы считаете, что есть еще более удобный способ, напишите.

Источник

Подскажите может ли размещаться в одном диве несколько див-блоков

Как сделать див в диве. Смотреть фото Как сделать див в диве. Смотреть картинку Как сделать див в диве. Картинка про Как сделать див в диве. Фото Как сделать див в дивеСтатичный див в диве с transform
можно ли как то оставить неподвижным див, который вложен в дргой див к которому применяеться.

Как сделать див в диве. Смотреть фото Как сделать див в диве. Смотреть картинку Как сделать див в диве. Картинка про Как сделать див в диве. Фото Как сделать див в дивеКак из ДИВ-блоков верстают сайты с двумя и более колонками, ведь по умолчанию ДИВ-блоки располагаются один под другим?
Большинство сайтов имеют боковые колонки (так называемые сайтбары), как их делают с помощью блочной.

Может ли в одном классе быть несколько конструкторов?
Доброго времени суток. Программируя на питоне, возникла потребность создать несколько конструкторов.

RosenR@t, спасибо Вам за то что обратили внимание на мою ситуацию,
буду Вам очень благодарна за помощь.

Вложения

Как сделать див в диве. Смотреть фото Как сделать див в диве. Смотреть картинку Как сделать див в диве. Картинка про Как сделать див в диве. Фото Как сделать див в диве1.rar (549 байт, 105 просмотров)

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Клиент в одном заказе может выбрать несколько товаров
Как реализовать в access? клиент в одном заказе может выбрать несколько товаров

Найти максимально возможную площадь сарая и где он может размещаться.
Фермер хочет построить на своей земле как можно больший по площади сарай. Но на его участке есть.

Как сделать див в диве. Смотреть фото Как сделать див в диве. Смотреть картинку Как сделать див в диве. Картинка про Как сделать див в диве. Фото Как сделать див в дивеЗамещение текста в одном диве
привет всем. нужна помощь. имеются два дива. в одном(1) меню в другом(2) инфомация. при выборе.

Как сделать див в диве. Смотреть фото Как сделать див в диве. Смотреть картинку Как сделать див в диве. Картинка про Как сделать див в диве. Фото Как сделать див в дивеНаложение слоев в одном диве
Привет! Совсем заблудился в иерархии тегов. Нужно сделать резиновый div (100%/100%) с видео.

как правильно сделать в одном запросе может быть несколько подзапросов
Народ подскажите как правильно сделать запрос SELECT id,title FROM table (IN SELECT cat.

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *