네이버 모바일 버전 페이지(1)
github소스코드
<meta name="viewport" content="width=device-width, initial-scale=1.0">
overflow-x: hidden
: 가로 방향으로 넘어가는 내용 감추기overflow-y: auto
: 세로 스크롤 필요할 때 나타남vh(viewport height)
: 기기 화면 높이값을 기준으로 한 비율. 100vh이면 기기 높이의 100%를 의미한다..wrapper {
overflow-x: hidden;
overflow-y: auto;
width: 375px;
height: 100vh;
margin: 0 auto;
background-color: #eaeef3;
}
flex-wrap: nowrap
, white-space:nowrap
으로 줄바꿈을 방지한다.overflow-x: auto
를 이용해 가로스크롤을 생성한다.#main-nav ul {
overflow-x: auto;
white-space: nowrap;
display: flex;
flex-wrap: nowrap;
justify-content: flex-start;
align-items: center;
}
border-bottom
을 변경해주었다. 이때 border의 영역이 글자에만 적용되게 하기 위해 padding의 위치를 강의와 다르게 li가 아닌 a태그 안으로 옮겨주었다.<li><a class="active" href="#">홈</a></li>
<li><a href="#">뉴스</a></li>
#main-nav ul li a {
display: block;
height: 100%;
border-bottom: solid 3px transparent;
line-height: 54px;
color: rgba(255, 255, 255, .5);
font-weight: 700;
}
#main-nav ul li a.active {
border-bottom: solid 3px rgba(255,255,255,.75);;
color: rgba(255, 255, 255, 1);
}
-ms-overflow-style: none
: 선택하려 하니 줄 그어져 있음.ms
~: explorer, edge에 영향 미치는 prefixscrollbar-width
: 파이어폭스에 영향 미침 ::-webkit-scrollbar
에서 display:none
: 크롬, 사파리, 오페라 브라우저에서 적용됨#main-nav ul {
-ms-overflow-style: none;
scrollbar-width: none;
}
#main-nav ul::-webkit-scrollbar {
display: none;
}
box-shadow
가 있길래 복사해서 추가해주었다.#header .search-wrap {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
align-items: center;
overflow:hidden;
position: relative;
width: 333px;
height: 52px;
margin: 0 auto 24px;
border-radius: 26px;
border: solid 1px #03cf5d;
background-color: #ffffff;
box-shadow: 0 5px 10px 0 rgb(117 145 181 / 12%);
}
inline-block
속성을 주었더니 아래 공백을 원래 가지고 있어서 따로 공백값을 줄 필요가 없었다.#header .header-nav li a .icon {
display: inline-block;
width: 44px;
height: 44px;
border-radius: 8px;
/* border: solid 1px gray; */
background-color: #ffffff;
box-shadow: 0 5px 10px 0 rgb(117 145 181 / 12%);
}
overflow: hidden
으로 넘어간 부분 안 보이게 처리하기 #banner-4 .banner-wrap img {
position: relative;
height: 100%;
left: 50%;
transform: translateX(-50%);
}
<h3>24° 대구</h3>
#weather .weather-top .weather-left .txt-wrap p .state {
color: #00d01d;
}
#weather .weather-top .weather-left .txt-wrap p .state.good {
color: #00a8ff;
}
overflow-y:auto
를 사용했는데, 아무리 생각해도 가로 스크롤이면 overflow-x
가 맞는 것 같은데 의외로 화면 상 달라진 것은 없었다. 왜 되는거지...?.scroll-section ul {
overflow-x: auto;
/* white-space: nowrap; */
display: flex;
flex-wrap: nowrap;
justify-content: flex-start;
align-items: flex-start;
padding: 0 20px 20px;
}
.scroll-section li a p {
overflow: hidden;
display: -webkit-box;
max-width: 100%;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
padding-top: 10px;
font-size: 14px;
}
margin-top
을 주어 공백을 만들었지만 ul태그에 스크롤이 생성될 때 내부 콘텐츠 일부를 가리는 것을 막기 위해 대신 padding-top
을 주었다.float:left
를 사용하였다. float을 사용하면 3차원 속성을 가지게 되기 때문에 display등을 바꿔서 배치를 할 필요가 없어진다. 또한 추후 경제지표 영역에서 버튼이 3개 이상 나올 것을 고려해서 세로줄이 있는 것을 기본으로 만들었다..scroll-section .btn-wrap a::before {
content: "";
float:left;
width: 1px;
height: 14px;
margin-top: 15px;
background-color: rgba(125, 127, 133, .2);
vertical-align: top;
}
.scroll-section .btn-wrap a:first-child::before {
content: none;
}
margin-right
값이 적용되는 것을 보고 그냥 그 값을 늘려주었다. 기존 클래스를 커스텀해서 사용할 경우 이전에 적용된 속성값을 잘 인지하지 못하는 경우가 종종 있다..scroll-section li {
width: 100px;
margin-right: 10px;
}
#economy li {
margin-right: 15px;
padding-right: 15px;
border-right: solid 1px rgba(125, 127, 133, .2);
}
#economy .btn-wrap a {
width: 33.33%;
font-size: 14px;
}
position:absolute
등을 사용해 3차원 속성을 가지게 된 경우, 가상선택자 바로 앞의 태그를 기준으로 움직이려면 해당 태그에 position:relative
를 적용해주어야 한다. 아마도 before 가상선택자는 선택된 태그의 자식태그로 취급되는 듯하다.#corona .corona-wrap a {
position: relative;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
padding: 20px 0;
}
#corona .corona-wrap a.right-corona {
padding-left: 11px;
}
#corona .corona-wrap a.right-corona::before {
content: "";
display: block;
position: absolute;
width: 1px;
height: 42px;
background-color: #efeff0;
top: 20px;
left: 0;
}
white-space: nowrap
을 사용해보았다. 그랬더니 내부 p태그 글자들도 한 줄로 나와서 옆라인을 침범하게 되었다. p태그 안에 white-space:normal
속성을 따로 줘봤지만 전체 nowrap이 풀려 생각대로 되지 않았다.flex-wrap: nowrap
만으로 가로로 표시되게 하고, li태그 안 img-wrap 태그에 비율 넓이값이 아닌 고정 넓이값을 주었더니 그 넓이만큼 늘어났다.오늘 배운 것 중 가장 새로웠던 것은 특정 영역에 가로 스크롤을 이용한 리스트를 만드는 것이었다. 영역의 크기보다 더 많은 컨텐츠 리스트를 보여주는 것은 자바스크립트가 있어야 할 것이라고 생각했는데 html와 css만으로도 가능해서 신기하다.
또한 강의에서 다루지 않은 경제지표 부분을 한번 만들어봤는데, 기존에 id로 만들어진 영역을 클래스화하고 재사용하는 부분을 스스로 해 본 것이 뿌듯했다.