다중 열 균일 레이아웃 문제에 대한 CSS 완벽 호환 솔루션
문제 해결 시 호환성은 고려되지 않습니다. 질문이 거칠고 제약이 없습니다. 문제 해결에서 익숙하지 않다고 생각되는 CSS 속성이 있으면 빨리 공부하세요. .
계속 업데이트하고, 계속 업데이트하고, 계속 업데이트하고, 중요한 것을 세 번 말하세요.
6. 완전히 호환되는 다중 열 균일 레이아웃 문제
다음과 같은 다중 열 균일 레이아웃을 구현하는 방법( 그림은 컨테이너 너비를 보여주기 위한 것입니다. 포함되지 않음):
방법 1: display:flex
CSS3 유연한 상자(Flexible Box 또는 Flexbox)는 페이지가 다양한 화면 크기와 장치 유형에 적응해야 할 때 요소가 더 적절한 배열 동작을 갖도록 보장할 수 있는 레이아웃 방법입니다.
물론 모바일 애플리케이션에는 flex 레이아웃이 좋습니다. PC가 완벽하게 호환되어야 한다면 호환성이 부족하므로 여기에서는 생략하겠습니다.
방법 2: 의사 요소의 도움으로 text-align:justify
은 다음과 같이 정의됩니다. HTML
style:
<p class="container"> <p class="justify"> <i>1</i> <i>2</i> <i>3</i> <i>4</i> <i>5</i> </p> </p>
우리는 양쪽 끝에서 텍스트를 정렬하는 효과를 얻을 수 있는 text-align:justify가 있다는 것을 알고 있습니다.
text-align
CSS 속성은 인라인 콘텐츠(예: 텍스트)가 블록 상위 요소를 기준으로 정렬되는 방식을 정의합니다. text-align은 블록 요소 자체의 정렬을 제어하지 않고 인라인 콘텐츠의 정렬만 제어합니다.
text-align:justify
은 텍스트가 양쪽에 정렬된다는 의미입니다.
처음에는 다음 CSS를 사용하여 구현할 수 있을 것이라고 추측했습니다.
.justify{ text-align: justify; } .justify i{ width:24px; line-height:24px; display:inline-block; text-align:center; border-radius:50%; }
결과는 다음과 같습니다.
데모 찔러보기
예상한 결과를 얻지 못했고 소위 양쪽 끝 정렬을 달성하지 못했습니다. 이유를 검색한 결과 W3C에서 다음 설명을 찾았습니다.
마지막으로 수평 정렬 속성 중 하나는
justify
인데, 이는 자체적인 문제를 가져옵니다. 언어마다 하이픈 규칙이 다르기 때문에 CSS에는 하이픈 처리 방법에 대한 설명이 없습니다. 이러한 잠재적으로 불완전한 규칙을 조정하려고 시도하는 대신 사양에서는 문제를 무시합니다.
글쎄요, 위의 설명문을 읽어도 여전히 의미를 이해하지 못해서 계속해서 확인해 보니 그 이유는 다음과 같습니다.
text-align:justify
속성은 완벽하게 호환되지만 이를 사용하여 정렬을 수행하려면 모듈 사이에 [space/newline/tab]을 추가하여 작동하도록 주의해야 합니다.
즉, 모든 1 공백에는 공백, 줄 바꿈 또는 탭 문자가 하나 이상 있어야 합니다.
좋아, 동일한 CSS를 사용하여 HTML
구조를 업데이트해 보겠습니다.
<p class="container"> <p class="justify"> <i>1</i> <i>2</i> <i>3</i> <i>4</i> <i>5</i> </p> </p>
각 블록 중간에 개행 문자를 추가해 보세요. 결과는 다음과 같습니다.
啊哦,还是不行啊。
再寻找原因,原来是出在最后一个元素上面,然后我找到了 text-align-last
这个属性,text-align-last
属性规定如何对齐文本的最后一行,并且 text-align-last
属性只有在 text-align
属性设置为 justify
时才起作用。
尝试给容器添加 text-align-last:justify
:
.justify{ text-align: justify; text-align-last: justify; // 新增这一行 } .justify i{ width:24px; line-height:24px; display:inline-block; text-align:center; border-radius:50%; }
发现终于可以了,实现了多列均匀布局:
结束了?没有,查看一下 text-align-last
的兼容性:
但是一看兼容性,惨不忍睹,只有 IE8+ 和 最新的 chrome 支持 text-align-last
属性,也就是说,如果你不是在使用 IE8+ 或者 最新版的 chrome 观看本文,上面 Demo 里的打开的 codePen 例子还是没有均匀分布。
上面说了要使用 text-align:justify
实现多列布局,要配合 text-align-last
,但是它的兼容性又不好,真的没办法了么,其实还是有的,使用伪元素配合,不需要 text-align-last
属性。
我们给 class="justify"
的 p
添加一个伪元素:
.justify{ text-align: justify; } .justify i{ width:24px; line-height:24px; display:inline-block; text-align:center; border-radius:50%; } .justify:after { content: ""; display: inline-block; position: relative; width: 100%; }
去掉了 text-align-last: justify
了,增加一个伪元素,效果如下:
通过给伪元素 :after
设置 inline-block
设置宽度 100%
,配合容器的 text-align: justify
就可以轻松实现多列均匀布局了。再多配合几句 hack 代码,可以实现兼容到 IE6+ ,最重要的是代码不长,很好理解。
那么为什么使用了 :after 伪元素之后就可以实现对齐了呢?
原因在于 justify 只有在存在第二行的情况下,第一行才两端对齐,所以在这里,我们需要制造一个假的第二行,而 :after 伪元素正好再适合不过。
最终实现题目初始所示:
위 내용은 다중 열 균일 레이아웃 문제에 대한 CSS 완벽 호환 솔루션의 상세 내용입니다. 자세한 내용은 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)

