Отрицательные поля и относительное позиционирование
Я столкнулся со многими методами компоновки с отрицательными полями, такими как 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.