Может ли кто-нибудь сказать мне разницу между style = "position:absolute"
и style = "position:relative"
и чем они отличаются, если я добавлю его к элементам div
/ span
/ input
?
Я использую absolute
прямо сейчас, но я тоже хочу изучить relative
. Как это изменит позиционирование?
css
css-position
Варун
источник
источник
Ответы:
Абсолютное позиционирование означает, что элемент полностью исключен из обычного потока макета страницы. Что касается остальных элементов на странице, то абсолютно позиционированный элемент просто не существует. Затем сам элемент рисуется отдельно, как бы «поверх всего остального», в позиции, которую вы указываете с помощью
left, right, top and bottom
атрибутов.Используя позицию, указанную вами с помощью этих атрибутов, элемент затем помещается в эту позицию в пределах своего последнего элемента-предка, который имеет любой атрибут позиции, кроме
static
(элементы страницы по умолчанию являются статическими, если атрибут позиции не указан) или тело документа (браузер область просмотра), если такого предка не существует.Например, если бы у меня был этот код:
...
<div>
он будет расположен на расстоянии 20 пикселей от верхней части окна просмотра браузера и 20 пикселей от левого края того же.Однако, если бы я сделал что-то вроде этого:
... тогда
inner
div будет расположен на расстоянии 20 пикселей от верхаouter
div и 20 пикселей от левого края того же самого, потому чтоouter
div не позиционируется,position:static
потому что мы явно установили его для использованияposition:relative
.Относительное позиционирование, с другой стороны, аналогично заявлению об отсутствии позиционирования, но
left, right, top and bottom
атрибуты «выталкивают» элемент из его обычного расположения. Остальные элементы на странице по-прежнему располагаются так, как если бы элемент находился на своем обычном месте.Например, если бы у меня был этот код:
... тогда все три
<span>
элемента будут располагаться рядом друг с другом, не перекрывая друг друга.Если я настрою второй
<span>
использовать относительное позиционирование, например:... тогда Span2 будет перекрывать правую сторону Span1 на 5 пикселей. Span1 и Span3 будут располагаться точно на том же месте, что и в первом примере, оставляя зазор 5 пикселей между правой стороной Span2 и левой стороной Span3.
Надеюсь, это немного проясняет ситуацию.
источник
Относительное позиционирование: элемент создает свои собственные оси координат со смещением местоположения от оси координат окна просмотра. Это часть документооборота, но смещенная.
Абсолютное позиционирование: элемент выполняет поиск ближайших доступных осей координат среди своих родительских элементов. Затем элемент позиционируется путем указания смещения от этой координатной оси. Он удален из нормального потока документов.
Источник
источник
Вы определенно захотите ознакомиться с этой позиционной статьей из A List Apart. Помогло демистифицировать позиционирование CSS (что мне казалось безумным до этой статьи).
источник
С помощью CSS-позиционирования вы можете разместить элемент именно там, где хотите, на странице.
Когда вы собираетесь использовать позиционирование CSS, первое, что вам нужно сделать, это использовать свойство CSS position, чтобы сообщить браузеру, собираетесь ли вы использовать абсолютное или относительное позиционирование.
Обе позиции имеют разные особенности. В CSS После того, как вы установили положение, вы можете использовать атрибуты top, right, bottom, left.
Абсолютное положение
Относительное положение
Чтобы позиционировать элемент относительно, положение свойства устанавливается как относительное. Разница между абсолютным и относительным позиционированием заключается в том, как вычисляется позиция.
Подробнее: Относительная позиция против абсолютной
источник
Хорошо, здесь очень очевидный ответ ... в основном относительное положение относительно предыдущего элемента или окна, в то время как absolute не заботится о других элементах, если это не родительский элемент, если вы используете top и left ...
Посмотрите на пример, который я создаю для вас, чтобы показать различия ...
Также вы можете увидеть это в действии, используя созданный мной CSS, вы можете увидеть, как ведут себя абсолютные и относительные позиции:
источник
Абсолютное позиционирование основано на координатах дисплея:
^ помещает элемент вверху слева в окне.
Относительное положение относительно места размещения элемента:
^ помещает элемент на 1 пиксель вниз и на 1 пиксель слева от того места, где он изначально находился :)
источник
Родственник:
Элемент с
position: relative;
позиционируется относительно своего нормального положения.Если вы не добавите атрибуты позиционирования (верхний, левый, нижний или правый) к относительному элементу, это никак не повлияет на его позиционирование. Он будет вести себя точно так же, как
position: static
элемент.Но если вы добавите какой-нибудь другой атрибут позиционирования, например, top: 10px ;, он сместит свою позицию на 10 пикселей вниз от того места, где обычно находится.
На элемент с таким типом позиционирования влияют другие элементы, и он сам также влияет на другие.
Абсолютный:
Элемент с
position: absolute;
позволяет разместить любой элемент именно там, где вы хотите. Вы используете атрибуты позиционирования сверху, слева, снизу. и право установить местоположение.Он размещается относительно ближайшего нестатического предка. Если такого контейнера нет, он размещается относительно самой страницы.
Он удаляется из обычного потока элементов на странице.
На элемент с таким типом позиционирования не влияют другие элементы, а также не влияет на поток других элементов.
См. Этот пример, который не требует пояснений, для большей ясности. https://codepen.io/nyctophiliac/pen/BJMqjX
источник
Absolute помещает объект (div, span и т. Д.) В абсолютное принудительное положение (обычно определяемое в пикселях), а relative поместит его на определенное расстояние от того места, где он обычно находится. Например:
Может исчезнуть левая часть текста, если она находится в пределах 20 пикселей от левого края экрана.
источник
position: absolute
можно разместить где угодно и оставить там, например 0,0.position: relative
размещается со смещением относительно того места, в котором он изначально был размещен в браузере.источник
position: relative действуют как родительский элемент position: absolute действуют как дочерние элементы относительной позиции. вы можете увидеть пример ниже
источник