예시
common.css
더보기
* {
margin: 0;
padding: 0;
}
body {
font-family: Helvetica, sans-serif;
}
.display-flex {
display: flex;
}
header {
display: flex;
width: 1000px;
padding: 10px;
margin: 5px auto;
border-bottom: 1px solid #ccc;
justify-content: space-between;
}
.img-setting {
width: 15px;
height: 15px;
position: relative;
}
.img-youtube {
width: 30px;
height: 21px;
position: relative;
}
.img-new {
width: 15px;
height: 15px;
position: relative;
}
.container {
width: 1000px;
margin: 5px auto;
display: flex;
gap: 20px;
}
.nav-container {
width: 170px;
height: 300px;
/* 이런식으로 하고 싶지 않음 */
padding: 10px;
margin: 10px 5px;
border: 1px solid #888;
border-radius: 10px;
display: flex;
flex-direction: column;
color: #333333;
}
.nav-head {
display: flex;
justify-content: space-between;
margin-bottom: 15px;
}
.nav-list {
list-style: none;
padding: 0;
}
.nav-list li {
margin: 3px 0;
}
.nav-list li.selected-menu {
margin: 5px 0;
font-size: 1.1em;
font-weight: bold;
color: black;
}
main {
width: 730px;
margin: 20px 5px;
display: flex;
flex-direction: column;
flex-wrap: wrap;
}
.img-edit {
width: 30px;
height: 30px;
position: relative;
top: -5px;
}
.main-head {
display: flex;
justify-content: space-between;
margin-bottom: 10px;
}
.edit {
text-decoration: none;
color: black;
}
.page-container {
display: flex;
justify-content: center;
}
.page-list {
margin-top: 10px;
display: flex;
gap: 10px;
}
.page-list li {
list-style: none;
display: flex;
align-items: flex-end;
}
.page-list li a {
display: flex;
align-items: flex-end;
text-decoration: none;
gap: 5px;
color: black;
}
.page-shift {
font-size: 1.5em;
display: inline-block;
transform: scaleY(1.5);
position: relative;
top: 5px;
}
.selected-page {
color: rgba(31, 214, 214, 0.785) !important;
}
.content {
width: 180px;
}
.content-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 20px;
}
.content-img {
border: 1px solid #ddd;
height: 158px;
padding: 10px;
font-size: 20px;
overflow: hidden;
}
.img-content {
width: 100%;
height: 100%;
}
.content-title {
font-size: 1em;
margin: 10px 0;
display: flex;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;
overflow: hidden;
text-overflow: ellipsis;
}
.content-date {
margin-top: 1.2em;
font-size: 0.9em;
color: #888;
}
main.html
더보기
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Green's Blog - 경영전략</title>
<link rel="stylesheet" href="css/common.css" />
<style>
</style>
</head>
<body>
<header>
<div class="blog-main display-flex">
<h2>Green's Blog</h2>
<a
href="headline-setting.html"
onclick="window.open(this.href, '_blank', 'width=800, height=600'); return false;"
>
<img
src="images/setting.png"
alt=""
class="img-setting"
style="top: -5px; left: 3px"
/></a>
</div>
<a
href="https://www.youtube.com/channel/UC-uWKja3o11-zgj5gm7m__Q"
target="_blank"
class="link-youtube"
><img src="images/youtube.png" alt="" class="img-youtube"
/></a>
</header>
<div class="container">
<nav class="nav-container">
<div class="nav-head">
<h4>전체 보기</h4>
<a
href="category-setting.html"
onclick="window.open(this.href, '_blank', 'width=800, height=600'); return false;"
>
<img src="images/setting.png" alt="" class="img-setting"
/></a>
</div>
<ul class="nav-list">
<li>Python <span>(12)</span></li>
<li>Java <span>(2)</span></li>
<li>iOS <span>(8)</span></li>
<li>소프트웨어 자료 <span>(26)</span></li>
<li>
자료구조
<span>(8) <img src="images/new.jpg" alt="" class="img-new" /></span>
</li>
<li>리눅스 <span>(8)</span></li>
<li>Git <span>(4)</span></li>
<li>자기계발 <span>(3)</span></li>
<li class="selected-menu">
경영전략
<span>(20) </span>
</li>
<li>리더쉽 <span>(7)</span></li>
</ul>
</nav>
<main class="main">
<div class="main-head">
<h4>
경영전략 <span style="color: rgba(31, 214, 214, 0.785)">20</span>
</h4>
<a href="edit.html" class="edit"
><img src="images/edit.png" alt="" class="img-edit"
/></a>
</div>
<div class="content-grid">
<div class="content">
<div class="content-img">
팬덤 확보에 성공한 4세대 걸그룹의 차별화 전략
</div>
<div class="content-title">
팬덤 확보에 성공한 4세대 걸그룹의 차별화 전략
</div>
<div class="content-date">2022. 12. 30.</div>
</div>
<div class="content">
<div class="content-img">
<img src="images/sample.png" alt="" class="img-content" />
</div>
<div class="content-title">
불황 속에서도 기업 성장 챙기는 전략불황 속에서도 기업 성장 챙기는
전략불황 속에서도 기업 성장 챙기는 전략불황 속에서도 기업 성장
챙기는 전략불황 속에서도 기업 성장 챙기는 전략
</div>
<div class="content-date">2022. 12. 8.</div>
</div>
<div class="content">
<div class="content-img">
<img src="images/sample.png" alt="" class="img-content" />
</div>
<div class="content-title">
CSV 실험, 전략적으로 접근이 필요하다.
</div>
<div class="content-date">2022. 12. 7.</div>
</div>
<div class="content">
<div class="content-img">뉴노멀 시대 사무실</div>
<div class="content-title">뉴노멀 시대 사무실</div>
<div class="content-date">2022. 12. 2.</div>
</div>
<div class="content">
<div class="content-img">
팬덤 확보에 성공한 4세대 걸그룹의 차별화 전략
</div>
<div class="content-title">
팬덤 확보에 성공한 4세대 걸그룹의 차별화 전략
</div>
<div class="content-date">2022. 12. 30.</div>
</div>
<div class="content">
<div class="content-img">
<img src="images/sample.png" alt="" class="img-content" />
</div>
<div class="content-title">불황 속에서도 기업 성장 챙기는 전략</div>
<div class="content-date">2022. 12. 8.</div>
</div>
<div class="content">
<div class="content-img">CSV 실험, 전략적으로 접근이 필요하다.</div>
<div class="content-title">
CSV 실험, 전략적으로 접근이 필요하다.
</div>
<div class="content-date">2022. 12. 7.</div>
</div>
<div class="content">
<div class="content-img">
<img src="images/sample.png" alt="" class="img-content" />
</div>
<div class="content-title">뉴노멀 시대 사무실</div>
<div class="content-date">2022. 12. 2.</div>
</div>
<div class="content">
<div class="content-img">
팬덤 확보에 성공한 4세대 걸그룹의 차별화 전략
</div>
<div class="content-title">
팬덤 확보에 성공한 4세대 걸그룹의 차별화 전략
</div>
<div class="content-date">2022. 12. 30.</div>
</div>
<div class="content">
<div class="content-img">불황 속에서도 기업 성장 챙기는 전략</div>
<div class="content-title">불황 속에서도 기업 성장 챙기는 전략</div>
<div class="content-date">2022. 12. 8.</div>
</div>
<div class="content">
<div class="content-img">CSV 실험, 전략적으로 접근이 필요하다.</div>
<div class="content-title">
CSV 실험, 전략적으로 접근이 필요하다.
</div>
<div class="content-date">2022. 12. 7.</div>
</div>
<div class="content">
<div class="content-img">
<img src="images/sample.png" alt="" class="img-content" />
</div>
<div class="content-title">뉴노멀 시대 사무실</div>
<div class="content-date">2022. 12. 2.</div>
</div>
<div class="content">
<div class="content-img">
<img src="images/sample.png" alt="" class="img-content" />
</div>
<div class="content-title">
팬덤 확보에 성공한 4세대 걸그룹의 차별화 전략
</div>
<div class="content-date">2022. 12. 30.</div>
</div>
<div class="content">
<div class="content-img">불황 속에서도 기업 성장 챙기는 전략</div>
<div class="content-title">불황 속에서도 기업 성장 챙기는 전략</div>
<div class="content-date">2022. 12. 8.</div>
</div>
<div class="content">
<div class="content-img">CSV 실험, 전략적으로 접근이 필요하다.</div>
<div class="content-title">
CSV 실험, 전략적으로 접근이 필요하다.
</div>
<div class="content-date">2022. 12. 7.</div>
</div>
<div class="content">
<div class="content-img">뉴노멀 시대 사무실</div>
<div class="content-title">뉴노멀 시대 사무실</div>
<div class="content-date">2022. 12. 2.</div>
</div>
</div>
<div class="page-container">
<ul class="page-list">
<li>
<a href="#"
><span class="page-shift"><</span>
이전 </a
>
</li>
<li><a href="#" class="selected-page">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li><a href="#">6</a></li>
<li><a href="#">7</a></li>
<li><a href="#">8</a></li>
<li><a href="#">9</a></li>
<li><a href="#">10</a></li>
<li>
<a href="#"
> 다음
<span class="page-shift">></span></a
>
</li>
</ul>
</div>
</main>
</div>
</body>
</html>
결과 화면
코멘트
- 이미지 추가는 단순 작업
- 페이징에서 이전과 다음 버튼
우선 <>를 적고, 1.5em 사이즈를 적용하여 이전,다음 글자보다 크게 만든 뒤,
transform: scaleY(1.5)로 y축 비율을 늘려 모양을 맞춰주었다.
이후 5px정도 아래로 맞춰줌
.page-shift {
font-size: 1.5em;
display: inline-block;
transform: scaleY(1.5);
position: relative;
top: 5px;
}
- 제목을 4줄로 생략한 방식
처음에는 display: flex; 로 해보고 싶어서 이것저것 시도해보았지만 결국 4줄을 초과했을 때 ...이 자동으로 적히게 하기 위해서는 display: -webkit-box;를 사용해야 했다
-webkit-box-orient: vertical; 은 flex-direction: colum;과 동일한 기능을 하고,
-webkit-line-clamp: 4;을 통해 4줄로 제한한다.
다음으로 범위를 넘은 글자를 안보이게 하고, ellipsis로 ...을 적용시킨다
.content-title {
font-size: 1em;
margin: 10px 0;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;
overflow: hidden;
text-overflow: ellipsis;
}
보완이 필요한 부분
- 원래 요구사항은 같은 라인에 있는 컨텐츠라면 제일 긴 제목에 맞추어 제목 구간 height가 동일하게 적용되어야 하는데 현재 방식으로는 개별적으로 적용되고 있다.
그리드 방식을 싹다 갈아엎어서 줄마다 관리해주어야 할 것 같다
'HTML CSS > 블로그 만들기' 카테고리의 다른 글
1일차 - 메인 페이지 (미완성) (0) | 2024.08.04 |
---|---|
블로그 만들기 (0) | 2024.08.04 |