개발 디자인 팁
<table> 에서flex, block이나 상대적인 width 적용하기 (html, css)
yjlee06
2024. 2. 18. 01:12
반응형
<table>은 기본적으로 display: table이 적용되어 있으며
아래의 요소들(<tbody>, <tr>,<th>,<td>)역시 기본 display가 존재하기에
<th>나 <td>에게 display: flex를 적용하거나 가로,세로 길이를 상댓값으로(%)
정할려면 상위의 요소들의 display를 전부 바꿔줘야합니다.
설명은 여기서 줄이고 바로 소스코드를 보여드리겠습니다.
// css
table {
border-collapse: collapse;
/* flex 일때 */
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: center;
/* block 일때 */
display: block;
width: 100%;
}
tbody {
display: inline-flex;
width: 100%;
}
tr {
display: flex;
width: 100%;
}
th,td {
border: gray solid 1px;
}
th {
width: 50%;
}
td {
display: inline-flex;
flex-direction: row;
justify-content: center;
align-items: center;
width: 50%;
height: 50px;
}
table의 width 값을 기준으로 아래의 요소들의 상댓값의 수치가 정해집니다.
만약 기본 display: table을 사용하고 싶다면
display: block, flex 및 tbody style 을 삭제하셔도 유지 됩니다!
//body
<table>
<tbody>
<tr>
<th>
제목1
</th>
<th>
제목2
</th>
</tr>
</tbody>
<tbody>
<tr>
<td>
내용1
</td>
<td>
내용2
</td>
</tr>
<tr>
<td>
내용1
</td>
<td>
내용2
</td>
</tr>
<tr>
<td>
내용1
</td>
<td>
내용2
</td>
</tr>
</tbody>
</table>