Свойства смещения 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делает элемент расположенным относительно документа и игнорирует все правила компоновки. Установка его позиции устанавливает, где он расположен на документе.
Они могут быть применены к абсолютным и фиксированным элементам позиции, которые по существу одинаковы, но фиксированный всегда использует окно документа в качестве своего якоря. Вы также можете применить их к относительно расположенным элементам, и в этом случае они будут смещены от того, что лучше всего описывается как встроенное позиционирование по умолчанию.