뜨거운 주제











Vue.js에서 placeholder 속성은 사용자가 콘텐츠를 입력하지 않을 때 표시되는 입력 요소의 자리 표시자 텍스트를 지정하고 입력 팁이나 예제를 제공하며 양식 접근성을 향상시킵니다. 사용법은 입력 요소에 자리 표시자 속성을 설정하고 CSS를 사용하여 모양을 사용자 정의하는 것입니다. 모범 사례에는 입력과 관련성, 짧고 명확함, 기본 텍스트 방지, 접근성 고려 등이 포함됩니다.

스팬 태그는 텍스트에 스타일, 속성 또는 동작을 추가할 수 있습니다. 색상 및 글꼴 크기와 같은 스타일을 추가하는 데 사용됩니다. ID, 클래스 등의 속성을 설정합니다. 클릭, 호버 등과 같은 관련 동작 추가 처리 또는 인용을 위해 텍스트를 표시합니다.

CSS의 REM은 루트 요소(html)의 글꼴 크기에 상대적인 단위입니다. 여기에는 다음과 같은 특징이 있습니다. 루트 요소의 글꼴 크기를 기준으로 하며 상위 요소의 영향을 받지 않습니다. 루트 요소의 글꼴 크기가 변경되면 REM을 사용하는 요소가 그에 따라 조정됩니다. 모든 CSS 속성과 함께 사용할 수 있습니다. REM 사용의 장점은 다음과 같습니다. 반응성: 다양한 장치 및 화면 크기에서 텍스트를 읽을 수 있도록 유지합니다. 일관성: 웹사이트 전체에서 글꼴 크기가 일관되게 유지되어야 합니다. 확장성: 루트 요소 글꼴 크기를 조정하여 전역 글꼴 크기를 쉽게 변경할 수 있습니다.

Vue에 이미지를 도입하는 방법에는 URL, 필수 함수, 정적 파일, v-bind 지시어 및 CSS 배경 이미지 등 5가지 방법이 있습니다. 동적 이미지는 Vue의 계산된 속성이나 리스너에서 처리할 수 있으며, 번들 도구를 사용하여 이미지 로딩을 최적화할 수 있습니다. 경로가 올바른지 확인하세요. 그렇지 않으면 로딩 오류가 나타납니다.

노드는 HTML 요소를 나타내는 JavaScript DOM의 엔터티입니다. 이는 페이지의 특정 요소를 나타내며 해당 요소에 액세스하고 조작하는 데 사용될 수 있습니다. 일반적인 노드 유형에는 요소 노드, 텍스트 노드, 주석 노드 및 문서 노드가 포함됩니다. getElementById()와 같은 DOM 메서드를 통해 노드에 액세스하고 속성 수정, 하위 노드 추가/제거, 노드 삽입/교체, 노드 복제 등의 작업을 수행할 수 있습니다. 노드 순회는 DOM 구조 내에서 탐색하는 데 도움이 됩니다. 노드는 페이지 콘텐츠, 이벤트 처리, 애니메이션 및 데이터 바인딩을 동적으로 생성하는 데 유용합니다.

브라우저 플러그인은 일반적으로 다음 언어로 작성됩니다. 프런트엔드 언어: JavaScript, HTML, CSS 백엔드 언어: C++, Rust, WebAssembly 기타 언어: Python, Java

1. 먼저 왼쪽 하단에 있는 설정 아이콘을 열고 설정 옵션을 클릭합니다. 2. 그런 다음 점프된 창에서 CSS 열을 찾습니다. 3. 마지막으로 알 수 없는 속성 메뉴의 드롭다운 옵션을 오류 버튼으로 변경합니다. .

Vue.js에서 ref는 JavaScript에서 DOM 요소(하위 구성 요소 및 DOM 요소 자체에 액세스 가능)를 참조하는 데 사용되는 반면 id는 HTML id 속성(CSS 스타일, HTML 마크업 및 JavaScript 조회에 사용할 수 있음)을 설정하는 데 사용됩니다. ).
