Не идет бекграунд

АК
На сайте с 14.10.2012
Offline
44
952

В одном div с классом wrapper расположил 2 блока (один смещен влево, другой вправо). У wrapper задаю фон, но он не заливает свободное пространство между блоками, хотя они находятся в нем.

Подскажите пож. как залить фон wrapper полностью

Ссылка на codepen.io прилагаю /anon/pen/GrOKjx#anon-login

http://codepen.io/anon/pen/GrOKjx#anon-login

содержимое правого и левого блока разное по высоте и меняется, нужно чтоб блок wrapper принимал значение большего по высоте блока автоматически

дани мапов
На сайте с 06.09.2012
Offline
204
#1

Попробуйте стилях wrapper добавить

overflow:hidden;

Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)
Chkan
На сайте с 22.10.2008
Offline
129
#2

Добавьте перед последним закрывающим дивом вот это

<div style="clear:both;"></div>

http://codepen.io/chipusy/pen/apVoPw

Устали разбираться в AI? Выход здесь: https://vk.cc/cNtMsW
АК
На сайте с 14.10.2012
Offline
44
#3
дани мапов:
Попробуйте стилях wrapper добавить
overflow:hidden;

попробую, спасибо, но ура так получилость

width: 100%;

overflow: auto;

---------- Добавлено 27.01.2017 в 15:45 ----------

Chkan:
Добавьте перед последним закрывающим дивом вот это
<div style="clear:both;"></div>

http://codepen.io/chipusy/pen/apVoPw

что лучше оставить

- с очищающим блоком или добавку в стили width: 100%;

overflow: auto;

поскольку оба способа работают

Chkan
На сайте с 22.10.2008
Offline
129
#4

я обычно добавляю в стили:

.clear {
clear: both;
}

и в код:

<div class="clear"></div>

tommy-gung
На сайте с 22.11.2006
Offline
304
#5


.wrapper:after {
content: '';
display: table;
clear: both;
}
Здесь не могла быть ваша реклама
avatar2020
На сайте с 12.01.2017
Offline
23
#6

Коллега, вы используете в примере кода два HTML элемента внутри блока с CLASS=WRAPPER. Так вот, у вас не заливается фон поскольку блок WRAPPER не видит плавающие влево и вправо внутри него элементы. Как сделать так, чтобы он начал их видеть? Сущесвует три равнозначных по силе способа:

1. В html документе добавить лишний технический блок и прописать ему в стилях правило clear:both;

2. Сгенерировать такой же блок, но на лету только в стилях с помощью псевдокласса :after {content:"";};

3. Добавить внешнему блоку WRAPPER правило overflow - любое значение кроме значения по умолчанию vidible, а именно hidden / auto. Я рекомендую именно hidden.

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

avatar2020
На сайте с 12.01.2017
Offline
23
#7

Немного расширю свой предыдущий ответ на конкретных примерах.

Вариант первый.

Обратите внимание, что нужно писать именно display: block. Так будет правильно.


div.wrapper:after {
content: " '';
display: block;
clear: both;
}

Вариант второй.


<div class="wrapper">
<div class="float-left"></div>
<div class="float-right"></div>
<div class="clear"></div>
</div>

div.wrapper div.clear {
clear:both;
}

Вариант третий, наиболее оптимальный на мой взгляд:


div.wrapper {
overflow:hidden; /* или же overflow:auto; */
}

Вот три варианта, только уже в коде с правильным и корректным синтаксисом.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий