Как сделать отрицательный padding

Обновлено: 04.07.2024

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

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

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

Свойство 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, как margin (поле) и padding (отступ). Теперь мы остановимся на них более подробно и рассмотрим, чем они отличаются друг от друга и какие особенности имеют.

Создавать промежутки между элементами можно и тем, и другим способом, но если padding – это отступ от содержимого до края блока, то margin – это расстояние от одного блока до другого, межблоковое пространство. На скриншоте показан наглядный пример:

padding и margin

Padding отделяет содержимое от границы блока, а margin создает промежутки между блоками

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

Для установки полей или отступов в CSS от каждой стороны элемента существуют следующие свойства:

Отступы:

  • padding-top: значение;
  • padding-right: значение;
  • padding-bottom: значение;
  • padding-left: значение;

Поля:

  • margin-top: значение;
  • margin-right: значение;
  • margin-bottom: значение;
  • margin-left: значение;

Значения могут быть указаны в любых единицах CSS – px, em, % и т. д. Пример: margin-top: 15px .

Также существует очень удобная вещь как сокращенная запись margin и padding CSS. Если вам необходимо задать поля или отступы для всех четырех сторон элемента, совсем необязательно записывать свойство для каждой стороны по отдельности. Всё делается проще: для margin и padding можно указывать сразу 1, 2, 3 или 4 значения. От количества значений зависит, как распределяются настройки:

    4 значения: задаются отступы для всех сторон элемента в такой последовательности: сверху, справа, снизу, слева:

Те же правила касаются и свойства margin CSS. Обратите внимание на то, что для margin можно использовать и отрицательные значения (например, -3px ), которые иногда бывают весьма полезными.

Схлопывание margin

Представьте ситуацию: два блочных элемента находятся друг над другом и им заданы поля margin. Для верхнего блока установлено значение margin: 60px , а для нижнего – margin: 30px . Логично было бы предположить, что два граничащих поля двух элементов просто соприкоснутся и в итоге промежуток между блоками будет равен 90 пикселям.

Однако дела обстоят по-другому. На самом деле в такой ситуации проявляется эффект, который называют схлопыванием, когда из двух примыкающих полей элементов выбирается наибольший по размеру. В нашем примере итоговый промежуток между элементами будет равен 60 пикселям.

Схлопывание полей margin в CSS

Расстояние между блоками равно большему из значений

Схлопывание margin работает только для верхних и нижних полей элементов и не относится к полям с правой и левой сторон. Окончательная величина промежутка высчитывается в разных ситуациях по-разному:

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

Благодаря CSS у вас есть полный контроль над отступом. Есть свойства для установки отступов для каждой стороны элемента (вверху, справа, внизу и слева).

Padding - Отдельные стороны

CSS имеет свойства для указания отступа для каждой стороны элемента:

  • padding-top
  • padding-right
  • padding-bottom
  • padding-left

Все свойства padding могут иметь следующие значения:

  • length - указывает отступ в пикселях, pt, см и т.д.
  • % - указывает отступ в % от ширины содержащего элемента
  • inherit - указывает, что отступ должен быть унаследован от родительского элемента

Примечание: Отрицательные значения не допускаются!

Пример

Установите разные отступы для всех четырех сторон элемента

Padding - Сокращенное свойство

Чтобы сократить код, можно указать все свойства отступа в одном свойстве.

Свойство padding - это сокращенное свойство для следующих индивидуальных свойств отступа:

  • padding-top
  • padding-right
  • padding-bottom
  • padding-left

Т.о., вот как это работает:

