HTML 문서
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>네이버</title>
<link rel="stylesheet" type="text/css" href="css/style1.css">
</head>
CSS 문서
/* Default CSS */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
ol, ul {
list-style: none;
}
a {
text-decoration: none;
color: #000000;
}
img {
vertical-align: middle;
}
button {
border: none;
}
input, textarea {
outline: none;
}
.clearfix {
clear: both;
}
.container {
width: 1130px;
margin: 0 auto;
}
.esport-flex-start {
display: flex;
flex-wrap: wrap;
align-items: center;
}
.esport-flex-center {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
}
.esport-flex-end {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
align-items: center;
}
.esport-flex-between {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
}
.esport-container {
width: 1280px;
margin: 0 auto;
}
inherit
속성은 부모 태그에서 속성을 상속받는다는 의미
원하는 꼭지점에만 border-radius
를 적용하고 싶을 때는, border-bottom-right-radius: px
형식으로 속성을 적용하면 됨
display block
속성이 설정되어 있으면, flex
속성 적용 불가
폰트 서체 설정할 때는, font-family
속성을 사용하여 지정 가능. 각각 브라우저마다 적용 가능한 폰트가 다르기 때문에, 여러 개의 폰트를 적용 (sans-serif
폰트는 모든 브라우저에서 적용 가능)
구글 웹 폰트 사이트(https://fonts.google.com/) 를 이용하여, 원하는 폰트를 쉽게 적용 가능. CSS link
위에, 폰트 link
태그를 설정 (폰트를 먼저 적용).
그 후에, CSS 문서에 font-family
속성 적용 (폰트를 바꾸면 레이아웃이 바뀔 수 있음, 항상 끝은 sans-serif
속성을 기본)
schedule-body
영역의 status
영역을 진행중과 예정 class
로 구분하여 설정함
HTML 문서
<body>
<main id="esport-main" role="main">
<div class="esport-container">
<div class="content-wrap">
<div class="right">
<div id="esport-news-view">
<h2>많이 본 뉴스</h2>
<ol>
<li>
<a href="#" class="esport-flex-between">
<div class="image-wrap">
<img src="https://via.placeholder.com/84x48">
<span class="rank">1</span>
</div>
<h3>타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀</h3>
</a>
</li>
<li>
<a href="#" class="esport-flex-between">
<div class="image-wrap">
<img src="https://via.placeholder.com/84x48">
<span class="rank">1</span>
</div>
<h3>타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀</h3>
</a>
</li>
<li>
<a href="#" class="esport-flex-between">
<div class="image-wrap">
<img src="https://via.placeholder.com/84x48">
<span class="rank">1</span>
</div>
<h3>타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀</h3>
</a>
</li>
<li>
<a href="#" class="esport-flex-between">
<div class="image-wrap">
<img src="https://via.placeholder.com/84x48">
<span class="rank">1</span>
</div>
<h3>타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀</h3>
</a>
</li>
<li>
<a href="#" class="esport-flex-between">
<div class="image-wrap">
<img src="https://via.placeholder.com/84x48">
<span class="rank">1</span>
</div>
<h3>타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀</h3>
</a>
</li>
<li>
<a href="#" class="esport-flex-between">
<div class="image-wrap">
<img src="https://via.placeholder.com/84x48">
<span class="rank">1</span>
</div>
<h3>타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀</h3>
</a>
</li>
<li>
<a href="#" class="esport-flex-between">
<div class="image-wrap">
<img src="https://via.placeholder.com/84x48">
<span class="rank">1</span>
</div>
<h3>타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀</h3>
</a>
</li>
<li>
<a href="#" class="esport-flex-between">
<div class="image-wrap">
<img src="https://via.placeholder.com/84x48">
<span class="rank">1</span>
</div>
<h3>타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀</h3>
</a>
</li>
<li>
<a href="#" class="esport-flex-between">
<div class="image-wrap">
<img src="https://via.placeholder.com/84x48">
<span class="rank">1</span>
</div>
<h3>타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀</h3>
</a>
</li>
<li>
<a href="#" class="esport-flex-between">
<div class="image-wrap">
<img src="https://via.placeholder.com/84x48">
<span class="rank">1</span>
</div>
<h3>타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀 타이틀</h3>
</a>
</li>
</ol>
</div>
<div id="esport-schedule">
<h2>e스포츠 경기 일정/결과</h2>
<div class="schedule-wrap">
<div class="schedule-header esport-flex-between">
<button class="arrow arrow-left"></button>
<span>08.13 금</span>
<button class="arrow arrow-right"></button>
</div>
<div class="schedule-body">
<ul>
<li>
<h3>2021 LCK 서머 정규시즌 2R</h3>
<div class="status-wrap esport-flex-center">
<span class="status-ing">진행중</span>
<span class="time">10:00</span>
</div>
</li>
<li>
<h3>2021 LCK 서머 정규시즌 2R</h3>
<div class="status-wrap esport-flex-center">
<span class="status-will">예정</span>
<span class="time">20:00</span>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</main>
</body>
CSS 문서 1 - style.css
#esport-main .right {
float: right;
width: 357px;
/*height: 2000px;*/
/*background-color: grey;*/
}
#esport-news-view {
padding: 20px;
border: solid 1px grey;
border-radius: 10px;
margin-bottom: 30px;
}
#esport-news-view h2 {
font-size: 18px;
}
#esport-news-view ol {
margin-top: 20px;
}
#esport-news-view li {
margin-bottom: 8px;
}
#esport-news-view li:last-child {
margin-bottom: 0;
}
#esport-news-view li a {
/*display: block;*/
}
#esport-news-view li .image-wrap {
overflow: hidden;
position: relative;
width: 84px;
height: 48px;
border: solid 1px rgba(0, 0, 0, .04);
border-radius: 4px;
}
#esport-news-view li .image-wrap img {
position: absolute;
width: 100%;
height: 100%;
}
#esport-news-view li .image-wrap .rank {
position: absolute;
background-color: #4e41db;
border-bottom-right-radius: 4px;
padding: 4px 10px;
top: 0;
left: 0;
font-size: 13px;
color: #fff;
font-weight: 800;
}
#esport-news-view li h3 {
display: -webkit-box;
overflow: hidden;
width: 218px;
max-height: 38px;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
text-overflow: ellipsis;
font-size: 14px;
line-height: 19px;
}
#esport-schedule h2 {
font-size: 18px;
}
#esport-schedule .schedule-wrap {
margin-top: 15px;
border: solid 1px grey;
border-radius: 4px;
}
#esport-schedule .schedule-wrap .schedule-header {
padding: 14px 15px;
border-bottom: solid 1px grey;
}
#esport-schedule .schedule-wrap .schedule-header .arrow {
width: 20px;
height: 20px;
}
#esport-schedule .schedule-wrap .schedule-header .arrow.arrow-left {
background-color: yellow;
}
#esport-schedule .schedule-wrap .schedule-header .arrow.arrow-right {
background-color: greenyellow;
}
#esport-schedule .schedule-wrap .schedule-header span {
position: relative;
font-size: 18px;
font-weight: 800;
top: 3px;
}
#esport-schedule .schedule-body {
padding: 17px 0;
}
#esport-schedule .schedule-body li:first-child:after {
content: "";
display: block;
width: calc(100% - 40px);
height: 1px;
background-color: rgba(0, 0, 0, .05);
margin: 17px auto;
}
#esport-schedule .schedule-body li h3 {
font-size: 14px;
margin-bottom: 12px;
text-align: center;
}
#esport-schedule .schedule-body li .status-wrap:hover {
/*cursor: pointer;*/
background-color: yellow;
}
#esport-schedule .schedule-body li .status-wrap .status-ing {
background-color: rgba(255, 0, 0, .1);
color: red;
font-weight: 500;
font-size: 11px;
border-radius: 3px;
margin-right: 4.5px;
padding: 2px 4px;
}
#esport-schedule .schedule-body li .status-wrap .status-will {
background-color: rgba(163, 173, 202, .16);
color: black;
font-weight: 500;
font-size: 11px;
border-radius: 3px;
margin-right: 4.5px;
padding: 2px 4px;
}
#esport-schedule .schedule-body li .status-wrap .time{
position: relative;
top: 1px;
font-size: 15px;
font-weight: 700;
}
HTML 문서
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>네이버</title>
<link rel="stylesheet" type="text/css" href="css/style1.css">
</head>
CSS 문서
/* Default CSS */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
ol, ul {
list-style: none;
}
a {
text-decoration: none;
color: #000000;
}
img {
vertical-align: middle;
}
button {
border: none;
}
input, textarea {
outline: none;
}
.clearfix {
clear: both;
}
.container {
width: 1130px;
margin: 0 auto;
}
.audio-container {
width: 1080px;
margin: 0 auto;
}
.audio-flex-start {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: flex-start;
align-items: center;
align-content: stretch;
}
.audio-flex-between {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
align-content: stretch;
}
.audio-flex-center {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
align-items: center;
align-content: stretch;
}
.audio-flex-end {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: flex-end;
align-items: center;
align-content: stretch;
}
width
, height
속성 사용 안함)fixed, relative, absolute
)에서 적용할 때는, top, bottom, left, right
속성을 사용하여 공간을 만들고, border-bottom
을 적용하는 방식이 있음, HTML 문서
<body>
<header id="audio-header">
<div class="audio-container">
<nav id="audio-nav" class="audio-flex-between">
<div class="audio-nav-left audio-flex-between">
<h1 class="audio-logo">
<a href="#">audio clip</a>
</h1>
<ul class="audio-flex-end">
<li><a href="audio.html" class="active"><span>홈</span></a></li>
<li><a href="#"><span>랭킹</span></a></li>
<li><a href="#"><span>연재 채널</span></a></li>
<li><a href="#"><span>오디오북</span></a></li>
<li><a href="#"><span>카테고리</span></a></li>
<li><a href="#"><span>이벤트</span></a></li>
</ul>
</div>
<div class="audio-nav-right audio-flex-between">
<div class="search-wrap audio-flex-start">
<i class="icon-search"></i>
<input type="text" placeholder="무엇을 찾으세요?">
</div>
<div class="profile-wrap">
<img src="https://via.placeholder.com/32" class="profile-img">
<a href="#" class="btn-login">로그인</a>
</div>
</div>
</nav>
</div>
</header>
</body>
CSS 문서 1 - style.css
#audio-header {
position: fixed;
width: 100%;
background-color: #ffffff;
border-bottom: solid 1px #efeff4;
left: 0;
top: 0;
z-index: 99999;
}
#audio-header .audio-nav-left {
width: 660px;
}
#audio-header .audio-nav-left .audio-logo {
font-size: 25px;
}
#audio-header .audio-nav-left ul {
padding-top: 10px;
}
#audio-header .audio-nav-left li a {
display: block;
font-size: 17px;
padding: 12px 13px 17px 12px;
}
#audio-header .audio-nav-left li a.active {
font-weight: 700;
}
#audio-header .audio-nav-left li a span {
position: relative;
display: inline-block;
height: 21px;
}
#audio-header .audio-nav-left li a.active span:after {
display: block;
position: absolute;
content: "";
border-bottom: solid 3px #222222;
border-radius: 1.5px;
z-index: 1;
left: -4.5px;
right: -5.5px;
bottom: -17px;
}
#audio-header .audio-nav-right {
width: 330px;
}
#audio-header .audio-nav-right .search-wrap {
width: 190px;
height: 40px;
background-color: #ffffff;
border: solid 2px rgba(0, 86, 201, .2);
border-radius: 4px;
}
#audio-header .audio-nav-right .search-wrap .icon-search {
width: 40px;
height: 100%;
background-color: yellow;
}
#audio-header .audio-nav-right .search-wrap input {
width: calc(100% - 40px);
height: 100%;
padding-left: 8px;
font-size: 15px;
outline: none;
border: none;
}
#audio-header .audio-nav-right .search-wrap input:focus {
outline: none;
}
#audio-header .audio-nav-right .profile-wrap .profile-img {
width: 32px;
height: 32px;
border-radius: 50%;
}
#audio-header .audio-nav-right .profile-wrap .btn-login {
font-size: 15px;
padding-left: 8px;
}
top, bottom, left, right
속성 사용)top, bottom, left, right
속성을 사용하여 3차원끼리 사면을 당긴다는 개념으로, width
, height
속성 없이 영역의 크기를 설정하여 밑줄을 적용한다는 것을 알았음. 그러나, 지금은 활용하기 힘든 개념이기 때문에 후에 있을 실습 과정에서 다시 알아볼 예정.