웹 프론트엔드 CSS 튜토리얼 CSS 위치 레이아웃을 사용하여 웹 페이지에서 폭포 흐름 효과를 얻는 방법

CSS 위치 레이아웃을 사용하여 웹 페이지에서 폭포 흐름 효과를 얻는 방법

Sep 26, 2023 am 11:48 AM
반응형 디자인 폭포 레이아웃 CSS 위치 지정(CSS 위치 지정)

如何利用CSS Positions布局实现网页瀑布流效果

CSS 위치 레이아웃을 사용하여 웹페이지에 폭포 흐름 효과를 얻는 방법

폭포 흐름 레이아웃은 일반적인 웹 페이지 레이아웃 방법으로, 폭포가 흐르는 것처럼 페이지에 요소가 불규칙하게 배열되는 것이 특징입니다. 위에서 아래로 흐르는. 폭포형 흐름 레이아웃은 웹 디자인의 사진 표시, 제품 표시 및 기타 장면에 널리 사용되며 페이지 공간을 효과적으로 활용하고 더 많은 콘텐츠를 표시할 수 있습니다. 이 기사에서는 CSS 위치 레이아웃을 사용하여 웹 페이지의 폭포 효과를 얻는 방법을 소개합니다.

먼저 HTML에 여러 하위 요소가 포함된 컨테이너를 만들어 폭포 흐름 레이아웃의 콘텐츠를 표시합니다. 각 하위 요소는 표시될 단일 항목이나 그림을 나타냅니다.

<div class="waterfall-container">
  <div class="item">Item 1</div>
  <div class="item">Item 2</div>
  <div class="item">Item 3</div>
  ...
</div>
로그인 후 복사

다음으로 폭포 레이아웃을 구현하기 위해 CSS 스타일을 정의해야 합니다. 먼저, 컨테이너의 너비와 최소 높이를 설정하고 position:relative를 사용하여 컨테이너를 기준으로 하위 요소의 위치를 ​​지정합니다. position: relative来使子元素相对于容器进行定位。

.waterfall-container {
  width: 100%;
  min-height: 400px;
  position: relative;
}
로그인 후 복사

然后,使用position: absolute来定位子元素。我们将使用JavaScript生成子元素的随机高度,这样才能达到瀑布流的效果。在这里,我们假设已经有一个名为randomHeight()的JavaScript函数可以返回一个随机数。

.item {
  width: 200px;
  position: absolute;
  padding: 10px;
  /* 元素水平间距和垂直间距 */
  margin: 10px;
  /* 定位子元素的初始位置 */
  top: 0;
  left: 0;
}
로그인 후 복사

接下来,我们需要使用JavaScript来计算和应用每个子元素的位置。我们将使用两个数组columnHeightscolumnIndexes来保存每一列的高度和索引。

var columnHeights = [0, 0, 0]; // 初始每列高度为0
var columnIndexes = [0, 1, 2]; // 初始每列索引为0, 1, 2
var columnCount = 3; // 列数
var itemWidth = 200; // 子元素宽度
var horizontalMargin = 20; // 水平间距
var verticalMargin = 20; // 垂直间距

var items = document.getElementsByClassName("item");
for (var i = 0; i < items.length; i++) {
  var shortestColumnHeight = Math.min.apply(null, columnHeights);
  var shortestColumnIndex = columnHeights.indexOf(shortestColumnHeight);

  items[i].style.top = columnHeights[shortestColumnIndex] + "px";
  items[i].style.left = shortestColumnIndex * (itemWidth + horizontalMargin) + "px";

  columnHeights[shortestColumnIndex] += items[i].offsetHeight + verticalMargin;
}
로그인 후 복사

通过以上代码,我们可以根据每一列的高度和索引来计算和应用子元素的位置,从而实现网页瀑布流布局的效果。

最后,通过CSS样式和JavaScript代码的结合,我们就可以在网页上实现瀑布流布局的效果了。当然,你可以根据实际需求来调整样式和代码,使其更符合你的设计要求。

总结一下,利用CSS Positions布局来实现网页瀑布流效果,关键是利用position: absoluterrreee

그런 다음 위치: 절대를 사용하여 하위 요소의 위치를 ​​지정하세요. 폭포 효과를 얻을 수 있도록 JavaScript를 사용하여 하위 요소의 높이를 무작위로 생성하겠습니다. 여기서는 난수를 반환하는 randomHeight()라는 JavaScript 함수가 이미 있다고 가정합니다.

rrreee

