수평 및 수직 센터링 효과를 달성하는 CSS(3) 요약
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











부트 스트랩 버튼을 사용하는 방법? 부트 스트랩 CSS를 소개하여 버튼 요소를 만들고 부트 스트랩 버튼 클래스를 추가하여 버튼 텍스트를 추가하십시오.

부트 스트랩 분할 라인을 만드는 두 가지 방법이 있습니다 : 태그를 사용하여 수평 분할 라인이 생성됩니다. CSS 테두리 속성을 사용하여 사용자 정의 스타일 분할 라인을 만듭니다.

답 : 부트 스트랩의 날짜 선택기 구성 요소를 사용하여 페이지에서 날짜를 볼 수 있습니다. 단계 : 부트 스트랩 프레임 워크를 소개하십시오. HTML에서 날짜 선택기 입력 상자를 만듭니다. 부트 스트랩은 선택기에 스타일을 자동으로 추가합니다. JavaScript를 사용하여 선택한 날짜를 얻으십시오.

부트 스트랩 프레임 워크를 설정하려면 다음 단계를 따라야합니다. 1. CDN을 통해 부트 스트랩 파일 참조; 2. 자신의 서버에서 파일을 다운로드하여 호스팅하십시오. 3. HTML에 부트 스트랩 파일을 포함; 4. 필요에 따라 Sass/Less를 컴파일하십시오. 5. 사용자 정의 파일을 가져옵니다 (선택 사항). 설정이 완료되면 Bootstrap의 그리드 시스템, 구성 요소 및 스타일을 사용하여 반응 형 웹 사이트 및 응용 프로그램을 만들 수 있습니다.

Bootstrap에 이미지를 삽입하는 방법에는 여러 가지가 있습니다. HTML IMG 태그를 사용하여 이미지를 직접 삽입하십시오. 부트 스트랩 이미지 구성 요소를 사용하면 반응 형 이미지와 더 많은 스타일을 제공 할 수 있습니다. 이미지 크기를 설정하고 IMG-Fluid 클래스를 사용하여 이미지를 적응할 수 있도록하십시오. IMG 통과 클래스를 사용하여 테두리를 설정하십시오. 둥근 모서리를 설정하고 IMG 라운드 클래스를 사용하십시오. 그림자를 설정하고 그림자 클래스를 사용하십시오. CSS 스타일을 사용하여 이미지를 조정하고 배치하십시오. 배경 이미지를 사용하여 배경 이미지 CSS 속성을 사용하십시오.

부트 스트랩의 날짜를 확인하려면 다음 단계를 따르십시오. 필요한 스크립트와 스타일을 소개하십시오. 날짜 선택기 구성 요소를 초기화합니다. 검증을 활성화하려면 데이터 BV 날짜 속성을 설정합니다. 검증 규칙 (예 : 날짜 형식, 오류 메시지 등) 구성; 부트 스트랩 검증 프레임 워크를 통합하고 양식이 제출 된 경우 날짜 입력을 자동으로 확인하십시오.

vue.js에서 bootstrap 사용은 5 단계로 나뉩니다 : Bootstrap 설치. main.js.의 부트 스트랩 가져 오기 부트 스트랩 구성 요소를 템플릿에서 직접 사용하십시오. 선택 사항 : 사용자 정의 스타일. 선택 사항 : 플러그인을 사용하십시오.
