프런트 엔드에서 이미지를 커팅하다 보면 초보자에게는 생소할 수 있는 이미지 레이아웃을 자주 접하게 됩니다. 다음으로 3행 3열 그림 목록을 사용하여 일반적으로 사용되는 두 가지 그림 자르기 방식을 소개하겠습니다.
플로트 레이아웃
display:inline-block 레이아웃
먼저 float 레이아웃 방식에 대해 이야기해 보겠습니다.
일반적으로 저는 ul li 레이아웃
<ul> <li><img src="./images/1.jpg"></li> <li><img src="./images/2.jpg"></li> <li><img src="./images/3.jpg"></li> <li><img src="./images/4.jpg"></li> <li><img src="./images/5.jpg"></li> <li><img src="./images/6.jpg"></li> <li><img src="./images/7.jpg"></li> <li><img src="./images/8.jpg"></li> <li><img src="./images/9.jpg"></li> </ul>
을 사용한 다음 각 li 요소의 너비를 설정하고 왼쪽에 띄웁니다. 여기서 각 행은 3개의 그림을 표시해야 하므로 각 그림의 너비는 백분율(100/3=33.3%)을 사용하여 계산할 수 있습니다.
li { list-style: none; float: left; width: 33.3%;/*三列图片排列*/ }
각 img 태그의 너비는 100%로 설정되어 li의 전체 너비를 차지하며, 이미지 변형을 방지하기 위해 높이가 적응됩니다
li { list-style: none; float: left; width: 33.3%;/*三列图片排列*/ } li img { width: 100%; }
자, 효과를 살펴보세요.
왜 우리가 생각했던 것과 다른가요? 이 시점에서 목록은 혼란스럽습니다. 걱정하지 마세요. 이미지의 크기가 다르기 때문입니다. 프로젝트 내 이미지의 크기가 너무 다를 경우 상위 요소에 고정 높이를 설정하고 숨김 이상으로 설정하는 것이 좋습니다. 그러나 이미지 크기가 크게 다르지 않은 경우 적응력이 높은 목적을 달성하려면 height: auto;를 설정하는 것이 좋습니다. 예 학생들은 상단 대신 여백 상단을 사용하는 것을 생각할 수 있습니다. 여기서 주목해야 할 점은 margin-top과 margin-bottom의 비율은 일반적으로 높이가 아닌 컨테이너 요소의 너비를 기준으로 계산된다는 점입니다. 패딩
도 마찬가지입니다.
여기서 기본적으로 행 3개, 열 3개의 기본 이미지 레이아웃이 완성되었습니다. 그러나 초보자가 간과할 수 있는 숨겨진 문제가 있습니다. 즉, 하위 요소가 부동된 후 상위 컨테이너가 축소되는 경우가 있습니다. 이 기능은 때때로 레이아웃에 심각한 영향을 미칩니다. 테스트해 보겠습니다. ul 요소 앞뒤에 p 요소li { list-style: none; float: left; width: 33.3%;/*三列图片排列*/ height: 100px;/*当图片尺寸不一的时候,设置一个高度*/ overflow: hidden;/*超出隐藏*/ }
li img { position: relative; width: 100%; top: 50%;/*li高度的一半*/ transform: translateY(-50%); /*再向上移动自身的50%*/ }
display:inline -block 레이아웃은 float: left;를 display: inline-block;
.red{ width: 100%; height: 30px; border: 1px solid red; } .blue{ width: 100%; height: 30px; border: 1px solid blue; } <p class="red"></p> <ul>...</ul> <p class="blue"></p>
효과를 보니 틈이 생겨서 두 줄로 눌려졌습니다. 무슨 일이야? ~
인라인 블록 요소 사이에 간격이 있을 수 있으므로 자세한 내용은 Zhang Xinxu의 블로그를 참조하세요. 여기서는.clearfix:after{ position: relative; content: ''; display: block; width: 0; height: 0; visibility: hidden; clear: both; } <p class="red"></p> <ul class="clearfix">...</ul> <p class="blue"></p>
요소 사이의 간격을 없애기 위해 글꼴 크기: 0; 메서드를 사용합니다. 이로써 우리가 원하는 효과가 완성됩니다. 아주 간단하지 않나요?
div+css 이미지 목록 레이아웃 더보기 (1) 관련 글은 PHP 중국어 홈페이지를 주목해주세요!