수직 센터링을 달성하기 위해 일반적으로 사용되는 4가지 CSS 방법

php中世界最好的语言
풀어 주다: 2018-03-21 13:20:40
원래의
2805명이 탐색했습니다.

이번에는 수직 센터링을 위해 일반적으로 사용되는 4가지 CSS 방법을 소개하겠습니다. CSS를 사용하여 수직 센터링을 구현할 때 주의할 점은 무엇인가요?

line-height한 줄의 텍스트를 세로로 가운데 맞추려면한 줄의 텍스트를 세로로 가운데 맞추려면 높이와 줄 높이를 같은 값으로 설정해야 한다고 생각했는데, 거기에 실제로는 높이를 설정할 필요가 없습니다. 실제로 텍스트 자체는 한 줄의 중앙에 표시됩니다. 높이를 설정하지 않으면 행 높이가 높이를 확장합니다.

<style>
.test{
    line-height: 50px;
    background-color: lightblue;
}    
</style>
<p>测试文字</p>
로그인 후 복사

설정

vertical-align:가운데로 수직 중심 맞추기【1】상위 요소의 표시를 table-cell

으로 설정합니다. table-cell 요소 align:middle은 모든 하위 요소를 세로로 가운데에 배치할 수 있습니다. 이는 테이블의 셀 수직 중앙 정렬과 유사합니다

[참고] IE7 브라우저에서 지원하는 경우 테이블 구조로 변경할 수 있습니다

[참고] table-cell로 설정된 p는 부동 또는 사용할 수 없습니다.

절대 위치 지정

, 부동 또는 절대 위치 지정으로 인해 요소가 블록 수준 요소 특성을 가지게 되어 테이블 셀 요소의 수직 정렬 기능이 손실되기 때문입니다.

플로팅 또는 절대 위치 처리가 필요한 경우 외부에 또 다른 p 레이어를 배치해야 합니다.

<style>
.parent{
  display: table-cell;
  vertical-align: middle;
}
</style>
<p>
    </p><p>我是有点长的有点长的有点长的有点长的测试文字</p>   
로그인 후 복사

수직 센터링을 달성하기 위해 일반적으로 사용되는 4가지 CSS 방법【2】자식 요소가 이미지인 경우 높이 대신 상위 요소의 행 높이를 설정하고, 상위 요소의 글꼴 크기를 0으로 설정합니다.

vertical-align: 중간에 대한 설명은 요소의 중간점이 상위 요소의 기준선에 상위 요소의 문자 X 높이의 1/2을 더한 값과 정렬된다는 것입니다. 문자 X가 전각 상자에서 세로 중앙에 있지 않고 각 글꼴에서 문자 X의 위쪽 및 아래쪽 위치가 일치하지 않기 때문입니다.

그래서 글꼴 크기가 클수록 차이가 더 확연해집니다. 글꼴 크기가 0이면 문자 X의 글꼴 크기를 0으로 설정하는 것과 같으므로 완전한 수직 중앙 정렬이 가능합니다.

<style>
.parent{
  line-height: 100px;
  font-size: 0;
}
.child{
  vertical-align: middle;
}
</style>
<p>
  <img  alt="수직 센터링을 달성하기 위해 일반적으로 사용되는 4가지 CSS 방법" >  
</p>
로그인 후 복사

수직 센터링을 달성하기 위해 일반적으로 사용되는 4가지 CSS 방법【3】새 요소를 추가하여 수직 센터링 효과 달성

새 요소의 높이를 상위 요소의 높이로, 너비를 0으로 설정하고, 수직 센터링도 수직으로 설정- align:middle의 인라인 블록 요소. 두 요소 사이의 공간이 구문 분석되므로 상위 수준에서 글꼴 크기:0을 설정한 다음 구조적 요구 사항이 엄격하지 않은 경우 글꼴 크기를 하위 수준에서 필요한 값으로 설정해야 합니다. 한 줄에 두 요소가 있으면 글꼴 크기:0을 설정할 필요가 없습니다.

<style>
.parent{
  height: 100px;
  font-size: 0;
}
.child{
  display: inline-block;
  font-size: 20px;
  vertical-align: middle;
}
.childSbling{
  display: inline-block;
  height: 100%;
  vertical-align: middle;
}
</style>
<p>
  </p><p>我是比较长的比较长的多行文字</p>
  <i></i> 
로그인 후 복사

세 가지 아이디어: 절대 위치 지정을 통해 수직 센터링 달성

[1] 하위 요소의 높이가 불확실한 경우 top50%와 TranslateY(-50%)를 사용하여 센터링 효과를 얻습니다.

번역 기능의 백분율은 자체 높이를 기준으로 하므로 top:50%와 TranslateY(-50%)를 결합하면 센터링 효과를 얻을 수 있습니다.

[참고] IE9 브라우저는 이를 지원하지 않습니다.

[참고] 하위 요소의 높이를 알고 있는 경우 번역() 함수는 음수 높이 값인 margin-top으로 대체될 수도 있습니다.

<style>
.parent{
  position:relative;
}
.child{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
</style>
<p>
  </p><p>测试文字</p>
로그인 후 복사

【2】자식 요소의 높이가 고정된 경우 절대 위치 지정 상자 모델 속성을 결합하여 센터링 효과를 얻습니다.

<style>
.parent{
  position: relative;
}
.child{
 position: absolute;
 top: 0;
 bottom: 0;
 margin: auto 0;
 height: 50px;
}
</style>
<p>
  </p><p>测试文字</p>
로그인 후 복사

수평 중앙 정렬에서 바깥쪽 요소의 레이어는 레이어 p로 설정되고 절대값으로 설정되며 요소의 음수 여백-왼쪽 또는 상대 음수 왼쪽 속성을 설정하여 수평 중심 효과를 얻습니다. 그러나 마진은 포함 블록의 너비에 상대적이므로 margin-top:-50%는 높이의 -50% 대신 너비를 가져오므로 포함 블록의 높이인 상대 백분율 값에는 적합하지 않습니다. is auto 이 경우 크롬, 사파리, IE8+ 브라우저는 요소의 상위 백분율 값 설정을 지원하지 않으므로 불가능합니다.

아이디어 4:

플렉스 박스 모델플렉스를 사용하여 수직 센터링을 달성하세요.

[注意] IE9-浏览器不支持

【1】在伸缩容器上设置侧轴对齐方式align-items: center

<style>
.parent{
  display: flex;
  align-items: center;
}
</style>
<p>
    </p><p>测试文字</p>   
로그인 후 복사

【2】在伸缩项目上设置margin: auto 0

<style>
.parent{
  display: flex;
}
.child{
  margin: auto 0;
}
</style>
<p>
    </p><p>测试文字</p>   
로그인 후 복사

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

css3的pointer-events使用详解

focus-within的使用详解

CSS3做出无缝轮播广告

위 내용은 수직 센터링을 달성하기 위해 일반적으로 사용되는 4가지 CSS 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