CSS는 수평 및 수직 중앙 정렬을 구현합니다.
CSS에서 수평 중앙 정렬을 구현하는 것은 비교적 간단합니다. 일반적으로 인라인 요소 또는 인라인 블록 요소의 수평 중심을 달성하려는 경우 블록의 수평 중심을 달성하려면 상위 블록 수준 요소에 text-align: center
를 설정할 수 있습니다. -레벨 요소, magin: auto
를 설정할 수 있습니다. 그리고 수직 중앙 정렬을 달성하려는 경우 쉽지 않을 수 있습니다. text-align: center
实现;如果想实现块级元素的水平居中对齐,可以设置magin: auto
。而如果想实现垂直居中对齐,或许就不太容易。
以下,我总结了一些实现水平垂直居中对齐的一些方法。如果有什么不足之处,望指出。
水平垂直居中的实现可以分为两大内容,一是高度随内容自适应变化,一是固定高度。
固定高度实现水平垂直居中
方法一
最常用的方法是使用height + line-height的方式,设置同样的值,配合text-align的使用,即可实现文本的水平垂直居中对齐
<p class="container">Hello World!</p>.container { width: 300px; height: 300px; line-height: 300px; text-align: center; border: 1px solid red; }
缺点:固定高度,无法实现两行文本的垂直居中对齐
方法二
使用绝对定位的方法,配合margin负值使用。可以实现元素的水平垂直居中效果。
<p class="container">Hello World!</p>.container { position: absolute; left: 50%; top: 50%; margin-left: -150px; margin-top: -150px; width: 300px; height: 300px; border: 1px solid red; }
当然了,可以使用CSS3的calc函数简化上面的CSS代码
.container { position: absolute; left: calc(50% - 150px); top: calc(50% - 150px); width: 300px; height: 300px; border: 1px solid red; }
缺点:固定高度,高度无法自适应内容。元素脱离文档流。
方法三
添加空标签的方式,并且使该元素浮动,脱离文档流,避免影响其他元素的布局。
<p class="space"></p> <p class="container"> <p class="inner"> hello world! </p> </p>.space { float: left; height: 50%; margin-top: -150px; } .container { clear: both; height: 300px; border: 1px solid red; position: relative; }
缺点:这种方式下的垂直居中需要固定高度,无法实现内容自适应高度。同时,出现多余的空p元素。
高度自适应实现水平垂直居中
方法一
CSS3中有transform属性,此属性下有一个translate移动函数,此函数接受两个参数。如果两个参数都为百分比值,此时会基于自身宽度和高定进行移动。此函数移动的机制同position:relative
相似。
<p class="container">Hello World!</p>.container { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); // 自身宽度和高度的一半 border: 1px solid red; }
优点:无需定高度。高度随内容自适应。
缺点:元素脱离文档流。如果需要居中的元素已经在高度上超过了视口,那它的顶部会被视口裁切掉。
方法二
我们知道,可以使用margin来实现水平居中对齐,而无法使用margin实现垂直居中的原因在于margin的百分比值是基于宽度计算的。
<p class="container">Hello World!</p>.container { width: 300px; margin: 50% auto 0; border: 1px solid red; tarnsform: translateY(-50%); }
上面代码中,由于百分比是基于父元素(此时的父元素为body元素)的宽度计算的,所以此时的50%加上translate负值并不能实现垂直居中布局。
不过,CSS中存在一个vh(视口高度),也就相当于DOM中document.body.clientHeight
或者document.documentElement.clientHeight
的高度,1vh=1%,即1vh等于视口高度的1%。vh单位的浏览器兼容性问题可看vh。因此,以上代码可改为如下,即可实现水平垂直居中效果。
<p class="container">Hello World!</p>.container { width: 300px; margin: 50vh auto 0; transform: translateY(-50%); border: 1px solid red; }
方法三
CSS3中存在flex布局(伸缩布局盒模型,也叫弹性布局盒模型),对于flex熟悉的朋友来说,使用flex实现水平垂直居中是再简单不过的了。
<p class="container"> <p class="inner"> <p>hello world!</p> </p> </p>.container { display: flex; height: 100vh; } .inner { margin: auto; }
当我们使父元素display: flex
时,margin: auto
不仅可以水平居中,也能够实现垂直居中。这是因为auto外边距会平分水平或垂直方向上的额外空间。
当然,也可以使用justify-content: center
来定义弹性项目主轴的对齐方式,align-items: center
来定义弹性项目侧轴的对齐方式。
<p class="container"> <p class="inner"> <p>hello world</p> </p> </p>.container { display: flex; justify-content: center; align-items: center; height: 100vh; }
方法四
可以使用display: table
来模拟表格,并给子元素设置display: table-cell
,让其成为表格的某个单元格,同时设置vertical-align: middle
가로 및 세로 센터링 구현은 크게 두 가지 콘텐츠로 나눌 수 있습니다. 하나는 콘텐츠에 따라 높이가 적응적으로 변경되고, 다른 하나는 고정 높이입니다.
고정 높이로 수평 및 수직 센터링 달성
방법 1
가장 일반적인 방법은 height + line-height를 사용하여 동일한 값을 설정하고 text-align을 사용하여 텍스트 정렬을 수행하는 것입니다. 및 수직 중앙 정렬
🎜🎜🎜<p class="container"> <p class="inner"> hello world! </p> </p>.container { display: table; /* 让p以表格的形式渲染 */ width: 100%; border: 1px solid red; } .inner { display: table-cell; /* 让子元素以表格的单元格形式渲染 */ text-align: center; vertical-align: middle; }🎜단점: 높이가 고정되어 텍스트 두 줄의 수직 중앙 정렬을 달성할 수 없습니다.🎜
방법 2
🎜절대 위치 지정 방법을 사용하고 음수 여백 값을 사용합니다. 요소의 수평 및 수직 센터링 효과를 얻을 수 있습니다. 🎜🎜🎜🎜rrreee🎜물론 CSS3의 calc 기능을 사용하면 위 CSS 코드를 단순화할 수 있습니다🎜🎜🎜🎜rrreee🎜단점: 높이가 고정되어 있어 콘텐츠에 맞게 높이를 조정할 수 없습니다. 요소가 문서 흐름에서 벗어납니다. 🎜방법 3
🎜빈 태그를 추가하고 요소를 문서 흐름 밖으로 띄워 다른 요소의 레이아웃에 영향을 주지 않도록 합니다. 🎜🎜🎜🎜rrreee🎜단점: 이러한 방식으로 수직 센터링을 수행하려면 고정 높이가 필요하며 콘텐츠 적응 높이를 달성할 수 없습니다. 동시에 중복된 빈 p 요소가 나타납니다. 🎜🎜가로 및 세로 센터링의 높이 적응 구현🎜방법 1
🎜 CSS3에는 변환 속성이 있습니다. 이 속성 아래에는 이동 이동 기능이 있습니다. 두 매개변수가 모두 백분율 값인 경우 이동은 자체 너비와 높이를 기반으로 합니다. 이 함수의 이동 메커니즘은position:relative
와 유사합니다. 🎜🎜🎜🎜rrreee🎜장점: 높이를 설정할 필요가 없습니다. 높이는 내용에 맞게 조정됩니다. 🎜단점: 요소가 문서 흐름을 벗어났습니다. 중앙에 정렬해야 하는 요소의 높이가 이미 뷰포트의 높이를 초과하는 경우 해당 요소의 상단은 뷰포트에 의해 잘립니다. 🎜방법 2
🎜여백을 사용하여 수평 중앙 정렬을 달성할 수 있다는 것을 알고 있지만, 수직 중앙 정렬에 여백을 사용할 수 없는 이유는 여백의 백분율 값이 너비를 기준으로 계산되기 때문입니다. 🎜🎜🎜🎜rrreee🎜위 코드에서는 상위 요소(이때 상위 요소가 body 요소)의 너비를 기준으로 백분율을 계산하므로, 이때 50%에 번역의 음수 값을 더한 값은 계산할 수 없습니다. 세로 중앙 레이아웃을 구현합니다. 🎜🎜그러나 CSS에는 DOM의document.body.clientHeight
또는 document.documentElement.clientHeight
의 높이와 동일한 vh(뷰포트 높이)가 있습니다. , 1vh =1%, 즉 1vh는 뷰포트 높이의 1%와 같습니다. vh 장치의 브라우저 호환성 문제는 vh를 참조하세요. 따라서 위의 코드를 다음과 같이 변경하면 수평 및 수직 센터링 효과를 얻을 수 있습니다. 🎜🎜🎜🎜rrreee방법 3
🎜 CSS3에는 flex 레이아웃(탄성 레이아웃 상자 모델이라고도 불리는 접이식 레이아웃 상자 모델)이 있습니다. Flex를 사용하여 수평 및 수직을 구현하는 방법입니다. 센터링이 이보다 더 간단할 수는 없습니다. 🎜🎜🎜🎜rrreee🎜부모 요소를display: flex
로 만들면 margin: auto
를 가로 중앙에 맞출 수 있을 뿐만 아니라 세로 중앙에도 맞출 수 있습니다. 이는 자동 여백이 추가 공간을 수평 또는 수직으로 양분하기 때문입니다. 🎜🎜물론 justify-content: center
를 사용하여 가변 항목의 주축 정렬을 정의하고 align-items: center
를 사용하여 유연한 항목의 측면 축 정렬. 🎜🎜🎜🎜rrreee방법 4
🎜display: table
을 사용하여 테이블을 시뮬레이션하고 display: table-cell
을 하위 항목으로 설정할 수 있습니다. 요소를 테이블의 셀로 만들고 vertical-align: middle
을 설정하여 수직 중앙 레이아웃을 구현합니다🎜🎜🎜🎜rrreee🎜 🎜🎜이 방법을 사용하면 키. 수평 및 수직 센터링 효과를 얻으려면 높이를 지정하거나 높이를 지정하지 않아도 됩니다. 🎜위 내용은 수평 및 수직 센터링 효과를 달성하는 CSS(3) 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

