LINUX.ORG.RU

Почему <div> имеет размер меньше, чем его содержимое? (С видео)

 , , ,


0

1

У меня версточный кретинизм. В связи с чем возник вопрос.

Используется Bootstrap 3. Есть такой код (блок-контейнер, естественно, есть, но не показан):

...
<div class="row">
    <div class="col-xs-12 col-xs-offset-0">

        <!-- Логин -->
        <div class="form-group">
            <label for="email" class="col-md-4 control-label">Логин</label>

            <div class="col-md-6">
                <input id="name" type="text" class="form-control" ...>
            </div>
        </div>

        <!-- Пароль -->
        <div class="form-group">
            <label for="password" class="col-md-4 control-label">Пароль</label>

            <div class="col-md-6">
                <input id="password" type="password" class="form-control" ...>
            </div>
        </div>
...


Проблема в том, что блок(и) с классом form-group имеет размер 510x0, несмотря на то, что внутри него размещены элементы совсем не нулевых размеров по вертикали.

Видео: https://www.youtube.com/watch?v=LD_lK_UrsVg

Вопрос: почему так происходит? Как исправить? Ведь мне нужно чтобы между полями ввода был отступ (который подсвечивается желто-розовым цветом). И он есть, но только болтается сверху из-за того, что высота блока нулевая. А нужно, чтоб блок был размером с его содержимое.

UPD:
Полный код страницы: https://pastebin.com/CJtHAyGK

Или так: https://codepen.io/xintrea/pen/dLGyNb

★★★★★

Последнее исправление: Xintrea (всего исправлений: 2)

Ответ на: комментарий от Xintrea

CSS не добавлен. Подключил с сайта bootstrap, так form-group имеет правильную высоту. Видимо, в локальном CSS какие-то изменения приводят к такому у тебя

modos189
()
Ответ на: комментарий от modos189

Там от ширины зависит. Надо на широком экране проверять чтоб label и поле ввода были на одной строке.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Странно, что других CSS не подключено, потому что элемент с классом form-group не имеет также класса row, из-за чего вложенные элементы не могут выравниваться на уровень одной строки.

modos189
()
Ответ на: комментарий от gruy

Попробуй добавить форме класс form-horizontal

Во, в этом и было дело.

Правда, как человеку, далекому от верстки, мне все равно непонятно, как так выходит, что у непустого блока высота становится нуливой.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Если там всё сделано на флоатах, то так и будет. Они не влияют на содержащих их блок (кроме, как обычно, исключений; вроде таблиц или display: flow-root).

anonymous
()
Ответ на: комментарий от Xintrea

Потому что там необходимые свойства для .form-group задаются для случая, когда он расположен внутри .form-horizontal.

gruy ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.