7월 27일 Velog
학습한 내용
네이버 블로그 실습
https://section.blog.naver.com/BlogHome.naver?directoryNo=0¤tPage=1&groupId=0
0. Default
[html]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="css/style.css">
<title>네이버 블로그</title>
</head>
<body></body>
</html>
[css]
.blog_container {
width: 1080px;
margin: 0 auto;
}
1. Header
구조
[html]
<header id="blog_header">
<div class="blog_header_top"></div>
<div class="blog_header_nav"></div>
</header>
1. blog header top
[html]
<div class="blog_header_top">
<div class="blog_container">
<div class="blog_header_left">
<h1><a href="index.html"><strong>NAVER</strong></a></h1>
<h2><a href="blog.html">블로그</a></h2>
<div class="blog_header_input_wrap">
<div class="blog_search_wrap">
<input type="text">
<button type="button" class="btn_search"></button>
</div>
<button type="button" class="btn_total_search">통합검색</button>
</div>
</div>
<div class="blog_header_right">
<a href="#" class="btn_login">로그인</a>
<button type="button" class="btn_menu"></button>
</div>
</div>
</div>
[css]
#blog_header .blog_header_top {
height: 60px;
background-color: #00c73c;
border-bottom: solid 1px #51b036;
}
#blog_header .blog_header_top .blog_container {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
}
#blog_header .blog_header_top .blog_header_left {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
align-items: center;
}
#blog_header .blog_header_top .blog_header_left h1 {
font-size: 20px;
margin-right: 10px;
}
#blog_header .blog_header_top .blog_header_left h1 a {
}
#blog_header .blog_header_top .blog_header_left h1 a strong {
color: #ffffff;
}
#blog_header .blog_header_top .blog_header_left h2 {
font-size: 20px;
margin-right: 20px;
}
#blog_header .blog_header_top .blog_header_left h2 a {
color: #ffffff;
font-weight: 700;
}
#blog_header .blog_header_top .blog_header_left .blog_header_input_wrap {
display: flex;
flex-wrap: nowrap;
justify-content: flex-start;
align-items: center;
}
#blog_header .blog_header_left .blog_header_input_wrap .blog_search_wrap {
display: flex;
flex-wrap: nowrap;
justify-content: flex-start;
align-items: center;
width: 325px;
height: 40px;
background-color: #ffffff;
border: solid 1px #4da733;
margin-right: 5px;
}
#blog_header .blog_header_left .blog_header_input_wrap .blog_search_wrap input {
width: calc(100% - 40px);
height: 40px;
background-color: #ffffff;
border: none;
padding: 0 15px;
}
#blog_header .blog_header_left .blog_header_input_wrap .blog_search_wrap input:focus {
outline: none;
}
#blog_header .blog_header_left .blog_header_input_wrap .blog_search_wrap .btn_search {
width: 40px;
height: 40px;
background-color: #28a93a;
border: solid 1px #239e36;
}
#blog_header .blog_header_left .blog_header_input_wrap .btn_total_search {
width: auto;
height: 40px;
background-color: #28a93a;
border: solid 1px #239e36;
padding: 0 5px;
line-height: 40px;
color: #ffffff;
}
#blog_header .blog_header_top .blog_header_right {
display: flex;
flex-wrap: nowrap;
justify-content: flex-end;
align-items: center;
}
#blog_header .blog_header_top .blog_header_right .btn_login {
display: inline-block;
border: solid 1px #239e36;
padding: 2px 5px;
color: #ffffff;
font-size: 12px;
}
#blog_header .blog_header_top .blog_header_right .btn_menu {
width: 60px;
height: 60px;
background-color: #00c73c;
border-right: solid 1px #239e36;
border-left: solid 1px #239e36;
cursor: pointer;
margin-left: 15px;
}
-
blog_header_left 와 blog_header_right의 정렬
- blog_header_left 만 있을 때
-> blog_header_top 에 padding 값을 주는 대신에 높이값(height: 60px;
)을 주고
blog_header_left 에 margin 값을 주면서 컨텐츠의 높이를 조절한다.
- blog_header_left, blog_header_right 정렬
-> 부모 요소에 적용된 flex로 인해 센터 정렬되기 때문에 위에서 적용한 blog_header_left의 margin 값을 없애준다.
- blog_header_left 만 있을 때
-
button 태그는 기본적으로 회색을 가진다.
-
cursor: pointer;
클릭 영역에서 커서가 손가락 모양으로 변한다.
2. blog header nav
[html]
<div class="blog_header_nav">
<div class="blog_container">
<nav class="nav_left">
<ul>
<li class="on"><a href="#">블로그 홈</a></li>
<li><a href="#">주제별 보기</a></li>
<li><a href="#">이달의 블로그</a></li>
<li><a href="#">공식 블로그</a></li>
<li><a href="#">챌린지 프로그램</a></li>
</ul>
</nav>
<nav class="nav_right">
<ul>
<li class="on"><a href="#">블로그 마켓 가입</a></li>
<li><a href="#">아이템 팩토리</a></li>
<li><a href="#">블로그팀 공식 블로그</a></li>
</ul>
</nav>
</div>
</div>
[css]
#blog_header .blog_header_nav {
height: 40px;
background-color: #ffffff;
border-bottom: solid 1px #e5e5e5;
}
#blog_header .blog_header_nav .blog_container {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
}
#blog_header .blog_header_nav .nav_left
#blog_header .blog_header_nav .nav_left ul {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
align-items: center;
}
#blog_header .blog_header_nav .nav_left ul li {
height: 40px;
border-bottom: solid 3px transparent;
margin-right: 16px;
}
#blog_header .blog_header_nav .nav_left ul li.on {
border-bottom: solid 3px #00AB33;
}
#blog_header .blog_header_nav .nav_left ul li.on a {
color: #00AB33;
font-weight: 700;
}
#blog_header .blog_header_nav .nav_left ul li a {
display: block;
width: 100%;
height: 100%;
line-height: 40px;
font-size: 13px;
}
#blog_header .blog_header_nav .nav_right
#blog_header .blog_header_nav .nav_right ul {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
align-items: center;
}
#blog_header .blog_header_nav .nav_right ul li {
width: auto;
height: 26px;
margin-left: 5px;
}
#blog_header .blog_header_nav .nav_right ul li a {
display: block;
width: 100%;
height: 100%;
background-color: #ffffff;
border: solid 1px #cecece;
line-height: 26px;
font-size: 13px;
padding: 0 10px;
}
#blog_header .blog_header_nav .nav_right ul li.on a {
background-color: #00c73c;
border: solid 1px rgba(0, 0, 0, 0.07);
color: #ffffff;
}
border-bottom: solid 3px transparent;
,border-bottom: solid 3px #00AB33;
: 하나의 li 태그에만 색상 볼더가 들어가도 정렬이 흐트러지지 않게 막아주는 팁
2. Main
구조
[html]
<main role="main" id="blog_main">
<div id="hot_topic"></div>
<div id="blog_main_content" class="blog_container">
<div class="blog_main_left"></div>
<div class="blog_main_right"></div>
</div>
</main>
[css]
#blog_main {
padding-top: 0px;
}
3. Main - Hot Topic
[html]
<div id="hot_topic">
<div class="blog_container">
<div class="hot_topic_left">
<div class="topic_heading">
<h3>핫토픽</h3>
<i></i>
<a href="#">다꾸를 해요</a>
</div>
<ul class="topic_lists">
<li>
<img src="https://via.placeholder.com/252x240">
<p>초보 다꾸러의 다꾸 팁<br>공개!</p>
</li>
<li>
<img src="https://via.placeholder.com/252x240">
<p>초보 다꾸러의 다꾸 팁<br>공개!</p>
</li>
<li>
<img src="https://via.placeholder.com/252x240">
<p>초보 다꾸러의 다꾸 팁<br>공개!</p>
</li>
</ul>
<div class="pagination_wrap">
<a href="#">1</a>
<a href="#">2</a>
<a href="#">3</a>
<a href="#">4</a>
<a href="#">5</a>
</div>
</div>
<div class="hot_topic_right">
<div class="topic_banner"></div>
<div class="pagination_wrap">
<a href="#">1</a>
<a href="#">2</a>
<a href="#">3</a>
<a href="#">4</a>
<a href="#">5</a>
</div>
</div>
</div>
</div>
[css]
#blog_main #hot_topic {
height: 305px;
background-color: #f5f5f6;
padding: 20px 0 15px;
}
#blog_main #hot_topic .blog_container {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
}
#blog_main #hot_topic .hot_topic_left {
position: relative;
width: 770px;
}
#blog_main #hot_topic .hot_topic_left .topic_heading {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
align-items: center;
margin-bottom: 11px;
}
#blog_main #hot_topic .hot_topic_left .topic_heading h3 {
font-size: 16px;
font-weight: 600;
color: #e55e5e;
}
#blog_main #hot_topic .hot_topic_left .topic_heading i {
display: block; -> 기본적으로 i 태그는 inline 요소라서 공간을 만들 수 없다.
width: 8px;
height: 13px;
background-color: grey;
margin: 0 8px;
}
#blog_main #hot_topic .hot_topic_left .topic_heading a {
font-size: 16px;
}
#blog_main #hot_topic .hot_topic_left .topic_lists {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
}
#blog_main #hot_topic .hot_topic_left .topic_lists li {
position: relative;
width: 252px;
height: 240px;
}
#blog_main #hot_topic .hot_topic_left .topic_lists li img {
position: absolute;
width: 100%;
height: 100%;
}
#blog_main #hot_topic .hot_topic_left .topic_lists li p {
position: absolute;
width: 100%;
background-color: rgba(55, 66, 87, 0.9);
bottom: 0; -> 부모 요소인 li 태그에서 가장 아래
color: #ffffff;
text-align: center; -> 텍스트 영역 내에서 센터 정렬
padding: 20px 0;
}
#blog_main #hot_topic .pagination_wrap {
position: absolute;
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
align-items: center;
top: 0;
right: 0;
}
#blog_main #hot_topic .pagination_wrap a {
display: block;
width: 20px;
height: 20px;
background-color: #f6f6f7;
border: solid 1px rgba(221, 221, 223, 0.8);
color: #888;
font-size: 12px;
text-align: center;
line-height: 20px;
margin-left: 4px;
}
#blog_main #hot_topic .hot_topic_right {
position: relative;
width: 280px;
padding-top: 30px; -> topic_lists와 높이 맞춰줌
}
#blog_main #hot_topic .hot_topic_right .topic_banner {
width: 280px;
height: 240px;
background-color: black;
}
- position 과 bottom 활용해서 img 태그와 p 태그를 겹치게 정렬한다.
: 부모 요소 li 의 position -> relative
: 자식 요소 img, p 의 position -> absolute
-
HEX 색상 코드 사용법 (참고 : http://hex2rgba.devoth.com/)
:background-color: #374257;
+opacity: 0.9;
->background-color: rgba(55, 66, 87, 0.9);
-
pagination wrap 정렬(left/right 공통)
(1) 부모 요소 hot_topic_left :position: relative;
(2) pagination_wrap :position: absolute;
+top: 0;
+right: 0;
※ a 태그 단독으로 영역을 잡거나 margin을 줄 때는 항상 display:block;
으로 바꾼 후 적용한다.
4. Main Left
[html]
<div class="blog_main_left">
<div id="blog_main_notification">
<p>
로그아웃 상태입니다.<br>
로그인하여 이웃 새글을 확인해보세요.
</p>
</div>
<div id="blog_article">
<nav class="blog_article_nav">
<ul>
<li><a href="#">전체</a></li>
<li><a href="#">음악</a></li>
<li><a href="#">사진</a></li>
<li><a href="#">취미</a></li>
</ul>
</nav>
<ul class="blog_article_lists">
<li>
<a href="#">
<div class="blog_article_info">
<div class="blog_profile_wrap">
<img src="https://via.placeholder.com/32x32">
<div class="blog_profile_info">
<h3>류영서</h3>
<p>13시간 전</p>
</div>
</div>
<h2>Title 1</h2>
<p class="paragraph">동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 </p>
<div class="comments">
<span>공감 <em>46</em></span>
<span>댓글 <em>11</em></span>
</div>
</div>
<img src="https://via.placeholder.com/167x167">
</a>
</li>
<li>
<a href="#">
<div class="blog_article_info">
<div class="blog_profile_wrap">
<img src="https://via.placeholder.com/32x32">
<div class="blog_profile_info">
<h3>류영서</h3>
<p>13시간 전</p>
</div>
</div>
<h2>Title 1</h2>
<p class="paragraph">동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 </p>
<div class="comments">
<span>공감 <em>46</em></span>
<span>댓글 <em>11</em></span>
</div>
</div>
<img src="https://via.placeholder.com/167x167">
</a>
</li>
<li>
<a href="#">
<div class="blog_article_info">
<div class="blog_profile_wrap">
<img src="https://via.placeholder.com/32x32">
<div class="blog_profile_info">
<h3>류영서</h3>
<p>13시간 전</p>
</div>
</div>
<h2>Title 1</h2>
<p class="paragraph">동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 </p>
<div class="comments">
<span>공감 <em>46</em></span>
<span>댓글 <em>11</em></span>
</div>
</div>
<img src="https://via.placeholder.com/167x167">
</a>
</li>
<li>
<a href="#">
<div class="blog_article_info">
<div class="blog_profile_wrap">
<img src="https://via.placeholder.com/32x32">
<div class="blog_profile_info">
<h3>류영서</h3>
<p>13시간 전</p>
</div>
</div>
<h2>Title 1</h2>
<p class="paragraph">동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 </p>
<div class="comments">
<span>공감 <em>46</em></span>
<span>댓글 <em>11</em></span>
</div>
</div>
<img src="https://via.placeholder.com/167x167">
</a>
</li>
<li>
<a href="#">
<div class="blog_article_info">
<div class="blog_profile_wrap">
<img src="https://via.placeholder.com/32x32">
<div class="blog_profile_info">
<h3>류영서</h3>
<p>13시간 전</p>
</div>
</div>
<h2>Title 1</h2>
<p class="paragraph">동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 </p>
<div class="comments">
<span>공감 <em>46</em></span>
<span>댓글 <em>11</em></span>
</div>
</div>
<img src="https://via.placeholder.com/167x167">
</a>
</li>
</ul>
</div>
</div>
[css]
#blog_main #blog_main_content {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
#blog_main #blog_main_content .blog_main_left {
width: 770px;
}
#blog_main #blog_main_content .blog_main_left #blog_main_notification {
background-color: #ffffff;
text-align: center;
padding: 54px 0;
}
#blog_main #blog_main_content .blog_main_left #blog_main_notification p {
font-size: 16px;
line-height: 30px;
}
#blog_main #blog_main_content .blog_main_left #blog_article
#blog_main #blog_main_content .blog_main_left #blog_article .blog_article_nav {
background-color: #ffffff;
border-top: solid 2px #999999;
border-bottom: solid 2px #999999;
padding: 10px 0;
font-size: 14px;
}
.blog_main_left #blog_article .blog_article_nav ul {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
align-items: center;
}
.blog_main_left #blog_article .blog_article_nav ul li {
margin-right: 22px;
}
#blog_main #blog_main_content .blog_main_left #blog_article .blog_article_lists
#blog_article .blog_article_lists li {
width: 100%;
/*height: 172px;*/
border-bottom: solid 1px #eeeeef;
padding: 25px 0 23px;
}
#blog_article .blog_article_lists li a {
display: block;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
width: 100%;
height: 100%;
}
#blog_article .blog_article_lists li a .blog_article_info {
width: 573px;
}
#blog_article .blog_article_lists .blog_article_info .blog_profile_wrap {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
align-items: center;
}
#blog_article .blog_article_lists .blog_article_info .blog_profile_wrap img {
width: 32px;
height: 32px;
border-radius: 50%; -> 원형으로 바꿔줌
margin-right: 10px;
}
#blog_article .blog_article_lists .blog_article_info .blog_profile_wrap .blog_profile_info {
}
#blog_article .blog_article_lists .blog_article_info .blog_profile_info h3 {
font-size: 14px;
margin-bottom: 3px;
}
#blog_article .blog_article_lists .blog_article_info .blog_profile_info p {
font-size: 11px;
color: #959595;
}
#blog_article .blog_article_lists .blog_article_info h2 {
font-size: 17px;
margin-top: 16px;
}
#blog_article .blog_article_lists .blog_article_info .paragraph {
color: #666666;
font-size: 13px;
margin-top: 10px;
}
#blog_article .blog_article_lists .blog_article_info .comments {
color: #959595;
font-size: 12px;
margin-top: 14px;
}
#blog_article .blog_article_lists .blog_article_info .comments span {
margin-right: 9px;
}
#blog_article .blog_article_lists .blog_article_info .comments span em {
font-style: normal;
}
Author And Source
이 문제에 관하여(7월 27일 Velog), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ryuyoungseo8232/727Velog저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)