CSS가있는 커스텀 커서는 훌륭하지만 JavaScript를 사용하여 다음 단계로 가져갈 수 있습니다. JavaScript를 사용하면 커서 상태를 전환하고 커서 내에 동적 텍스트를 배치하고 복잡한 애니메이션을 적용하며 필터를 적용 할 수 있습니다.

2025 년에 서로를 ricocheting하는 요소가있는 대화식 CSS 애니메이션은 CSS에서 Pong을 구현할 필요가 없지만 CSS의 유연성과 힘이 증가하는 것은 LEE의 의심을 강화합니다.

CSS 배경 필터 속성을 사용하여 사용자 인터페이스 스타일에 대한 팁과 요령. 여러 요소들 사이에 필터를 배경으로 배경으로 배경으로하는 방법을 배우고 다른 CSS 그래픽 효과와 통합하여 정교한 디자인을 만듭니다.

글쎄, SVG '의 내장 애니메이션 기능은 계획대로 이상 사용되지 않았다. 물론 CSS와 JavaScript는 부하를 운반 할 수있는 것 이상이지만 Smil이 이전과 같이 물에서 죽지 않았다는 것을 아는 것이 좋습니다.

예, 텍스트-랩을위한 점프 : Safari Technology Preview의 예쁜 착륙! 그러나 Chromium 브라우저에서 작동하는 방식과는 다른 점을 조심하십시오.

이 CSS- 트릭 업데이트는 Almanac, 최근 Podcast 출연, 새로운 CSS 카운터 가이드 및 귀중한 컨텐츠에 기여하는 몇 가지 새로운 저자의 추가 진전을 강조합니다.

대부분의 경우 사람들은 Tailwind ' S 단일 프로퍼 유틸리티 중 하나 (단일 CSS 선언을 변경)와 함께 Tailwind ' s @apply 기능을 보여줍니다. 이런 식으로 선보일 때 @apply는 전혀 약속하는 소리가 들리지 않습니다. 그래서 Obvio

바보처럼 배포하는 것은 배포하는 데 사용하는 도구와 복잡성에 대한 보상과 복잡성이 추가됩니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.
