2021.06.17(NAVERニュース1)
56700 ワード
学習の内容
[NAVERニューストップ]
<header id="news_header">
<div class="news_container">
<div class="news_flex_between">
<nav class="news_header_left">
<ul class="news_flex_start">
<li class="on"><a href="#">뉴스</a></li>
<li><a href="#">TV연애</a></li>
<li><a href="#">스포츠</a></li>
<li><a href="#">뉴스스탠드</a></li>
<li><a href="#">날씨</a></li>
</ul>
</nav>
<div class="news_header_right news_flex_end">
<a href="#" class="btn_login">로그인</a>
<button type="button" class="btn_menu"></button>
</div>
</div>
</div>
<nav class="sub_nav">
<div class="news_container">
<div class="news_flex_between">
<ul class="news_flex_start">
<li><a href="#" class="on">뉴스홈</a></li>
<li><a href="#">속보</a></li>
<li><a href="#">정치</a></li>
<li><a href="#">경제</a></li>
</ul>
<div class="news_search_wrap news_flex_between">
<input type="text" placeholder="뉴스 검색">
<button type="button" class="btn_search"></button>
</div>
</div>
</div>
</nav>
</header>
.news_container {
width: 1080px;
margin: 0 auto;
}
.news_flex_between {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
}
.news_flex_start {
display: flex;
flex-wrap: wrap;
align-items: center;
}
.news_flex_end {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
align-items: center;
}
#news_header {
background-color: #3f63bf;
}
#news_header .news_header_left {
padding-top: 17px;
padding-bottom: 17px;
}
#news_header .news_header_left ul li {
font-size: 15px;
}
#news_header .news_header_left ul li.on {
font-size: 20px;
font-weight: 700;
}
#news_header .news_header_left ul li a {
color: #ffffff;
}
#news_header .news_header_left ul li a:before {
content: "";
display: inline-block;
width: 1px;
height: 15px;
background-color: #000;
opacity: 0.2;
margin: 0 10px;
vertical-align: -1px;
}
#news_header .news_header_left ul li:first-child a:before {
content: none;
}
#news_header .news_header_right .btn_login {
display: block;
width: 55px;
height: 25px;
border: solid 1px #000000;
line-height: 25px;
text-align: center;
color: #ffffff;
font-size: 12px;
margin-right: 20px;
}
#news_header .news_header_right .btn_menu {
width: 55px;
height: 55px;
border-left: solid 1px #000000;
border-right: solid 1px #000000;
background-color: #3f63bf;
}
#news_header .sub_nav {
background-color: #ffffff;
border-top: solid 1px #000000;
border-bottom: solid 1px #e3e3e3;
}
#news_header .sub_nav ul {
}
#news_header .sub_nav ul li {
width: auto;
height: 46px;
margin-right: 16px;
}
#news_header .sub_nav ul li a {
display: block;
width: 100%;
height: 100%;
border-bottom: solid 2px transparent;
line-height: 46px;
font-weight: bold;
}
#news_header .sub_nav ul li a.on {
border-bottom: solid 2px #3f63bf;
color: #3f63bf;
}
#news_header .sub_nav .news_search_wrap {
width: 280px;
height: 30px;
border: solid 1px #e1e1e1;
background-color: #fafafa;
}
#news_header .sub_nav .news_search_wrap input {
width: calc(100% - 30px);
height: 100%;
border: none;
font-size: 12px;
color: #888888;
padding: 3px 9px;
}
#news_header .sub_nav .news_search_wrap input:focus {
outline: none;
}
#news_header .sub_nav .news_search_wrap .btn_search {
width: 30px;
height: 100%;
background-color: blue;
}
<div id="news_headline">
<div class="news_container">
<div class="news_headline_menu_wrap news_flex_between">
<ul class="main_lists news_flex_start">
<li><a href="#">신문 헤드라운</a></li>
<li><a href="#">저녁 방송 뉴스</a></li>
</ul>
<ul class="sub_lists news_flex_end">
<li><a href="#">팩트체크</a></li>
<li><a href="#">언론사 구독</a></li>
<li><a href="#">언론사 뉴스</a></li>
<li><a href="#">라이브러리</a></li>
</ul>
</div>
<ul class="news_headline_lists news_flex_between">
<li>
<a href="#">
<article>
<h3>TV조선 뉴스9</h3>
<div class="image_wrap">
<img src="https://via.placeholder.com/150">
<div class="overlay">
<div class="headline_info news_flex_start">
<i></i>
<div>
<span>다시보기</span>
<p>또 뛰는 집값... 2.4대책 직전으로 돌아갔다.</p>
</div>
</div>
</div>
</div>
</article>
</a>
</li>
<li>
<a href="#">
<article>
<h3>TV조선 뉴스9</h3>
<div class="image_wrap">
<img src="https://via.placeholder.com/150">
<div class="overlay">
<div class="headline_info news_flex_start">
<i></i>
<div>
<span>다시보기</span>
<p>또 뛰는 집값... 2.4대책 직전으로 돌아갔다.</p>
</div>
</div>
</div>
</div>
</article>
</a>
</li>
<li>
<a href="#">
<article>
<h3>TV조선 뉴스9</h3>
<div class="image_wrap">
<img src="https://via.placeholder.com/150">
<div class="overlay">
<div class="headline_info news_flex_start">
<i></i>
<div>
<span>다시보기</span>
<p>또 뛰는 집값... 2.4대책 직전으로 돌아갔다.</p>
</div>
</div>
</div>
</div>
</article>
</a>
</li>
<li>
<a href="#">
<article>
<h3>TV조선 뉴스9</h3>
<div class="image_wrap">
<img src="https://via.placeholder.com/150">
<div class="overlay">
<div class="headline_info news_flex_start">
<i></i>
<div>
<span>다시보기</span>
<p>또 뛰는 집값... 2.4대책 직전으로 돌아갔다.</p>
</div>
</div>
</div>
</div>
</article>
</a>
</li>
</ul>
<div class="new_headline_arrows news_flex_end">
<div class="btn_wrap news_flex_start">
<a href="#" class="btn btn_prev"></a>
<a href="#" class="btn btn_next"></a>
</div>
<a href="#" class="btn btn_up"></a>
</div>
</div>
</div>
#news_headline {
padding-top: 20px;
}
#news_headline .news_container {
border-bottom: solid 1px #000000;
padding-bottom: 12px;
}
#news_headline .news_headline_menu_wrap {
margin-bottom: 15px;
}
#news_headline .news_headline_menu_wrap .main_lists li {
font-size: 15px;
margin-right: 20px;
}
#news_headline .news_headline_menu_wrap .sub_lists li {
font-size: 12px;
}
#news_headline .news_headline_menu_wrap .sub_lists li a:before {
content: "";
display: inline-block;
width: 1px;
height: 12px;
background-color: #e0e0e0;
margin: 0 5px;
vertical-align: -1px;
}
#news_headline .news_headline_menu_wrap .sub_lists li:first-child a:before {
content: none;
}
#news_headline .news_headline_lists {
margin-bottom: 12px;
}
#news_headline .news_headline_lists li {
width: 255px;
height: 178px;
border: solid 1px #ccc;
}
#news_headline .news_headline_lists li a {
display: block;
width: 100%;
height: 100%;
}
#news_headline .news_headline_lists li a article {
position: relative;
width: 100%;
height: 100%;
}
#news_headline .news_headline_lists li a article h3 {
width: 100%;
height: 44px;
line-height: 44px;
text-align: center;
}
#news_headline .news_headline_lists li a article .image_wrap {
position: relative;
width: 100%;
height: 132px;
}
#news_headline .news_headline_lists li a article .image_wrap img {
position: absolute;
width: 100%;
height: 100%;
}
#news_headline .news_headline_lists li a article .image_wrap .overlay {
position: absolute;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
}
#news_headline .news_headline_lists li a article .image_wrap .overlay .headline_info {
position: absolute;
width: 100%;
padding: 15px 20px;
left: 0;
bottom: 0;
color: #ffffff;
}
#news_headline .news_headline_lists li a article .image_wrap .overlay .headline_info div {
width: calc(100% - 38px);
}
#news_headline .news_headline_lists li a article .image_wrap .overlay .headline_info i {
display: block;
width: 26px;
height: 26px;
background-color: black;
border-radius: 50%;
margin-right: 10px;
}
#news_headline .news_headline_lists li a article .image_wrap .overlay .headline_info span {
font-size: 13px;
font-weight: bold;
}
#news_headline .news_headline_lists li a article .image_wrap .overlay .headline_info p {
display: inline;
font-size: 12px;
}
#news_headline .new_headline_arrows {
}
#news_headline .new_headline_arrows .btn_wrap {
margin-right: 15px;
}
#news_headline .new_headline_arrows .btn {
display: block;
width: 24px;
height: 24px;
border: solid 1px #dcdddc;
}
#news_headline .new_headline_arrows .btn_prev {
background-color: yellow;
border-right: none;
}
#news_headline .new_headline_arrows .btn_next {
background-color: pink;
}
#news_headline .new_headline_arrows .btn_up {
background-color: black;
}
[NAVERニュースの主要部分]
<main role="main" id="news_main">
<div class="news_container">
<div class="news_left">
<h2>left test</h2>
</div>
<div class="news_right">
<h2>right test</h2>
</div>
</div>
</main>
#news_main .news_container {
overflow: hidden;
}
#news_main .news_left {
float: left;
width: 750px;
}
#news_main .news_right {
float: right;
width: 327px;
border-left: solid 1px #dfdfdf;
padding: 25px 0 40px 26px;
}
学習内容の難点
News headline部分のoverlay部分は他の部分に比べてやや困難である.もう一つの部分はインラインとblockです.
解決策
最初は理解するのが少し難しいですが、position部分を考慮すると、親部分が相対的に指定され、子部分が絶対的に指定されていることに気づきました.同じ3 Dサブ部分であれば、一番後ろに作成した一番上のフォーマットを使用してimgから処理を開始し、上にoverlayを上書きし、最後にabsoluteとしてheadly infoまで指定しました.腸に置く形で逐次漸進し、問題の解決に役立つ.
inline blockセクションでは、多くのタグを検索または検索して、検索方法を理解する必要があります.
学習の心得.
共通コードをクラスとして単独でクラスに配置し、必要な場所でクラス名を使用することで、コードの長さが短くなり、コードの再利用性が小さくなり、作業が容易になります.
flexboxのみを使用していますが、後で各種コードをクラスに減らすことができ、コードを簡略化できると思います.
Reference
この問題について(2021.06.17(NAVERニュース1)), 我々は、より多くの情報をここで見つけました https://velog.io/@lstem12/2021.06.17-naver-news-1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol