자바스크립트를 이용하여 CSS Grid 레이아웃을 활용한 게시판 만들기

소개

CSS Grid를 활용하면 웹 페이지의 레이아웃을 매우 쉽게 구성할 수 있습니다. 이번에는 자바스크립트와 CSS Grid를 이용하여 게시판을 만들어보겠습니다. 이 게시판은 유저가 게시글을 작성하고, 댓글을 작성할 수 있는 기능을 구현합니다.

개발 환경

HTML 구조

<div class="board-container">
    <div class="board-header">
        <h2>게시판</h2>
    </div>
    <div class="board-content">
        <div class="post-form">
            <textarea id="post-input" placeholder="게시글 작성"></textarea>
            <button id="post-button">작성</button>
        </div>
        <div class="post-list">
            <!-- 게시글 목록이 동적으로 생성될 예정입니다. -->
        </div>
    </div>
</div>

CSS Grid 적용

.board-container {
    display: grid;
    grid-template-rows: auto 1fr;
    grid-gap: 20px;
}

.board-header {
    text-align: center;
}

.post-form, .post-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 10px;
}

.post-form textarea {
    grid-column: 1 / span 2;
}

.post-list {
    grid-template-columns: repeat(3, 1fr);
}

게시글 작성 기능

const postInput = document.getElementById('post-input');
const postButton = document.getElementById('post-button');
const postList = document.querySelector('.post-list');

postButton.addEventListener('click', () => {
    const postContent = postInput.value;
    if (postContent) {
        const postElement = document.createElement('div');
        postElement.classList.add('post');
        postElement.textContent = postContent;
        postList.appendChild(postElement);
        postInput.value = "";
    }
});

댓글 작성 기능 (예시)

const postList = document.querySelector('.post-list');

postList.addEventListener('click', (event) => {
    const postElement = event.target;
    if (postElement.classList.contains('post')) {
        const comment = prompt("댓글을 작성하세요.");
        if (comment) {
            const commentElement = document.createElement('div');
            commentElement.classList.add('comment');
            commentElement.textContent = comment;
            postElement.appendChild(commentElement);
        }
    }
});

마치며

이렇게 자바스크립트와 CSS Grid를 이용하여 게시판을 만들어보았습니다. 게시글 작성과 댓글 작성 기능을 구현하였으니, 필요에 따라 확장하여 원하는 기능을 추가할 수 있습니다. CSS Grid를 활용하면 반응형 레이아웃을 쉽게 구성할 수 있으므로, 다양한 프로젝트에 적용해보시기 바랍니다.

#javascript #cssgrid #게시판 #자바스크립트