Свойства смещения CSS и статическое положение
Являются ли свойства смещения (слева, сверху, снизу, справа) только для нестатических позиций?
Могут ли они быть применены к статически расположенному элементу? Если да, то в чем их отличие от применение их к нестатически расположенным элементам?
3 ответа:
Для смещения элемента его положение должно быть
position:relative
Координаты,
top
,right
,bottom
иleft
служат различным целям в зависимости от того, расположен ли элемент относительно или абсолютно.Когда элемент смещен в отличие от перемещенного?
Когда вы фактически смещаете с помощью
position: relative;
элемент не удаляется из потока, и действительно пространство, которое элемент занял бы, если бы он оставался статичным (the default) по-прежнему зарезервирован для него, поэтому вы просто сдвинули его с исходного положения. Любой элемент, следующий за ним, появится там, где он был бы, даже если бы вы не смещали его предшественника - как это примерПеремещение, а не смещение
Однако если вы действительно хотите переместить элемент, то его нужно удалить из потока, поэтому для него не зарезервировано место, и тогда вы используете
position:absolute;
или фиксированный.. то есть разницаРезюме
static
это значение по умолчанию, и вы просто используете поля, чтобы переместить его, он будет игнорировать координаты и z-индекс
relative
является зарезервированным пространством, координаты будут смещать его от исходного пространства
absolute
удалит элемент из потока, и координаты будут вычислены в соответствии с его содержащим блоком , который является ближайшим относительно расположенным предком (илиbody
элемент, если нет относительно расположенных предков)
fixed
не имеет содержащего блока, т. е. вы не можете указать, к какому элементу он должен быть расположен относительно, он просто зафиксирует себя относительно окна просмотраИ, наконец, элемент не будет принимать
z-index
, если его позиция является статической по умолчанию, поэтомуposition: relative;
без каких-либо координат применяется аналогичноstatic
, но это полезно для z-индексации и является содержащий блок для абсолютно позиционированных элементов
Нет смысла применять их к элементам
position: static
, поскольку они статичны.Чтобысдвинуть статический элемент на определенную величину, вы можете изменить его свойство
position
наposition: relative;
.Теперь вы можете перемещать его с помощью
Существует еще несколько типовtop
,left
, и т.д.position
, а именноposition: fixed
иposition: absolute
.
fixed
делает элемент фиксированным на экране, и на него не влияет прокрутка, поэтому он как будто приклеен к монитору компьютера. Установочный егоtop
и др. устанавливает позицию.
absolute
делает элемент расположенным относительно документа и игнорирует все правила компоновки. Установка его позиции устанавливает, где он расположен на документе.
Они могут быть применены к абсолютным и фиксированным элементам позиции, которые по существу одинаковы, но фиксированный всегда использует окно документа в качестве своего якоря. Вы также можете применить их к относительно расположенным элементам, и в этом случае они будут смещены от того, что лучше всего описывается как встроенное позиционирование по умолчанию.