다음으로 JavaScript를 사용하여 각 하위 요소의 위치를 ​​계산하고 적용해야 합니다. 두 개의 배열 columnHeightscolumnIndexes를 사용하여 각 열의 높이와 인덱스를 보유합니다.
    rrreee
  • 위 코드를 사용하면 각 열의 높이와 인덱스를 기반으로 하위 요소의 위치를 ​​계산하고 적용하여 웹 페이지에서 폭포 흐름 레이아웃 효과를 얻을 수 있습니다.
  • 마지막으로 CSS 스타일과 JavaScript 코드의 조합을 통해 웹 페이지에서 폭포 흐름 레이아웃 효과를 얻을 수 있습니다. 물론 실제 요구 사항에 따라 스타일과 코드를 조정하여 디자인 요구 사항에 더욱 부합하도록 만들 수 있습니다.
요약하자면, 웹 페이지의 폭포 흐름 효과를 얻기 위해 CSS 위치 레이아웃을 사용하는 핵심은 position:absolute를 사용하여 하위 요소의 위치를 ​​지정하고 JavaScript를 사용하여 하위 요소의 위치를 ​​계산하고 적용하는 것입니다. 각 하위 요소. 합리적인 스타일 설정과 코드 계산을 통해 아름다운 폭포 흐름 레이아웃을 쉽게 구현할 수 있습니다. 🎜🎜참조: 🎜🎜🎜W3Schools - CSS 위치: [https://www.w3schools.com/csS/css_positioning.asp](https://www.w3schools.com/csS/css_positioning.asp)🎜🎜MDN 웹 문서 - 위치: [https://developer.mozilla.org/en-US/docs/Web/CSS/position](https://developer.mozilla.org/en-US/docs/Web/CSS/position) 🎜🎜

위 내용은 CSS 위치 레이아웃을 사용하여 웹 페이지에서 폭포 흐름 효과를 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

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

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

vue 3 vue 3 Apr 02, 2025 pm 06:32 PM

그것은#039; VUE 팀에게 그것을 끝내는 것을 축하합니다. 나는 그것이 막대한 노력과 오랜 시간이라는 것을 알고 있습니다. 모든 새로운 문서도 있습니다.

Redwood.js 및 동물 군을 사용하여 이더 리움 앱 구축 Redwood.js 및 동물 군을 사용하여 이더 리움 앱 구축 Mar 28, 2025 am 09:18 AM

최근 Bitcoin의 가격이 20k 달러가 넘는 USD가 최근에 등반되면서 최근 30k를 끊었으므로 Ethereum을 만드는 데 깊이 다이빙을 할 가치가 있다고 생각했습니다.

브라우저에서 유효한 CSS 속성 값을 얻을 수 있습니까? 브라우저에서 유효한 CSS 속성 값을 얻을 수 있습니까? Apr 02, 2025 pm 06:17 PM

나는 누군가이 매우 합법적 인 질문으로 글을 썼습니다. Lea는 브라우저에서 유효한 CSS 속성 자체를 얻는 방법에 대해 블로그를 작성했습니다. 이는 이와 같습니다.

끈적 끈적한 포지셔닝 및 대시 Sass가있는 쌓인 카드 끈적 끈적한 포지셔닝 및 대시 Sass가있는 쌓인 카드 Apr 03, 2025 am 10:30 AM

다른 날, 나는 Corey Ginnivan의 웹 사이트에서 스크롤 할 때 카드 모음이 서로 쌓이는 것을 발견했습니다.

CI/CD에 약간 CI/CD에 약간 Apr 02, 2025 pm 06:21 PM

"웹 사이트"는 "모바일 앱"보다 더 잘 맞지만 Max Lynch 의이 프레임이 마음에 듭니다.

반응 형 디자인을위한 브라우저 비교 반응 형 디자인을위한 브라우저 비교 Apr 02, 2025 pm 06:25 PM

목표가 귀하의 사이트를 동시에 다른 크기로 표시하는 이러한 데스크탑 앱이 많이 있습니다. 예를 들어, 글을 쓸 수 있습니다

WordPress 블록 편집기에서 Markdown 및 현지화 사용 WordPress 블록 편집기에서 Markdown 및 현지화 사용 Apr 02, 2025 am 04:27 AM

WordPress 편집기에서 사용자에게 직접 문서를 표시 해야하는 경우 가장 좋은 방법은 무엇입니까?

플렉스 레이아웃의 자주색 슬래시 영역이 잘못된 '오버플로 공간'으로 간주되는 이유는 무엇입니까? 플렉스 레이아웃의 자주색 슬래시 영역이 잘못된 '오버플로 공간'으로 간주되는 이유는 무엇입니까? Apr 05, 2025 pm 05:51 PM

플렉스 레이아웃의 보라색 슬래시 영역에 대한 질문 플렉스 레이아웃을 사용할 때 개발자 도구 (d ...)와 같은 혼란스러운 현상이 발생할 수 있습니다.

See all articles