이 글에서는 CSS 위치 고정을 사용하여 고정 레이아웃을 구현하는 방법에 대한 관련 정보를 주로 소개합니다. 편집자는 이것이 꽤 좋다고 생각하므로 지금 공유하고 참고용으로 제공하겠습니다. 편집자를 따라 살펴보겠습니다. 모두에게 도움이 되기를 바랍니다.
Introduction
일반적으로 사용되는 몇 가지 위치 속성을 설명하기 전에 기사를 썼습니다: "CSS 기본 - 위치 속성 설명"
일반적으로 다음과 같은 일반적으로 사용되는 속성을 알고 있습니다.
{ position: static; position: relative; position: absolute; position: fixed; }
https://developer .mozilla.org/zh-CN/docs/Web/CSS/position에서는 다음 세 가지 값도 언급했습니다.
/* 全局值 */ position: inherit; position: initial; position: unset;
대부분이 position:stickyBar를 사용한 적이 없는 것으로 추정됩니다. . 이 속성 값은 아직 실험 단계에 있습니다. 그것을 설명하는 방법? <code>position:sticky
吧。这个属性值还在试验阶段。怎样描述它呢?
初窥 position:sticky
sticky 英文字面意思是粘,粘贴,所以姑且称之为粘性定位。下面就来了解下这个处于实验性的取值的具体功能及实用场景。
这是一个结合了 position:relative 和 position:fixed 两种定位功能于一体的特殊定位,适用于一些特殊场景。
什么是结合两种定位功能于一体呢?
元素先按照普通文档流定位,然后相对于该元素在流中的 flow root(BFC)和 containing block(最近的块级祖先元素)定位。
而后,元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位。
这个特定阈值指的是 top, right, bottom 或 left 之一,换言之,指定 top, right, bottom 或 left 四个阈值其中之一,才可使粘性定位生效。否则其行为与相对定位相同。
sticky
:对象在常态时遵循常规流。它就像是relative
和fixed
的合体,当在屏幕中时按常规流排版,当卷动到屏幕外时则表现如fixed。该属性的表现是现实中你见到的吸附效果。
常用场景:当元素距离页面视口(Viewport,也就是fixed定位的参照)顶部距离大于 0px 时,元素以 relative
定位表现,而当元素距离页面视口小于 0px 时,元素表现为 fixed
定位,也就会固定在顶部。
代码:
{ position: -webkit-sticky; position: sticky; top: 0; }
如下图表现方式:
距离页面顶部大于20px
,表现为 position:relative
;
距离页面顶部小于20p
x,表现为 position:fixed
;
运用 position:sticky
实现头部导航栏固定
html代码:
<p class="con"> <p class="samecon"> <h2>标题一</h2> <p>这是一段文本</p> <p>这是一段文本</p> <p>这是一段文本</p> </p> <p class="samecon"> <h2>标题二</h2> <p>这是一段文本</p> <p>这是一段文本</p> <p>这是一段文本</p> </p> <p class="samecon"> <h2>标题三</h2> <p>这是一段文本</p> <p>这是一段文本</p> <p>这是一段文本</p> </p> <p class="samecon"> <h2>标题四</h2> <p>这是一段文本</p> <p>这是一段文本</p> <p>这是一段文本</p> </p> <p class="samecon"> <h2>标题五</h2> <p>这是一段文本</p> <p>这是一段文本</p> <p>这是一段文本</p> </p> <p class="samecon"> <h2>标题五六</h2> <p>这是一段文本</p> <p>这是一段文本</p> <p>这是一段文本</p> </p> </p>
CSS代码:
.samecon h2{ position: -webkit-sticky; position: sticky; top: 0; background:#ccc; padding:10px 0; }
同理,也可以实现侧边导航栏的超出固定。
生效规则
须指定 top, right, bottom 或 left
四个阈值其中之一,才可使粘性定位生效。否则其行为与相对定位相同。
并且 top
和 bottom
同时设置时,top
生效的优先级高,left
和 right
同时设置时,left
的优先级高。
设定为 position:sticky
元素的任意父节点的 overflow
属性必须是 visible
,否则 position:sticky 不会生效
。这里需要解释一下:
如果 position:sticky
元素的任意父节点定位设置为 overflow:hidden
,则父容器无法进行滚动,所以 position:sticky
元素也不会有滚动然后固定的情况。
如果 position:sticky
元素的任意父节点定位设置为 position:relative | absolute | fixed
,则元素相对父元素进行定位,而不会相对 viewprot
定位。
达到设定的阀值。这个还算好理解,也就是设定了 position:sticky
的元素表现为 relative
还是 fixed
sticky는 말 그대로 영어로 끈끈하다는 뜻이므로 끈끈한 포지셔닝이라고 부르겠습니다. 이 실험값의 구체적인 기능과 실제 시나리오에 대해 알아 보겠습니다.
이것은 위치:상대 및 위치:고정의 두 가지 위치 지정 기능을 결합한 특수 위치 지정이며 일부 특수한 시나리오에 적합합니다.
두 가지 포지셔닝 기능을 하나로 합친 것이 무엇인가요?
그러면 요소 위치 지정은 특정 임계값을 넘기 전의 상대 위치 지정이고 그 이후에는 고정 위치 지정입니다.
이 특정 임계값은 위쪽, 오른쪽, 아래쪽 또는 왼쪽 중 하나를 나타냅니다. 즉, 위쪽, 오른쪽, 아래쪽 또는 왼쪽의 4개 임계값 중 하나를 지정해야만 고정 위치 지정이 적용됩니다. 그렇지 않으면 동작은 상대 위치 지정과 동일합니다. 🎜🎜sticky
: 개체가 정상일 때 정상적인 흐름을 따릅니다. relative
와 fixed
의 조합과 같습니다. 화면에 있을 때는 일반적인 흐름에 따라 입력됩니다. 고정된 것처럼 동작합니다. 이 속성의 성능은 현실에서 볼 수 있는 흡착 효과입니다. 🎜🎜일반적인 시나리오: 요소와 페이지 상단 뷰포트(고정 위치 지정을 위한 참조인 뷰포트) 사이의 거리가 0px보다 큰 경우 요소는 relative
로 배치됩니다. 요소와 페이지 표시 영역 사이의 거리가 0px 미만이면 요소는 고정
위치 지정으로 작동하며 상단에 고정됩니다. 🎜🎜코드: 🎜🎜🎜🎜rrreee🎜는 다음 그림과 같이 표현됩니다. 🎜🎜는 페이지 상단에서 20px보다 큼
, 위치:상대
로 표현됩니다. 🎜🎜🎜🎜페이지 상단으로부터의 거리는 20p 미만
x(위치:고정
;🎜🎜 🎜🎜헤드 네비게이션 바 고정을 달성하려면 position:sticky
를 사용하세요 🎜🎜html 코드: 🎜🎜🎜🎜rrreee🎜CSS 코드: 🎜 🎜🎜🎜rrreee🎜 마찬가지로 측면 네비게이션 바도 고정을 넘어 구현이 가능합니다. 🎜🎜🎜효과적인 규칙🎜🎜상단, 오른쪽, 하단 또는 왼쪽
네 가지 임계값 중 하나를 지정해야 합니다. 효과. 그렇지 않으면 동작은 상대 위치 지정과 동일합니다. 🎜🎜 상단
및 하단
이 설정되었습니다. 동시에 top
이 적용되면 left
와 right
가 동시에 설정되면 left가 더 높습니다.
의 우선순위가 더 높습니다. 🎜🎜🎜position:sticky
로 설정 요소의 상위 노드에 대한 overflow
속성은 visible
이어야 하며, 그렇지 않으면 위치:고정 효과가 적용되지 않습니다
. 여기에 설명이 필요합니다: 🎜🎜position:sticky
의 상위 요소가 있는 경우 > 요소 노드 위치 지정이 overflow:hidden
으로 설정된 경우 상위 컨테이너는 스크롤할 수 없으므로 position:sticky
요소는 스크롤되지 않고 고정됩니다. 🎜🎜position:sticky
요소의 상위 노드 위치가 position:relative | 절대 고정
으로 설정된 경우 요소는 다음을 기준으로 배치됩니다. 대신 상위 요소는 viewprot
를 기준으로 배치됩니다. 🎜🎜🎜 position:sticky
가 있는 요소가 relative
또는 고정
으로 작동하도록 설정되었는지 여부는 요소가 임계값에 의해 결정된 설정에 도달합니다. 호환성🎜🎜🎜🎜🎜🎜🎜이 속성의 호환성은 그다지 좋지 않습니다. 이는 아직 실험적인 속성이며 W3C에서 권장하는 표준은 아닙니다. 🎜🎜관련 권장사항: 🎜🎜🎜🎜고정 바닥글 튜토리얼의 CSS 구현🎜🎜
위 내용은 position:sticky를 사용하여 고정 레이아웃 예제를 구현하는 CSS에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!