위와 같이 해당 높이를 100vh로 주면 한 브라우저의 최대 높이 값으로 각각 색이 들어가는것을 확인할 수 있다.
*{margin: 0; padding: 0;
box-sizing: border-box;}
.sec{height: 100vh;}
.sec1{background: beige;}
.sec2{background: pink;}
.box{width: 100px; height: 100px;
display: inline-block;}
.static{
background: tomato;
margin-top: 100px;
margin-left: 100px;
}
.absolute{
background: yellowgreen;
position: absolute;
left: 210px; top: 100px;
}
.fixed{
background: skyblue;
position: fixed;
left: 320px; top: 100px;
}
.sticky{
background: gold;
position: sticky;
left: 430px; top: 100px;
}
static : 기본속성
absolute : 부모에 기준을 두고 움직임 (따로 속성을 지정하지 않으면 브라우저(wrap)가 부모가 된다.)
fixed : 브라우저를 기준으로 위치가 지정되며 스크롤바를 내려도 그자리에 유지 된다.
sticky : 소속되어 있는 부모내에서만 움직이며 fixed와 비슷한 효과를 보이지만 해당 부모를 벗어나면 밀려나게 된다.
*{margin: 0; padding: 0;
box-sizing: border-box;}
.sec{height: 100vh;
padding: 100px0;
text-align: center;
background-size: cover;
position: sticky; top: 0;
}
.sech2{
font-size: 100px;
color: #fff;
}
.sec1{
background: url(./images/bg1.jpg) no-repeat;
}
.sec2{
background: url(./images/bg2.jpg) no-repeat;
}
.sec3{
background: url(./images/bg3.jpg) no-repeat;
}
이를 활용해 배경 이미지를 디스플레이 full로 넣어주고 top :0;을 주어서 화면이 넘어가는것 처럼 만드는 효과를 낼수 있다. (높이나 넓이를 설정 해서 부분적으로도 활용 가능하다.)
- after, before 선택자 _ ::after, ::before
:: 가상의 자손을 만들어 두는것
content를 꼭 넣어줘야 적용이 되며 이런식으로 임의의 자손을 앞에 넣어줄 수 있다. 텍스트 뿐만 아니라 이미지도 삽입이 가능하다
.tit::before{
content: " ";
width: 10px; height: 30px;
background: skyblue;
display: inline-block;
border-radius: 10px;
margin-right: 10px;
vertical-align: middle;
}
인라인 태그끼리 가로 중간으로 배치하고 싶을때 vertical-align : middle로 지정하여 주면 맞춰지게 된다. 혹 위치가 맞지 않다면 +,- 값을 주어 맞춰줄 수 도 있다. 텍스트에 컨텐츠를 넣거나 버튼을 만들때 유용하다.
.nav{
width: 400px;
margin: 50pxauto;
}
.gnb{
display: flex;
justify-content: space-between;
}
.gnb>li{
width: calc(100%/2 - 5px);
}
.gnb>li>a{
display: block;
padding: 10px0;
text-align: center;
position: relative;
}
.gnb>li>a:hover::after{
content: "";
display: block;
width: 20px; height: 3px;
background: deeppink;
position: absolute;
left: 50%; bottom: 0;
margin-left: -10px;
}
이를 활용해서 메뉴를 지정하였다는걸 알려줄 수 있는 피드백을 만들어 줄 수 있는데 가상의 컨텐츠를 넣어주는것이다. 해당 컨텐츠는 만들어지게 되면 인라인 요소이기 때문에 display : block을 설정하여서 블럭 태그로 만들어주고 원하는 만큼의 크기를 설정해 준다.
그리고 위치를 바꾸기 위해서 position : absolute를 넣어주는데 해당 컨텐츠의 부모가 되는 a 태그에게 기준이라는것을 알려주도록position : relative 로 설정하고 메뉴 위치에서 중앙으로 갈것이기 때문에 left : 50% 를 넣어주고 바닥에 붙이기 위해서 bottom : 0 으로 넣어주고 해당 컨텐츠 크기에서 2분의 1 정도로 margin : - 를 넣어주면 중앙으로 들어가게 된다.
.gnb>li>a{
/* background-color: yellow; */
display: block;
line-height: 100px;
position: relative;
}
.gnb>li>a:hover::after{
content: "";
display: block;
width: 20px; height: 3px;
background: #e55353;
position: absolute;
left: 50%; bottom: 0;
margin-left: -10px;
이를 활용하여 nav에 적용하면 이렇게 만들어 줄 수 있다.
디바이스 화면이 큰 경우 양옆의 배경은 디바이스에 꽉 차게 하고 컨텐츠를 중앙에 배치하도록 하기 위해서는 class="in"을 따로 설정해주어야 한다 in은 그리드에 해당되는 부분인데 여기에 컨텐츠들을 넣고 header / border-bottom 으로 하단에만 색을 넣어주면 큰 디바이스에선 넓게 보이는걸 알 수 있다.
.in{
width: 1400px;
margin: 0auto;
height: 100px;
display: flex;
justify-content: space-between;
align-items: center;
/*헤더는 중앙에 배치하고 따로 헤더와 분리하여 */
}
#header{
border-bottom: 1pxsolid#e55353;
}
- shadow effect
.inset{
box-shadow: 10px10px10pxrgba(0, 0, 0, .5) inset;
}
.outset{
box-shadow: 10px10px10pxrgba(0, 0, 0, .5) ;
}
.blur{
box-shadow: 10px10px30pxrgba(0, 0, 0, .5) ;
}
.spread{
box-shadow: 10px10px10px30pxrgba(0, 0, 0, .5) ;
}
.shadow{
box-shadow: -5px-5px10pxred;
}
.txt1{
text-shadow: 2px2px5pxrgba(0, 0, 0, .5);
}
.txt2{
color: darkblue;
text-shadow: 001pxred,
3px3px2pxorange,
6px6px3pxgold;
}
그리고 그림자를 단계별로 서로 다른 색의 그림자를 줄 수도 있다 (텍스트 뿐만 아니라 박스에도 적용이 가능하다.)
- 사이트 레이아웃
이미지를 자르기 위해서 psd 파일을 열어서 crop tool에서 slice tool 로 정확하게 가이드 라인에 따라 잘라주고
view - snap 하여 가이드 라인에 도구가 자동으로 맞춰지도록 하는 기능
해당 기능을 켜놓고 원하는 이미지를 선택해준 후 ctrl + 더블클릭 하여 각각 이미지를 원하는 제목을 지정해 저장해준다.
이름을 모두 지정하였다면 file - export - save for wep (legushy) 를 선택 후 상단 2 lip으로 본래 이미지와 저장할 이미지의 크기와 퀄리티를 비교하며 이미지들을 어떤 형식으로 어떤 크기로 저장할지 정한다.
로고나 아이콘만 gif로 저장하고 보통 용량이 작은 img로 저장해준다.
이미지를 shift를 누른상태로 지정하여주고 저장을 눌러준다 이때 하단 other에서 이미지 폴더를 따로 만들어서 저장하도록 지정하고 저장해주면 이미지 폴더를 생성해준다.
아이콘과 같은 배경이 필요없는 이미지들은 png로 저장해주고 따로 설정을 건들지 않고 저장하면 앞서 만들어졌던 폴더에 같이 들어간다.
header#header+000 : 직계동생을 나타내는 언어
$ = 숫자를 표시
i 태그는 의미가 없는 태그이다 그래서 html에 존재하지만 내용을 지울때 주로 쓰이기는 하지만 tab키로 포커스를 맞출때 해당되지 않게 될수 있다.