수평 센터링은 일반적으로 사용되는 레이아웃 방법 중 하나입니다. 크게 인라인 요소의 센터링과 블록 요소의 센터링으로 나누어진다. 블록 요소의 센터링도 고정 너비 센터링과 가변 너비 센터링으로 구분됩니다. 인라인 요소의 중앙 정렬은 text-align:center를 사용하여 수행할 수 있습니다. 너비가 알려진 블록 요소의 중앙 정렬은 절대 위치 지정을 사용하고
여백을 음수 값으로 설정하여 수행할 수 있습니다. 너비의 절반. 그러나 가변 너비 센터링은 위의 두 가지보다 더 일반적으로 사용되며 페이지 번호 표시 및 기타 장소에서 가변 너비 센터링을 사용해야 하는 경우가 많습니다. 블록 요소를 사용했습니다.
1. 라벨 중첩 오프셋
구현 원칙:
고정 너비 센터링 구현과 관련: 첫 번째 오프셋 화면 중앙으로 이동하고 여백 방향을 너비의 절반만큼 오프셋되도록 설정합니다. 그렇다면 이 아이디어를 사용하여 먼저 화면 오른쪽 절반으로 50%를 오프셋한 다음 반대 방향으로 다시 오프셋하는 방법을 생각해 볼 수 있습니까? 구현하기 더 어려운 것은 너비가 무엇인지 모르는 것입니다. 또한 부모의 너비와 자식의 너비가 동일하다면 백분율을 사용하면 문제를 해결할 수 있다고 생각했습니다. 그렇다면 상위 너비를 단어 너비와 동일하게 만드는 방법은 무엇입니까? float의 래핑 속성 활용: 상위 요소가 부동이고 너비와 높이가 설정되지 않은 경우 가능한 한 하위 요소를 래핑하려고 시도합니다.
구현 코드:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>不定宽度水平居中</title> <style> body{ background-color: #e5da31; } .container{ position: absolute; /*脱离文档流,其宽度将由子元素的宽度决定*/ left:50%; } .content{ position: absolute; left:-50%; background-color: #2ecc71; } </style> </head> <body> <p class="container"> <p class="content">标签嵌套</p> </p> </body> </html>
구현 효과:
장점과 단점:
단점은 확실합니다. 문서 내용과 관련 없는 태그를 작성해야 합니다. 코드 몇 줄만 추가하면 호환성이 좋습니다. IE6+ 브라우저
2.flex-box 레이아웃
구현 원칙:
먼저 플렉스 컨테이너를 정의한 다음 콘텐츠 정렬을 가운데 정렬로 설정
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>不定宽度水平居中</title> <style> body { background-color: #e5da31; } .container { display: flex; /*定义一个flex容器*/ justify-content: center; /*定义容器的空间没有被全部占用时,内容的对其方式*/ } .content{ background-color: #2ecc71; } </style> </head> <body> <p class="container"> <p class="content">标签嵌套</p> </p> </body> </html>
효과 달성 :
장단점 분석 :
구현이 가장 간단하지만, flex 호환성 때문에 성능이 좋지 않으니, 저사양 브라우저와의 호환성이 필요한 경우에는 주의해서 사용하세요.
3. 인라인 레이아웃
구현 원칙:
text-align:center는 인라인 요소를 수평으로 중앙에 배치할 수 있습니다. 블록 요소를 인라인 요소로 변경하면 text-align을 사용하여 수평 중앙에 배치할 수 있습니다.
구현 코드:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>不定宽度水平居中</title> <style> body{ background-color: #e5da31; } .container{ text-align:center; } .content{ display: inline; background-color: #2ecc71; } </style> </head> <body> <p class="container"> <p class="content">标签嵌套</p> </p> </body> </html>
구현 효과:
장단점 분석 :
원래 텍스트 정렬을 수정하는 데 사용되는 text-align을 사용하여 가로 가운데 정렬을 수행하는 것은 항상 약간 어색하게 느껴집니다. 이 외부 컨테이너도 중복되지만 그렇지 않습니다. 현재로서는 신체의 다른 요소에 부분적으로 영향을 미칩니다. 또한 호환성이 좋아 IE6+에서도 정상적으로 표시가 가능합니다.
위는 편집자가 가져온 CSS 수평 센터링에 대한 작은 토론의 전체 내용입니다. PHP 중국어 웹 사이트를 지원하시기 바랍니다~
위 내용은 CSS 수평 센터링 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!