이 글은 모바일 단말기에서 고정된 요소가 표시되지 않는 문제를 해결하는 방법을 소개합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
지난 몇 주 동안 회사 앱용 html5 중첩 페이지를 만들었습니다. 페이지가 복잡하지 않고 많은 내용이 표시됩니다. 하단에 바닥글이 있습니다.
html 구조는 다음과 같습니다
<style> .main{ position: absolute; top: 0; bottom: 88px; left: 0; width: 100%; overflow-y: auto; } footer{ position: fixed; left: 0; bottom: 0; width: 100%; } <style> <body> <div class="main"> ... </div> <footer></footer> </body>
이후. 콘텐츠 디버깅이 완료되고 나중에 다른 프로젝트가 삽입되었습니다. 앱 개발자가 페이지 스크롤을 모니터링하라고 지시하고 위치 지정 레이아웃을 사용하지 말라고 요청했습니다. 나는 페이지에 입력을 위한 공간이 없고 돌아다니는 고정된 요소가 없다는 것을 알았습니다. 그래서 메인 부분을 일반 레이아웃으로 변경했는데 버그가 있었습니다.
Android에서는 모든 것이 정상입니다. 가끔 IOS10에서는 페이지 진입 시 바닥글이 표시되지 않고 드래그 또는 더블클릭해야만 표시되는 경우가 있습니다. (다른 버전의 IOS 테스트에서는 일부 정상이라고 합니다.)
이 문제가 발생했을 때 가장 먼저 생각한 것은 바닥글의 Z-index를 늘려서 1000으로 설정하는 것이었지만 결과는 쓸모가 없습니다. 표시되지 않는 페이지의 내용이 매우 짧고 바닥글 위치에 도달하지 않는 것을 주의 깊게 관찰하세요. 본문 높이의 문제인 것 같습니다. 본문에 스타일 디버깅을 추가했습니다.
background: #fafafa; min-height: 100vh;
배경 전체 페이지가 회색으로 바뀌었는데 여전히 바닥글이 표시되지 않습니다
동료들과 논의한 결과, 처음에 바닥글을 클릭하거나 터치한 후 페이지가 렌더링되지 않았습니다. - 바닥글을 렌더링했는데 정상이었습니다.
그 당시에는 거의 온라인 상태였습니다. 문제 없이 빨리 버그를 해결하기 위해 tanslateZ가 바닥글에 설정되었습니다. 이는 독립적인 레벨을 만드는 것과 같습니다.
-webkit-transform: translateZ(1px) transform: translate(1px)
페이지에 탄력적인 레이어도 있습니다. z-index가 설정되어 있고 바닥글이 번역되었습니다. 탄성 레이어가 이를 덮을 수 없어 tranzlateZ 수준이 더 높다는 것을 나타냅니다. 탄성 레이어가 Z(2px)로 이동하도록 설정되어 있으면 정상입니다
이 방법은 그다지 우아하지는 않지만 레이아웃이 변경되지 않고 긴급 상황에도 적용할 수 있다는 장점이 있습니다
추천 관련 기사:
Holy CSS 소개의 성배 레이아웃 및 이중 비행 날개 레이아웃(코드 포함)
CSS에서 부동 요소 줄 바꿈을 구현하는 방법위 내용은 모바일 단말기에서 고정 요소가 표시되지 않는 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!