>  기사  >  웹 프론트엔드  >  CSS를 사용하여 div 태그의 높이를 브라우저 창의 높이와 동일하게 만드는 방법은 무엇입니까?

CSS를 사용하여 div 태그의 높이를 브라우저 창의 높이와 동일하게 만드는 방법은 무엇입니까?

王林
王林앞으로
2023-08-19 18:01:09802검색

CSS를 사용하여 div 태그의 높이를 브라우저 창의 높이와 동일하게 만드는 방법은 무엇입니까?

웹 개발 프로젝트를 작업할 때 div 태그에 브라우저 창의 전체 높이를 지정해야 하는 경우가 종종 있습니다. 이는 전체 페이지 레이아웃, 히어로 섹션 또는 필요한 요소를 생성할 때 특히 유용할 수 있습니다. 전체 수직 공간에 걸쳐 있습니다.

그러나 CSS를 사용하여 원하는 효과를 얻는 것은 CSS 상자 모델의 특성과 높이 속성의 기본 동작으로 인해 약간 까다로울 수 있습니다.

이 글에서는 CSS를 사용하여 div 태그에 브라우저 창 높이를 100% 설정하는 다양한 기술을 살펴보겠습니다. 다양한 CSS 방법에 대해 논의하고 각 기술에 대한 실용적인 코드 예제를 제공합니다.

사용 높이: 100%

div 태그에 100% 높이를 제공하는 한 가지 접근 방식은 height: 100% 속성을 사용하는 것입니다. 그러나 이 접근 방식에는 특정 과제와 제한 사항이 있다는 점에 유의하는 것이 중요합니다.

div 요소에 height: 100%를 설정하면 상위 요소 높이의 100%를 차지하도록 지시하는 것입니다. 이 접근 방식은 상위 요소가 CSS에 명시적으로 정의된 고정 높이를 가질 때 잘 작동합니다. 그러나 브라우저 창 자체의 경우 html 및 body 요소(div 태그의 상위 요소)는 기본적으로 고정된 높이를 갖지 않습니다.

div 태그가 브라우저 창의 전체 높이를 채우려면 상위 요소(html 및 body)의 높이가 100%인지 확인해야 합니다. 다음 CSS를 적용하여 이를 달성할 수 있습니다. 으아악

상위 요소의 높이가 100%로 설정되면 대상 div 태그에 height: 100%를 설정하면 브라우저 창의 전체 높이를 채우도록 확장됩니다.

그러나 이 방법을 사용할 때 고려해야 할 몇 가지 사항이 있습니다

  • Scroll div 내부의 콘텐츠가 브라우저 창의 높이를 초과하는 경우 콘텐츠를 스크롤할 수 있도록 스크롤 막대가 나타납니다.

  • 중첩된 요소 div 태그가 백분율 기반 높이를 갖는 다른 요소 내에 중첩된 경우 접근 방식이 올바르게 작동하려면 모든 상위 요소의 높이가 100%인지 확인해야 합니다.

  • 호환성 이전 버전의 Internet Explorer(IE)에서는 height: 100% 접근 방식을 올바르게 지원하지 않을 수 있으므로 다양한 브라우저에서 구현을 테스트하는 것이 중요합니다.

높이: 100% 접근 방식은 어떤 경우에는 간단한 해결책이 될 수 있지만 한계가 있으며 추가적인 고려 사항이 필요할 수 있습니다. 다음 몇 섹션에서는 더 많은 유연성과 더 나은 브라우저 지원을 제공하는 대체 기술을 살펴보겠습니다.

기술 1: 높이 사용: 100vh

div 태그의 높이를 브라우저 창의 100%로 설정하는 또 다른 기술은 height: 100vh 속성을 사용하는 것입니다. vh 단위는 뷰포트 높이의 백분율을 나타냅니다.

div 요소에 height: 100vh를 설정하면 상위 요소에 관계없이 뷰포트 높이의 100%를 차지하도록 지시하게 됩니다. 이 접근 방식은 상위 요소를 설정할 필요 없이 보다 간단한 솔루션을 제공합니다. 명시적으로 높이를 지정하세요.

다음은 이 기술을 보여주는 완전한 코드 조각입니다. -

으아악

이 코드 조각에는 이전과 비슷한 HTML 구조가 있습니다. 상위 div에는 "container" 클래스가 있고 대상 div에는 "content" 클래스가 있습니다. 원하는 효과를 얻으려면 CSS 스타일을 적용하세요.

주요 차이점은 "컨테이너" 클래스에 height: 100vh를 설정했다는 것입니다. 이로 인해 컨테이너 div가 뷰포트의 전체 높이까지 확장됩니다. 내부 "콘텐츠" div는 높이를 상속하며 전체 뷰포트 높이를 채우기 위해 늘어납니다.

height: 100vh 접근 방식을 사용하면 상위 요소의 높이를 명시적으로 설정하지 않고도 전체 높이 div를 쉽게 얻을 수 있습니다.

팁 2: Flexbox 사용

Flexbox는 컨테이너 내에서 요소를 배포하고 정렬하는 유연한 방법을 제공하는 강력한 CSS 레이아웃 모듈입니다. div 태그의 높이를 100% 달성하는 데에도 사용할 수 있습니다.

Flexbox 속성을 활용하여 사용 가능한 수직 공간을 채우기 위해 확장되는 컨테이너를 만들 수 있습니다. 다음은 이 기술을 보여주는 완전한 코드 조각입니다

