Поле на дочернем элементе перемещает родительский элемент

logrotate

logrotate является, вероятно, лучшим решением. Используйте файл /etc/logrotate.conf для изменения настроек для всех журналов. Вы перевозите на фургоне изменение weekly к daily, таким образом, журналы поворачиваются каждый день. Кроме того, Вы могли бы хотеть добавить compress, таким образом, архивы сжаты. Если Вы не заботитесь о старых журналах, можно установить, вращаются rotate 4 к чему-то ниже.

387
задан Robert Koritnik 19 November 2009 в 01:23
поделиться

3 ответа

Альтернатива найдена в Дочерние элементы с полями внутри DIV Вы также можете добавить:

.parent { overflow: auto; }

или:

.parent { overflow: hidden; }

Это предотвращает сжатие полей ]. Граница и отступы делают то же самое. Следовательно, вы также можете использовать следующее, чтобы предотвратить обрушение верхнего поля:

.parent {
    padding-top: 1px;
    margin-top: -1px;
}

Обновление по популярному запросу: Весь смысл сворачивания полей заключается в обработке текстового контента. Например:

<style type="text/css">
    h1, h2, p, ul {
        margin-top: 1em;
        margin-bottom: 1em;
    }
</style>

<h1>Title!</h1>
<div class="text">
    <h2>Title!</h2>
    <p>Paragraph</p>
</div>
<div class="text">
    <h2>Title!</h2>
    <p>Paragraph</p>
    <ul>
        <li>list item</li>
    </ul>
</div>

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

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

и

не складываются, а переходят друг в друга (они сжимаются). То же самое происходит с элементами

и

    .

    К сожалению, с современным дизайном эта идея может укусить вас, когда вам явно нужен контейнер. Это называется новым контекстом форматирования блока в языке CSS. Уловка переполнения или маржи даст вам это.

460
ответ дан 22 November 2019 в 23:49
поделиться

Это нормальное поведение (по крайней мере, среди реализаций браузера). Маржа не влияет на положение дочернего элемента по отношению к его родительскому элементу, если только у родительского элемента нет отступов. В этом случае большинство браузеров добавят дочернее поле к родительскому отступу.

Чтобы получить желаемое поведение, вам необходимо:

.child {
    margin-top: 0;
}

.parent {
    padding-top: 10px;
}
]
47
ответ дан 22 November 2019 в 23:49
поделиться

Поля элементов, содержащихся в .child , сворачиваются.

<html>
<style type="text/css" media="screen">
    #parent {background:#dadada;}
    #child {background:red; margin-top:17px;}
</style>
<body>
<div id="parent">

    <p>&amp;</p>

    <div id="child">
        <p>&amp;</p>    
    </div>

</div>
</body>
</html>

В этом примере, p получает поле из стилей браузера по умолчанию. Браузер по умолчанию размер шрифта обычно составляет 16 пикселей. Имея margin-top более 16 пикселей на #child , вы начинаете замечать изменение его позиции.

1
ответ дан 22 November 2019 в 23:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: