웹/CSS
[CSS] 수평중앙정렬
ohojee
2023. 8. 25. 14:42
전체 코드
const TodaySentencePage = () => {
return (
<>
<NavBar/>
<Background>
<TitleText>오늘의 문장</TitleText>
<SentencesContainer className="container-fluid row">
<EachSentence>
<QuoteBox>
<QuoteText>고독을 배설한 자리에서 내려앉는 환희. 이 달콤함을 위해 그는 예술을 표방한다.</QuoteText>
</QuoteBox>
<BookIcon size="250" color="#97A4E8"/>
</EachSentence>
</SentencesContainer>
<div style={{ display: 'flex', justifyContent: 'center' }}>
<OneSentenceContainer>
<BookContainer>
<BookImage></BookImage>
<BookInfo>
<BookTitleBox>
<BookTitle>뼈가 자라는 여름</BookTitle>
</BookTitleBox>
<BookTextBox>
<BookSentence>슬픔을 병처럼 여기지 않겠다고 말하면서 나는 조금씩 의연해졌다. 슬픔에게도 비밀이 있을거라고. 그 비밀을 추궁하지 않기로 했다.</BookSentence>
</BookTextBox>
<BookSubtext>저자: 백년의 고독<br/>분야: 소설<br/>출판사: 민음사</BookSubtext>
</BookInfo>
</BookContainer>
</OneSentenceContainer>
</div>
</Background>
<FooterBar/>
</>
)
}
const OneSentenceContainer = styled.div`
/* display: flex; */
justify-content: center;
padding-top: 70px;
background-color: white;
width: 1295px;
height: 554px;
border-radius: 50px;
`;
const BookContainer = styled.div`
display: flex;
margin: 0 90px;
`;
const BookImage = styled.div`
width: 241px;
height: 366px;
background-color: #d9d9d9;
box-shadow: 0px 5px 10px #d9d9d9;
`;
const BookInfo = styled.div`
margin-left: 65px;
`;
const BookTitleBox = styled.div`
display: flex;
align-items: center;
margin-bottom: 10px;
`;
const BookTitle = styled.p`
font-size: 40px;
font-family: "KOTRA_BOLD";
margin: 0;
margin-left: 10px;
`;
const BookTextBox = styled.div`
position: relative;
align-items: center;
display: flex;
height: 132px;
width: 665px;
background-color: #2C2C60;
clip-path: polygon(0% 0%, 100% 0, 90% 50%, 100% 100%, 0% 100%);
`;
const BookSentence = styled.div`
margin-left: 30px;
width: 558px;
color: white;
font-size: 20px;
font-family: "KOTRA_GOTHIC";
`;
const BookSubtext = styled.p`
margin-top: 20px;
font-size: 24px;
line-height: 1.9;
`;
<OneSentenceContainer>
<BookContainer>
<BookImage></BookImage>
<BookInfo>
<BookTitleBox>
<BookTitle>뼈가 자라는 여름</BookTitle>
</BookTitleBox>
<BookTextBox>
<BookSentence>슬픔을 병처럼 여기지 않겠다고 말하면서 나는 조금씩 의연해졌다. 슬픔에게도 비밀이 있을거라고. 그 비밀을 추궁하지 않기로 했다.</BookSentence>
</BookTextBox>
<BookSubtext>저자: 백년의 고독<br/>분야: 소설<br/>출판사: 민음사</BookSubtext>
</BookInfo>
</BookContainer>
</OneSentenceContainer>
이 부분에서 OneSentenceContainer를 중앙정렬하고 싶었다. 하지만 왼쪽으로 치우친 상태였다.
그래서 친구한테 물어보니까 밖에 div를 하나 더 만들고 부모 div에 display: 'flex', justify-content: 'center' 라는 속성을 줘야 수평중앙정렬이 된다고 했다.
그동안 그냥 justify-content: 'center' 속성만 주면 중앙정렬이 된다고 생각했는데 flex를 붙여야 적용이 됐다.
아직 덜 공부했나보다.