Example 

<!DOCTYPE html>
<html>
<head>
   <style>
      .container {
         display: flex;
         flex-direction: column;
         height: 100vh;
         background-color: lightgray;
      }   
      .content {
         flex-grow: 1;
         background-color: white;
         border: 1px solid gray;
         margin: 20px;
      }
   </style>
</head>
<body>
   <div class="container">
      <div class="content">
         <!-- Content goes here -->
      </div>
   </div>
</body>
</html>

In this code snippet, we have a parent div element with a class of "container" and a child div with a class of "content". The CSS styles are applied to utilize Flexbox for achieving 100% height.

通过在 "container" 类上设置 display: flex,我们创建了一个 Flexbox 容器。添加 flex-direction: column 可以确保子元素垂直堆叠。height: 100vh 属性使容器扩展以填充整个视口的高度。

To make the "content" div take up the remaining vertical space, we set flex-grow: 1. This instructs the "content" element to grow and fill the available space within the Flexbox container.

技巧3:使用CSS Grid

CSS Grid is another powerful layout module that allows you to create complex grid-based layouts with ease. It can also be leveraged to achieve 100% height for a div tag.

By utilizing CSS Grid, we can create a grid container that expands to fill the available vertical space. Here's a complete code snippet that demonstrates this technique 

Example 

<!DOCTYPE html>
<html>
<head>
   <style>
      .container {
         display: grid;
         grid-template-rows: 1fr;
         height: 100vh;
         background-color: lightgray;
      }   
      .content {
         background-color: white;
         border: 1px solid gray;
         margin: 20px;
      }
   </style>
</head>
<body>
   <div class="container">
      <div class="content">
         <!-- Content goes here -->
      </div>
   </div>
</body>
</html>

In this code snippet, we have a parent div element with a class of "container" and a child div with a class of "content". The CSS styles are applied to utilize CSS Grid for achieving 100% height.

By setting display: grid on the "container" class, we create a CSS Grid container. The grid-template-rows: 1fr property sets the row template to 1fr, which means the available space is distributed evenly among the rows. This ensures that the "content" div takes up the full height of the container.

The height: 100vh property makes the container expand to fill the full height of the viewport.

技巧4:使用绝对定位

Another technique to give a div tag 100% height of the browser window is by using absolute positioning. By positioning the div element absolutely and setting its top, bottom, left, and right properties to 0, we can make it expand to fill the entire height of the viewport.

Example

这是一个完整的示例代码片段,演示了这个技术 

<!DOCTYPE html>
<html>
<head>
   <style>
      .container {
         position: relative;
         height: 100vh;
         background-color: lightgray;
      }   
      .content {
         position: absolute;
         top: 0;
         bottom: 0;
         left: 0;
         right: 0;
         background-color: white;
         border: 1px solid gray;
         margin: 20px;
      }
   </style>
</head>
<body>
   <div class="container">
      <div class="content">
         <!-- Content goes here -->
      </div>
   </div>
</body>
</html>

在这段代码片段中,我们有一个class为"container"的父div元素和一个class为"content"的子div元素。CSS样式被应用以利用绝对定位来实现100%的高度。

通过在"container"类上设置position: relative,我们为子div建立了一个定位上下文。这使我们能够将"content" div绝对定位相对于其父元素。

属性 top: 0, bottom: 0, left: 0 和 right: 0 将 "content" div 定位在其父元素的顶部、底部、左侧和右侧边缘。这将导致它拉伸并填充容器的整个高度。

Technique 5: 使用 Flexbox 和 Overflow

在某些情况下,您可能会遇到内容超过视口高度的情况。在这种情况下,您可以使用Flexbox和overflow属性的组合,以确保div保持100%的高度,同时允许溢出内容滚动。

示例

Here's a complete running example snippet that demonstrates this technique −

<!DOCTYPE html>
<html>
<head>
   <style>
      .container {
         display: flex;
         flex-direction: column;
         height: 100vh;
         background-color: lightgray;
      }   
      .content {
         flex-grow: 1;
         background-color: white;
         border: 1px solid gray;
         margin: 20px;
         overflow: auto;
      }
   </style>
</head>
<body>
   <div class="container">
      <div class="content">
         <!-- Content goes here -->
      </div>
   </div>
</body>
</html>

In this code snippet, we have a parent div element with a class of "container" and a child div with a class of "content". The CSS styles are applied to utilize Flexbox and handle overflow.

Similar to Technique 2, we set display: flex on the "container" class to create a Flexbox container. The flex-direction: column property ensures that the child elements are stacked vertically.

通过在“content”类上设置flex-grow: 1,div会扩展以占据容器中剩余的垂直空间。此外,如果内容超过div的高度,我们使用overflow: auto来启用内容的垂直滚动。

Conclusion

Achieving a 100% height for a

tag in CSS can be accomplished using various techniques. By utilizing CSS properties like height: 100vh, Flexbox, CSS Grid, and absolute positioning, we can create responsive layouts that fill the entire height of the browser window.

Each technique offers its advantages and may be more suitable depending on the specific requirements of your project. It's important to consider factors such as content overflow and browser compatibility when choosing the appropriate approach.

通过理解和实施这些技术,您可以确保您的
标签根据视口高度动态适应,提供无缝且视觉上吸引人的用户体验。尝试这些方法并选择最适合您需求的方法

위 내용은 CSS를 사용하여 div 태그의 높이를 브라우저 창의 높이와 동일하게 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제