구현할 디자인
헤더 만들기
function Header() {
return (
<div className='header'>
</div>
);
}
export default Header;
- 가장 기본 서식
- 함수명과 export를 위한 이름 지정 (Header)
뼈대 만들기
import './Header.css';
function Header() {
return (
<div className="header">
<div className="header__back">
<i>뒤로</i>
<h3> 공대생 게시판 </h3>
</div>
<div className='header__more'>
<i>검색</i>
<i>더보기</i>
</div>
</div>
);
}
export default Header;
- <div> </div> 마다 한 줄 차지가 기본
- 이것을 한 줄로 만들기 위해 css 지정
.header {
display: flex; // 한 줄로 만들기
justify-content: space-between; // <div>와 <div> 사이에 일정한 띄어쓰기 제공
padding: 20px;
}
.header__back h3 {
display: inline; // 한 줄로 만들기
}
.header__more {
float: right; // 오른쪽 정렬
}
아이콘 삽입하기
function Header() {
return (
<div className='header'>
<div className='header__back'>
<i><FontAwesomeIcon icon={faArrowLeft} size="lg" /></i>
<h3> 공대생 게시판 </h3>
</div>
<div className='header__more'>
<i><FontAwesomeIcon icon={faMagnifyingGlass} size="lg" /></i>
<i><FontAwesomeIcon icon={faEllipsisVertical} size="lg" /></i>
</div>
</div>
);
}
- 아래 무료 아이콘 사이트 FontAwesome 참고
- React 적용 방법은 아래 두 블로그 참고
무료 아이콘 삽입하기 - Font Awesome
Font Awesome
The internet's icon library + toolkit. Used by millions of designers, devs, & content creators. Open-source. Always free. Always awesome.
fontawesome.com
아래 두 사이트 참고
[React] 리액트에 폰트어썸 매우 쉽게 적용하기 (4단계)
1. npm 설치 $ npm i @fortawesome/fontawesome-svg-core $ npm i @fortawesome/free-solid-svg-icons @fortawesome/free-regular-svg-icons @fortawesome/free-brands-svg-icons $ npm i @fortawesome/react-fontawesome 2. import 해주기 FontAwesome 을 사용하기
ssddo-story.tistory.com
React에 Font Awesome 적용하기
개요 기존 HTML, CSS 파일을 React로 변환하는데 Font Awesome에서 가져온 태그가 적용되지 않는 문제가 발생하여 이를 해결하는 방법을 정리하고자 함. Font Awesome 설치 // Font Awesome의 SVG 기반 아이콘을
hymndev.tistory.com
전체 CSS 코드
.header {
display: flex;
justify-content: space-between;
background-color: #D9D9D9;
font-weight: 500;
padding: 20px;
}
.header__back {
margin-right: 5%;
}
.header__back h3 {
display: inline;
padding: 0px 5px;
}
.header__more {
float: right;
}
.header__more > i:first-child {
padding: 0px 20px;
}
FontAwesomeIcon {
width: 70px;
height: 20px;
}
게시글 리스트 구현하기
function BoardList() {
return (
<div>
<div className='board__header'>
<div className='board__user'>
<image> </image>
<p>공대생</p>
<p className='board__date'>2023-02-21</p>
</div>
<div className='board_icons'>
<i> </i>
<i> </i>
</div>
</div>
<div className='board'>
<div className='board__title'>
<h4>코딩 꿀팁 공유합니다.</h4>
</div>
<div className='board__content'>
<p>사실 그런 건 없지롱 블라블라 블라블라 블라블라 블라블라</p>
</div>
</div>
</div>
);
}
- <div> </div>로 큰 뼈대 나누기
- 그 다음 아이콘 등 세부사항 넣기
BoardList.js 전체 코드
import './BoardList.css';
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faUser } from "@fortawesome/free-solid-svg-icons";
import { faHeart } from "@fortawesome/free-solid-svg-icons";
import { faStar } from "@fortawesome/free-solid-svg-icons";
function BoardList() {
return (
<div>
<div className='board__header'>
<div className='board__user'>
<image>
<i><FontAwesomeIcon icon={faUser} size="2x" /></i>
</image>
<p>공대생</p>
<p className='board__date'>2023-02-21</p>
</div>
<div className='board_icons'>
<i><FontAwesomeIcon icon={faHeart}/> 5 </i>
<i><FontAwesomeIcon icon={faStar}/> 5 </i>
</div>
</div>
<div className='board'>
<div className='board__title'>
<h4>코딩 꿀팁 공유합니다.</h4>
</div>
<div className='board__content'>
<p>사실 그런 건 없지롱 블라블라 블라블라 블라블라 블라블라</p>
</div>
</div>
</div>
);
}
export default BoardList;
BoardList.css 전체 코드
.board__header {
display: flex; // 한 줄로 만들기
justify-content: space-between; // 요소 사이에 적절한 빈칸 넣기
padding: 12px;
}
.board__user p {
display: inline;
padding-left: 12px;
}
.board__date {
font-size: small;
color: rgb(100, 100, 100);
}
.board {
padding: 0px 12px;
}
'React와 Spring으로 게시판 만들기' 카테고리의 다른 글
[Springboot] Spring Data JPA 소개 - ORM과 JPA (0) | 2023.03.04 |
---|---|
[React] Route로 페이지 이동하기 (5) - 글쓰기 버튼 클릭 시 페이지 이동 (0) | 2023.03.04 |
[React] 게시판 디자인하기 (4) - 글쓰기 버튼 만들기 (0) | 2023.03.03 |
[React / Spring] React와 Spring 연동하기 (2) (0) | 2023.02.20 |
[React] 리액트 프로젝트 시작하기 (1) (0) | 2023.02.20 |