Отрицательные поля и относительное позиционирование

Я столкнулся со многими методами компоновки с отрицательными полями, такими как classic для позиционирования боковой панели. Похоже, что эти методы можно так же легко применить с относительным позиционированием.

Итак, вместо этого:

.sidebar {
    margin-left:-600px;
}

Можно было бы сделать это:

.sidebar {
    position:relative;
    left:-600px;
}

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

Есть ли какие-либо преимущества для одного над другим или они практически эквивалентны?

Спасибо -

Ответы

Ответ 1

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

Ответ 2

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

Ответ 3

И свойство position, и отрицательная маржа используются, и никто лучше, чем другой. Это зависит от того, что вы пытаетесь сделать. Вы не позиционируете каждый элемент относительно или абсолютно, когда хотите сдвинуть его влево справа внизу. Скажем, у вас есть простой тег <p>, который вы хотите переместить влево, вы не придаете ему свойства позиции, чтобы переместить его. Маржа - правильный метод использования. Маржа будет влиять на положение других элементов вашего сайта, где, когда позиция будет плавать, не влияет на позиционирование других элементов. Свойство position, хотя может использоваться по-разному, в основном используется для основных элементов, которые делают ваш сайт ex: например, header, footer, wrapper, menu, content left, content right.