Как убрать верхний отступ в css
Перейти к содержимому

Как убрать верхний отступ в css

  • автор:

Как убрать верхний отступ в css

Как убрать лишние отступы у img внутри блока?

  • Довольно часто верстальщики сталкиваются с проблемами размещения элементов на странице из-за присутствия лишних отступов при определенных ситуациях. В статье будет рассмотрен случай, когда картинку размещают внутри блока, в результате чего появляются неизвестный отступ. Здесь вы найдете объяснение и решение этой проблемы.психология трейдера. Как и в обычной жизни, в верстке бывают аномальные ситуации, которые сложно объяснить. Именно такая ситуация может возникнуть, когда тег для вставки изображений (img) вставляется в контейнер, который обладает свойствами блочного элемента или плавающего объекта. Конфуз этой ситуации заключается в непонятном отступе, появляющемся ниже изображения.

    Рассмотрим практический пример

    Итак, для наглядности и лучшего восприятия проблемы предлагаю все посмотреть и, так сказать, «пощупать» на практике. Берем любое изображение и одеваем его в div. Ниже вы видите пример кода: HTML

    div> img src="img.png" width="250px" alt=""/> div>

    При оформлении стилей зальем внутренний фон блока красным цветом. При нормальных условиях картинка полностью займет все место внутри блока и перекроет красный фон. Прописываем код для оформления CSS

    div  display:block; width:250px; margin:0px auto;/*Центруем блок*/ background:#ff0000;/*Зальем блок красным цветом, чтобы визуализировать отступ*/ > body  background:#eee; >

    Внешний вид отступа картинки внутри блока

    В результате чего браузер нам покажет следующую картину Судя по красной полосе в нижней части контейнера можно констатировать, что непонятный отступ имеет место. Воспользовавшись панелью веб-мастера в браузере, стало известно, что отступ составил 5,511 пикселей. Очень забавляет тот факт, что во всех популярных браузерах этот баг присутствует, а вот всеми любимый Internet Explowerd в этом случае отрабатывает безупречно.

    Причина появления отступа

    Как человек с высшим техническим образованием смею Вас заверить, что ничего не происходит просто так, у всего есть причины. Разобравшись в этом вопросе я еще раз в этом убедился. Весь конфуз заключается в стандартных свойствах элементов. По умолчанию тег img имеет свойства строчного элемента, что в свою очередь означает, что элемент будет выравниваться по базовой линии текста. Эта линия располагается чуть выше нижнего края блока, так как для текста существует обязательный запас- место под «хвосты» букв.

    Решение проблемы

    Для исправления этого мелкого недочета достаточно присвоить изображению свойства блочного элемента. С этим нам поможет свойство display, прописываем картинке display: block; и избавляемся от ненужных проблем. Также можно подключить вертикальное выравнивание через свойство vertical-align. Это тоже поможет избавиться от нежелательного отступа.

    В каких браузерах работает?
    6.0+ 5.0+ 9.5+ 4.0+ 3.0+

    Отступы в CSS (margin и padding)

    В этой статье пойдёт речь о двух CSS свойствах: margin и padding. Оба они задают отступ. Но в одном случае это внешний отступ от других элементов, а во втором — внутренний отступ от содержимого. Эти свойства являются одними из наиболее часто используемых при создании сайтов. Разберём каждое по отдельности.

    Внешний отступ (margin)

    Для демонстрации отступа нам потребуется два блока div. Создадим их:

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

    Как видно из примера, рамки совпадают, потому что нет отступов. Теперь сделаем внешний отступ в 10px для внутреннего, красного, элемента так:

    На странице браузера получится такой результат:

    • margin-left — отступ слева
    • margin-right — отступ справа
    • margin-top — отступ сверху
    • margin-bottom — отступ снизу

    Получится такой результат:

    Как и с другими универсальными свойствами, которым можно передавать сразу 4 значения для 4 сторон (или углов), свойству margin можно передать 2 значения. К примеру так: «margin: 10px 20px«. Тогда верхний и нижний отступ будут равны 10px, а правый и левый будут равны 20px. А если передать 3 значения «margin: 10px 20px 30px«, то соответственно верхний отступ получится 10px, правый и левый — 20px, а нижний 20px.

    Свойство margin может принимать ещё и значние «auto«. Это значение центрирует элемент по горизонтали.

    С помощью значения auto у margin можно центрировать только блочные элементы. Для строчных используйте text-align: center.

    Попробуем продемонстрировать эту центровку:

    В результате внутренний элемент будет иметь отступ сверху и снизу в 10px и находиться по центру родительского:

    Этот приём центрирования используется практически на всех сайтах, на которых контент расположен в центре экрана.

    Внутренний отступ (padding)

    Внутренний отступ можно сделать через CSS свойство padding. Оно принимает значения аналогично свойству margin. Можно указать от одного до четырёх значений, чтобы задать разные отступы для разных сторон. Для демонстрации результатов работы этого свойства используем текст с выравниванием во всю ширину контейнера (text-align: justify;)

     
    Тише, мыши, кот на крыше, а котята ещё выше. Кот пошёл за молоком, а котята кувырком. Кот пришёл без молока, а котята ха-ха-ха.

    Результат будет таким:

    Тише, мыши, кот на крыше, а котята ещё выше. Кот пошёл за молоком, а котята кувырком. Кот пришёл без молока, а котята ха-ха-ха.

    • padding-left — отступ слева
    • padding-right — отступ справа
    • padding-top — отступ сверху
    • padding-bottom — отступ снизу

    Проблема расширения (box-sizing)

    У свойства padding существует проблема. Это свойство расширяет элемент на величину отступа. Для наглядности создадим два одинаковых по ширине элемента «width: 200px;«, но у одного установим свойство padding:

     
    Без отступа
    С отступом

    В браузере получится такой результат:

    Без отступа
    С отступом

    Оба элемента имеют одинаковую ширину «width: 200px;«. Но нижний на 60 пикселей шире из-за того, что слева и справа есть отступ padding (по 30 px каждый), который расширяет этот элемент. Чтобы такого не происходило, необходимо задать элементу свойство box-sizing в значении border-box (по умолчанию оно в значении content-box):

     
    Без отступа
    С отступом

    Тогда вместо того, чтобы раздвигать границы элемента, будет сужаться область внутри него.

    Без отступа
    С отступом

    Расширение элементов из-за внутреннего отступа padding иногда сильно мешает. Особенно при создании мобильных версий сайтов. Из-за них чаще всего на мобильных устройствах появляется горизонтальная прокрутка. Поэтому заранее убедитесь, что поставили свойство box-sizing в значение border-box для самых больших элементов на странице .

    Как убрать отступ сверху css

    В CSS отступ сверху можно сделать с помощью следующих свойств:

    • padding-top — установка внутреннего отступа
    • margin-top — установка внешнего отступа

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

    .content  margin-top: 20px; > 

    Чтобы сбросить отступ, необходимо указать значение 0 нужному типу отступа:

    .content  padding-top: 0; > 

    Как убрать системные отступы?

    https://jsfiddle.net/jndwsvyp/1/
    Нигде не прописывал отступы, а белые полосы с боков и сверху есть, как это исправить и почему это возникло?

    P.S. Предложения из серии:
    margin: -8px;
    не рассматриваются, потому что это колхоз.

    • Вопрос задан более трёх лет назад
    • 5272 просмотра

    3 комментария

    Простой 3 комментария

    SmthTo

    Rustam Bainazarov @SmthTo Куратор тега Вёрстка

    Для этого есть любой reset.css.

    webirus

    SmthTo, ты принципиально ответы не пишешь в ответы, а только в комментарии?)

    SmthTo

    Rustam Bainazarov @SmthTo Куратор тега Вёрстка
    Сергей Горячев, отвечу мемом: прост)))1)
    Решения вопроса 1
    Евгений Акулинин @forkhammer
    Fullstack-разработчик (Django, Angular)

    html, body

    А вообще подключи reset.css

    Ответ написан более трёх лет назад
    Нравится 3 2 комментария
    greg_13 @greg_13 Автор вопроса

    Так, это сработало, но хотелось бы всё же уточнить, а как вообще эта проблема возникает?
    И что за «reset.css»?

    Евгений Акулинин @forkhammer

    Отступы создает стандартный CSS, встроенный в браузер. У каждого браузера свой набор стилей по-умолчанию. Чтобы привести все к одному виду используют наборы стилей, например reset.css https://meyerweb.com/eric/tools/css/reset/

    Ответы на вопрос 2

    alex_shevch

    Марти Макфлай @alex_shevch
    Frontend Developer

    Каждый браузер устанавливает свои значения стилей по умолчанию для различных HTML-элементов. С помощью CSS Reset мы можем нивелировать эту разницу для обеспечения кроссбраузерности стилей.
    https://marksheet.io/css/reset.css

    Просто подключаешь эти стили для каждого нового проекта.

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

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