Если свойство padding имеет четыре значения:

  • padding: 25px 50px 75px 100px;
    • верхний отступ 25px
    • правый отступ 50px
    • нижний отступ 75px
    • левый отступ 100px

    Пример

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

    Если свойство padding имеет три значения:

    • padding: 25px 50px 75px;
      • верхний отступ 25px
      • правый и левый отступы 50px
      • нижний отступ 75px

      Пример

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

      Если свойство padding имеет два значения:

      • padding: 25px 50px;
        • верхний и нижний отступы 25px
        • правый и левый отступы 50px

        Пример

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

        Если свойство padding имеет одно значение:

        • padding: 25px;
          • все четыре отступа 25px

          Пример

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

          Padding и Width

          CSS свойство width определяет ширину области содержимого элемента. Область содержимого - это часть внутри отступа, границы и поля элемента (блочная модель).

          Итак, если элемент имеет указанную ширину, добавленный к этому элементу отступ будет добавлен к общей ширине элемента. Часто это нежелательный результат.

          Пример

          Чтобы сохранить ширину 300 пикселей, независимо от количества отступов, вы можете использовать свойство box-sizing . Это заставляет элемент сохранять свою ширину; если вы увеличите отступ, доступное пространство содержимого уменьшится.

          Пример

          Используйте свойство box-sizing, чтобы ширина оставалась равной 300 пикселей, независимо от количества отступов:

          Больше примеров

          Установите левый отступ
          Этот пример демонстрирует, как установить левый отступ элемента

          Установите правый отступ
          Этот пример демонстрирует, как установить правый отступ элемента

          Установите верхний отступ
          Этот пример демонстрирует, как установить верхний отступ элемента

          Установите нижний отступ
          Этот пример демонстрирует, как установить нижний отступ элемента

          Проверьте себя с помощью упражнений!

          Все CSS свойства отступа

          Свойство Описание
          padding Сокращенное свойство для установки всех свойств отступа в одном объявлении
          padding-bottom Устанавливает нижний отступ элемента
          padding-left Устанавливает левый отступ элемента
          padding-right Устанавливает правый отступ элемента
          padding-top Устанавливает верхний отступ элемента

          ПАЛИТРА ЦВЕТОВ

          Получите ваш
          Сертификат сегодня!

          Связь с админом

          Топ Учебники

          Топ Справочники

          Топ Примеры

          Веб Сертификаты

          Этот сайт оптимизирован для обучения и тестирования. Примеры могут быть упрощены для улучшения чтения и базового понимания. Учебные пособия, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность и работоспособность всего контента. Используя этот сайт, вы соглашаетесь с тем, что прочитали и приняли условия использования, cookie и политику конфиденциальности.
          Также вы можете абсолютно бесплатно скачать офлайн версию сайта W3Schools на русском архивом с GitHub и пользоваться локально на своём компьютере.
          Также доступна версия сайта W3Schools на украинском языке.
          Copyright 1999-2021 by Refsnes Data. All Rights Reserved.
          Сайт работает на фреймворке W3.CSS.

          HTML-свойство margin используется для добавления отступа или разрыва между различными элементами. Свойство padding используется для добавления пространства между содержимым и границей ( рамкой ) указанного HTML-элемента .

          Разницу между полем и отступом можно увидеть на следующем рисунке:


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

          Посмотреть демо-версию и код

          У нас есть три элемента div . Первые два — со свойством HTML margin , а третий — со свойством padding . Расстояние между элементами div — это margin , а пространство между текстом внутри третьего элемента div и линией его границы — это padding .

          Отступы в CSS — cинтаксис CSS-свойств padding и margin

          Синтаксис, который используется для единичного объявления свойства CSS margin :

          Этот код задает отступы во всех направлениях: отступ сверху CSS, отступ снизу CSS, отступ слева CSS и отступ справа CSS. Если необходимо задать отступы для разных направлений, это можно сделать с помощью следующего сокращенного объявления:

          • 10px — отступ сверху CSS;
          • 20px — отступ справа CSS;
          • 30px — отступ снизу CSS;
          • 40px — отступ слева CSS .

          Также можно установить отступ слева CSS и другие направления отдельно:

          Примечание: Можно использовать для определения отступа px , pts , cm и т.д.

          Синтаксис CSS-свойства padding

          Свойство padding можно задать с помощью единичного / сокращенного объявления или используя отдельное объявление, а для каждого направления.

          Единичное объявление с одним значением:

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

          Если указаны четыре значения, то порядок их следования такой же, как и для свойства HTML CSS margin .

          Для каждого направления в отдельности:

          Пример для установки полей и отступов в HTML-списке

          Во вступительной части я показал свойства margin и padding , используемые в элементе div . В этой демо-версии я создал список с помощью пунктов меню, которые являются ссылками. Список размещается внутри элемента div . Он содержит пункты меню в виде гиперссылок.

          Список задается и другими свойствами CSS , но без использования свойств HTML margin и padding он будет выглядеть так:

          Пример для установки полей и отступов в HTML-списке

          Посмотреть демо-версию и код

          мы получим следующий вид:

          Пример для установки полей и отступов в HTML-списке - 2

          Посмотреть онлайн демо-версию и код

          Свойство padding добавило пространство между содержимым и границей каждой ссылки. Укажите отступ величиной в 2 пикселя в классе ссылки, и получите следующий вид:


          Посмотреть онлайн демо-версию и код

          Демонстрация полей на примере HTML-таблицы

          Ниже приводится пример использования свойства padding в HTML-таблице . Я создал таблицу с несколькими строками.

          Для таблицы заданы стили с помощью различных свойств CSS . Сначала посмотрите, как выглядит таблица без применения свойства padding :

          Демонстрация полей на примере HTML-таблицы

          Посмотреть демо-версию и код

          Добавив поля, мы получим таблицу, которая будет выглядеть следующим образом:

          Демонстрация полей на примере HTML-таблицы - 2

          Посмотреть демо-версию и код

          Пример использования полей и отступов с элементом form

          Свойства margin padding HTML также можно применять для элементов формы: текстовых полей, кнопок и т.д.

          Свойство padding , примененное к текстовому полю, задает пространство между курсором внутри текстового поля и его границей. margin добавляет отступы между различными текстовыми полями или другими элементами формы.

          Чтобы стало понятнее, я создам форму и покажу разницу между полями с использованием свойств margin и padding и без. Первоначальный внешний вид формы без применения свойств margin и padding :

          Пример использования полей и отступов с элементом form

          Добавив поля к классу текстовых полей и классу кнопки btn , мы получим форму, выглядящую следующим образом:

          Поля для текстовых полей:

          Поля для кнопки:

          Посмотреть демо-версию и код

          Чтобы увеличить или уменьшить отступы между текстовыми полями, используйте свойство HTML CSS margin . В данной демо-версии я использовал отрицательное значение для уменьшения расстояния между полями.

          Поля формы будут выглядеть следующим образом:


          Посмотреть демо-версию и код

          После использования отрицательного значения в HTML margin расстояние между текстовыми полями уменьшилось на 3 пикселя.

          Использовав свойство padding , мы увеличили расстояние между курсором внутри текстового поля и линией границы, которое задается другими свойствами. Теперь поле выглядит гораздо лучше.

          Для кнопки “ Save ” мы также применили свойство padding :

          которое используется для выравнивания текста во всех направлениях.

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

          Читайте также: