본문 바로가기
frontend/CSS

단, 내가 구축하고자 하는 그리드는 뷰포트의 크기에 따라 줄어들거나 새로 생성되도록 해야 해.

by Mr.코딩 2023. 8. 2.

내가 자바스크립트로 I/O 페이지를 구축한다고 치자. 내가 구축하고자하는 I/O 페이지 안에는 기본적으로 각각의 개별 컨턴츠의 '위치'를 파악할 수 있도록 그 기준이 되는 그리드를 (바탕으로) 가지고 있다고 치자. 그런 그리드를 구축하기 위해 CSS를 이용하는 게 좋니? 아니면 별도의 함수(javascipt)로 그리드 생성 함수를 따로 만드는 게 좋니? (단, 내가 구축하고자 하는 그리드는 뷰포트의 크기에 따라 줄어들거나 새로 생성되도록 해야 해.)

Bard

그리드를 구축하기 위해 CSS를 이용하는 것이 좋습니다. CSS는 HTML 요소의 스타일을 지정하는 데 사용되는 언어로, 그리드를 쉽게 구축할 수 있는 다양한 기능을 제공합니다. 예를 들어, `display: grid` 속성을 사용하여 요소를 그리드로 만들 수 있으며, `grid-template-columns` 및 `grid-template-rows` 속성을 사용하여 그리드의 열과 행을 지정할 수 있습니다.

또한 CSS를 사용하여 그리드의 크기, 너비, 간격 등을 지정할 수 있습니다. 따라서 그리드를 구축하고 스타일을 지정하기 위해 별도의 함수를 만들 필요가 없습니다.

그리드는 뷰포트의 크기에 따라 줄어들거나 새로 생성되도록 해야 합니다. 이 경우 CSS를 사용하여 그리드의 크기를 조정할 수 있습니다. 예를 들어, `grid-template-columns: repeat(auto-fill, minmax(1fr, 100px));` 속성을 사용하면 뷰포트의 너비에 따라 그리드의 열의 수가 자동으로 조정됩니다.

또한 CSS를 사용하여 그리드를 새로 생성할 수 있습니다. 예를 들어, `grid-auto-rows: 1fr;` 속성을 사용하면 뷰포트의 높이에 따라 그리드의 행이 자동으로 생성됩니다.

따라서 그리드를 구축해야 하는 경우 CSS를 사용하는 것이 좋습니다. CSS는 그리드를 쉽게 구축하고 스타일을 지정할 수 있는 다양한 기능을 제공합니다.


chatGTP

 

자바스크립트를 사용하여 사용자가 입력한 값에 따라 그리드를 생성하는 함수는 다음과 같습니다:

 

<!DOCTYPE html>
<html>
<head>
  <style>
    .grid-container {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
      grid-gap: 10px;
    }

    .grid-item {
      background-color: #f0f0f0;
      padding: 20px;
    }
  </style>
</head>
<body>
  <div class="grid-container" id="grid-container">
  </div>

  <script>
    function createGrid(rows, cols) {
      const gridContainer = document.getElementById('grid-container');
      gridContainer.innerHTML = '';

      for (let i = 0; i < rows * cols; i++) {
        const gridItem = document.createElement('div');
        gridItem.classList.add('grid-item');
        gridItem.textContent = i + 1;
        gridContainer.appendChild(gridItem);
      }

      gridContainer.style.gridTemplateColumns = `repeat(${cols}, 1fr)`;
    }

    createGrid(3, 3); // 3x3 그리드 생성
  </script>
</body>
</html>