당신은 (당신이 이미하고있는대로) position:fixed
및 top:0
과 장소에 네비게이션 바에을 해결하고, 주어진 값의 height
를 설정 한 다음 목표 앵커의 각각의 padding-top
속성에 같은 값을 적용 할 수 있습니다.
이렇게하면 탐색 링크를 클릭 할 때 앵커 요소의 상단이 브라우저의 뷰포트 상단으로 이동하고 탐색 막대가 부분적으로 덮일 때까지 (z-index:1
이 탐색 막대에 설정되어 있기 때문에)),이 덮여있는 부분은 내용이없는 패딩 영역이되며 일반적으로 보이지 않습니다 (테두리 나 배경색이 추가되지 않는 한). 따라서 콘텐츠는 탐색 표시 줄 바로 다음에서 올바르게 시작됩니다.
여기 예제 코드입니다 :
CSS :
#navbar
{
position: fixed;
top: 0;
z-index: 1;
height: 1em;
margin: 0;
}
.heading
{
padding-top: 1em;
}
- HTML :
<div id="content">
<h2 id="one" class="heading">Section 1</h2>
...
<h2 id="two" class="heading">Section 2</h2>
...
<h2 id="three" class="heading">Section 3</h2>
...
</div>
<div id="navbar">
<a href="#one">Section 1</a>
<a href="#two">Section 2</a>
<a href="#three">Section 3</a>
</div>
는 물론, 이것은 동적 메뉴 바의 높이의 문제가 해결되지 않습니다, Bryan이 JavaScript를 사용한다는 제안은 아마도 이것을 구현하는 가장 쉬운 방법 일 것입니다.
ps - id'd 요소에 display:block
또는 display:inline-block
이있는 경우 패딩이 페이지 레이아웃에 영향을 미치므로 바람직하지 않을 수 있습니다.
감사합니다. 높이를 모르는 경우 어떻게해야합니까? – elmarco
javascript를 사용하여 탐색 모음의 높이를 가져 와서 해당 값을 포함하는 요소의 '패딩 상단'으로 설정합니다. –