[WEB] 404 page 만들기 02
WEB 공부
개발 언어 : HTML, CSS, Javascript
개발 환경 : Visual studio Code
참조: CODING FACTORY
구조(Structure)
body
├───nav
│ ├nav-HOME
│ └nav-contactus
├───main
│ ├message-404
│ ├collage-404
│ └color-search
└───footer
└search
CSS
@charset "utf-8";
/* init html, body*/
html,body{
margin: 0;
padding: 0;
width: 100%;
height: 100%;
}
html{
box-sizing: border-box;
}
*,
*:before,
*:after {
box-sizing: inherit
}
h1{
font-size: 2rem;
margin: 1rem 0;
line-height: 1;
}
p{
margin: 1rem 0;
line-height: 1.3;
}
main p{
max-width: 28em;
margin: 1rem auto;
}
.input{
position: relative;
display: inline-flex;
}
nav{
padding: 1rem;
}
footer{
padding: 1rem;
}
input[type="search"] {
background-color: #F1F3F4;
font-size: 0.875rem;
padding: 0.5em 1em;
padding-right: 0.75em;
border-radius: 1.25em;
border: 0;
width: 20em;
transition: all 0.1s ease-in-out;
box-shadow: 0 0 0 0 transparent;
-webkit-appearance: none;
appearance: none
}
input[type="search"]:hover {
background-color: #e3e7e9
}
input[type="search"]:focus {
outline: 0;
box-shadow: 0 0 0 0.15em #ea4c89;
background-color: #fff
}
input[type="search"]::-webkit-input-placeholder {
color: rgba(0, 0, 0, 0.35)
}
.input{
position: relative;
display: flex;
padding-left: 2rem;
}
.input-icon {
position: absolute;
left: 0.5rem;
top: 50%;
opacity: 0.3;
pointer-events: none;
transform: translateY(-50%)
}
body{
font-size: 16px;
display: flex;
align-items: center;
justify-content: space-between;
flex-direction: column;
padding: 1rem;
text-align: center;
transition: background-color 1s linear;
}
a{
color: inherit;
transition: all 0.1s ease-in;
}
a:hover{
color: rgba(0, 0, 0, 0.8);
}
.color-range{
position: relative;
-webkit-appearance: none;
appearance: none;
width: 66%;
max-width: 320px;
display: block;
outline: none;
margin: 0 auto;
height: 4em;
font-size: 12px;
}
.color-range:focus{
outline: none;
}
.color-range:active,
.color-range:hover:active{
cursor: grabbing;
cursor: -webkit-grabbing;
}
.color-range::-webkit-slider-runnable-track{
-webkit-appearance: none;
appearance: none;
outline: none !important;
background-color: rgba(0,0,0,0.1);
border-radius: 0.5em;
height: 0.5em;
background: linear-gradient(to right, red,yellow,green,cyan,blue, #f0f, red);
}
.color-range:disabled{
-webkit-filter: grayscale(100) opacity(0.25);
filter:grayscale(100) opacity(0.25);
pointer-events: none;
}
.color-range::-webkit-slider-thumb {
height: 3em;
width: 3em;
margin-top: -1.2em;
border-radius: 2em;
-webkit-appearance: none;
appearance: none;
background: white;
border: 0.4em solid currentColor;
cursor: pointer;
cursor: move;
cursor: grab;
cursor: -webkit-grab;
transition: box-shadow 0.2s ease-in-out, m 0.1s ease-in-out;
box-shadow: 0 0.1em 0.1em rgba(0, 0, 0, 0.05)
}
.color-range::-webkit-slider-thumb:active,
.color-range::-webkit-slider-thumb:hover:active {
cursor: grabbing;
cursor: -webkit-grabbing;
transform: scale(0.975);
box-shadow: 0 0 1px rgba(0, 0, 0, 0.1);
border: 1.5em solid currentColor
}
.color-range::-webkit-slider-thumb:hover {
transform: scale(1.1);
box-shadow: 0 0.4em 1em rgba(0, 0, 0, 0.15)
}
.message-404{
position: relative;
}
.collage-404{
position: relative;
perspective: 500px;
display: inline-block;
margin: 2vw 0;
}
.collage-404 h1{
font-size: 30vw;
margin: 0;
line-height: 1;
padding: 0;
display: inline-block;
transition: all 1s ease-in-out;
opacity: 0.6;
}
nav{
font-size: 1.3rem;
font-weight: bold;
display: flex;
align-self: stretch;
align-items: center;
justify-content: space-between;
}
init html, body
/* */
html,body{
margin: 0;
padding: 0;
width: 100%;
height: 100%;
}
html{
box-sizing: border-box;
}
*,
*:before,
*:after {
box-sizing: inherit
}
h1{
font-size: 2rem;
margin: 1rem 0;
line-height: 1;
}
p{
margin: 1rem 0;
line-height: 1.3;
}
- html, body : html__의 기본 태그인 __html__과 __body 부분의 margin과 padding 을 0으로 지정하고 현재 브라우저의 __너비(width)__와 __높이(height)__를 받아와 __100%__로 지정
- html(현재 페이지)의 box-sizing 방법을 __border-box__로 지정
__box-sizing__의 요소
요소 | 기능 |
---|---|
content-box | __콘텐트 영역__을 기준으로 크기를 정함 |
border-box | 테두리(border) 기준으로 크기를 정함 |
initial | 기본값(content-box) 기준으로 크기를 정함 |
inherit | __부모 요소의 속성값__을 상속 받음 |
-
‘*‘(전체 선택자) : 모든 요소를 선택하는 선택자
-
:before
,:after
(가상 요소) : box-sizing을 상속받음
가상 클래스 : 선택될 요소의 특별한 상태를 지정하는 선택자
가상 요소 : 가상 클래스 처럼, 가상 요소는 선택자에 추가되지만 특별한 상태를 기술하는 대신 문서의 특정 부분을 스타일 할 수 있다.
link
가상 선택자는 꾸밈을 위해서 의미없는 태그를 더 추가 해야 될 때, 태그 대신에 가상으로 처리해 주는 기능.
font-size 단위
font-size: medium | xx-small | x-small | small | large | x-large | xx-large | smaller | larger | length | initial | inherit
- medium : 웹브라우저에서 정한 기본 글자크기
- xx-small, x-small, small, large, x-large, xx-large : medium에 대한 상대적인 크기
- smaller, larger : 부모 요소의 글자 크기에 대한 상대적인 글자 크기
- length : px, %, em, rem 등으로 크기를 정함
- initial : 기본값으로 설정
- inherit : 부모 요소의 속성값을 상속받음
font-size: length
- 웹브라우저의 기본 글자 크기는 보통 16px
- %와 em은 부모 요소의 글자 크기에 대한 상대적인 글자 크기입니다. 100%와 1em은 부모 요소의 글자 크기와 같고, 숫자가 커질수록 글자가 커지고, 숫자가 작아질수록 글자가 작아진다.
- rem은 최상위 요소, 즉 html 요소의 글자 크기에 대한 상대적인 글자 크기
Box Model
- 박스의 구성
- margine area(바깥 영역)
- border area(테두리 영역)
- padding area(안쪽 여백 영역)
- content area(내용 영역)
- 각 영역을 꾸밀 때 사용하는 속성
- 바깥 여백 : margin 속성
- 테두리 : border 속성
- 안쪽 여백 : padding 속성
- 박스의 가로 크기 : width 속성
- 박스의 세로 크기 : height 속성
- 박스의 크기 기준 : box-sizing 속성
- 박스의 배경 : background 속성
line-height
줄 높이를 지정하는 속성
line-height: normal | length | number | percentage | initial | inherit
- normal : 웹브라우저에서 정한 기본값입니다. 보통 1.2
- length : 길이로 줄 높이를 정함
- number : 글자 크기의 몇 배인지로 줄 높이를 정함
- percentage : 글자 크기의 몇 %로 줄 높이로 정함
- initial : 기본값으로 설정합니다.
- inherit : 부모 요소의 속성값을 상속받습니다.
댓글남기기