기본적으로 내용을 입력하게 되면 왼쪽 상단이 디폴트 값이기 때문에 위와 같이 나온다. 디자인상으로 텍스트 박스를 중앙 위로 올리고 싶을때 사용하는것이 position : relative이다. 해당 위치에서 옮길거기 때문에 딱히 부모에게 relative를 주지 않아도 된다.
해당 박스의 초기 상태에서 위치를 이동시켜 해당 상태로 만들 수 있고 위로 더 옮길 것이기 때문에(부모 위로 올라갈것이기 때문에) top : -50px을 쓴것이다.
내용들을 기입하고
무엇에 기준을 줘야하고 어떻게 위치를 이동해야 할지를 잘 인지하고 사용해야 원하는 디자인을 만들어낼 수 있다.
숫자에 블럭을 주고 위치를 중앙에 맞춰 준뒤 (text-aline, line-height) position으로 해당 이미지 위치를 맞추어 준다. 상단 위쪽으로 빼줄거기 때문에 top : -25px을 넣어 바깥으로 빼주고 해당 위치에서 더 중앙에 올 수 있게 마진을 왼쪽으로 빼준다. (옆 형제에 영향을 주지 않도록)
텍스트는 원하는 디자인 만큼의 width값을 넣어주고 해당 개체만 옮길거기 때문에 position : relative를 설정해 위치를 맞추어 주고 박스의 크기와 디자인적인 요소를 추가해 주면된다.
기본 셋팅과 원하는 넓이와 위치를 넣어주고
설명_1
설명_2
설명_1
.list li 에 position : relative을 넣어서 부모의 기준을 잡아주고 .list li .mask로 position : absolute를 넣어 위치를 left, top을 0에 넣어서 이미지에 맞도록 넣어주고 background 색상에 투명도와 함께 넣어서 이미지가 가려지도록 하고 크기와 높이를 각각 100%로 넣어 크기도 맞춰준다.
설명_2
텍스트 박스 자체를 flex하여 가로 배치하고 글자의 배치를 중앙으로 맞춰주기 위해서 justify-content : center, align-items: center 를 지정해주고 (해당 속성들은 flex 속성이 있어야 적용이 된다.) 이렇게 설정하면 숫자와 텍스트가 flex 때문에 가로 정렬이 되어있어서 flex-direction : column을 넣어서 세로로 배치해주면 된다.
화면에 먼저 보이는 이미지:hover 변경 후 이미지 :마우스를 데면 배경이 사라지면서 이미지가 나오도록 할 수도 있다. 해당 이미지 스타일 속성에 transition : 원하는 시간 (ex : 1s, 0.5s ...) 을 설정하면 서서히 드러나서 자연스럽게 사라지도록 할 수도 있다.
또 다른 효과를 줄 수도 있는데 텍스트가 아래에서 위로 올라오는것 처럼 보이도록 하는 효과이다.
여기서 텍스트 박스에 position : absolute를 주고 top :100% 으로 주면 자손이 부모 밖을 나가게 된다.
이 텍스트 박스를 overflow : hidden 로 숨기고 hover에 top을 주어서 위로 나오도록 효과를 넣어준다. 해당 효과를 빠르게 나오도록 하여야 자연스러워 보이기 때문에 시간을 0.3s 정도로 설정하고
top을 0으로 넣어주면 커서를 대면 위로 올라오도록 한다.
이런식으로 해당 박스의 위치를 달리 설정해 기준을 두고 다른 방향으로 나올수 있도록 할 수 있다. (위 코딩을 왼쪽에서 오른쪽으로 박스가 나오도록 설정한것)
- 선택자
.gnb>li : 자손 선택자 - 직계 자손만 가능하고 후손에게 적용할 경우 적용되지 않는다. 중첩으로 쓸 수 있고 (ex : gnb>li>a>img) 중간의 부모들을 모두 적어줘야 한다.
.gnb li : 후손 선택자 - 후손을 선택하는 것인데 중간 단계의 부모들을 모두 생략할 수 있고 후손만 선택하는 것으로 여기서 주의 할것은 태그 선택을 할 경우 그 아래의 모든 태그들이 선택될 수 있기 때문에 각각 태그에 클래스를 지정해서 선택해주는 것이 오류없이 선택하기 좋다.
2dapth
1dapth 2dapth의 기본적인 구조 이고 많이 쓰이게 된다. 위 구조의 반복이기 때문에 기억해두는것이 좋다.
초기화와 기본 속성값을 입력해주고
기본적으로 height를 지정하진 않지만 헤더같은 영역은 설정하는 것이 배치에 좋다 그렇기 때문에 임의적으로 크기를 설정해주고 align-item을 넣어서 헤더에 들어가는 logo를 중앙에 배치 되도록 하고 display:flex를 넣어 가로 배치해준다.
네비 자체의 영역을 설정해주고 (디자이너가 상단메뉴로 넣어주고자 하는 영역을 설정) logo와 떨어지도록 margin-left를 넣어서 거리를 만들어준다. 1dapth의 부모인 .gnb에게 flex를 넣어서 가로배치 하여주고 1dapth각 서로 일정하게 떨어지도록 width 설정을 calc(100%/6) 하여 (메뉴가 6개니까) 일정하게 정렬하고 해당 글의 정렬을 text-align 으로 중앙정렬로 넣어준다.
*그리고 1dapth 밑으로 2dapth를 둘것이기 때문에 1dapth가 부모라고 할 수 있다. 1dapth를 기준으로 2dapth의 위치를 옮길것이기 때문에 position: relative를 넣어서 기준으로 잡아준다.
2dapth를 해당부모에서 벗어나 이동하기 위해서 position: absolute 속성을 지정하여 1dapth만 부모의 영역에 놔두고 1dapth를 기준으로 위치를 잡아준다 기본적으로 left 값을 50%를 넣어서 기존 위치에서 50%에 해당하는 위치로 옮겨주고 top으로 기준에서 아래로 띄워준다.
2dapth의 원하는 크기 값을 width를 넣어주고 (이때 부모의 크기를 자세하게 할 수 없기 때문에 %로 넣어준다 ex: 150%,180%) 설정한 넓이 값에서 2분의 1값을 margin-left로 넣어 중앙에 배치되도록 하여준다.
padding을 주어서 2dapth의 박스에 사용자가 쉴공간을 넣어주고 display : none을 넣어서 사용하지 않을때는 보이지 않게 설정한다
box-shadow 를 넣어서 스타일요소를 적용한다. (이때 색은 단순한 색으로 지정하는것이 아니라 rbga로 투명도를 넣어서 지정해야 자연스럽게 보일 수 있다.)
여기까지 진행하게 되면 사용자가 1dapth를 사용하기엔 범위가 너무 작아서 사용에 불편함을 가질 수 있다. 그렇기 때문에 inline요소인 a태그를 display : block 으로 블럭 속성을 적용해 넓이와 높이가 적용되도록 하고 line-height로 헤더의 높이만큼 넣어 범위를 늘려준다.
그리고 hover를 설정하는데 1dapth에 커서를 데었을때 변형되도록 .d1에 :hover를 설정하고 이로 인해서 .d2_bg가 나오도록 이어서 경로를 설정하고 display : block로 설정해 주면 된다.
* 코딩을 진행하다 보면 같은 태그를 여러번 반복해서 사용하게 되는데 이때 스타일 적용에 많은 영향을 줄 수 있다. 이때 자손경로를 사용하여서 해당 자손안의 태그에게만 스타일을 적용할 수 있다.
그렇기 때문에 경로 설정은 가장 중요한 부분이라 할 수 있다.
속성으로 태그를 만들때 사용 작성 후 Tab 키
'기록 > 수업정리_html' 카테고리의 다른 글
hover, 웹 폰트 아이콘 적용법, form 태그 (0) | 2024.06.20 |
---|---|
position_sticky (0) | 2024.06.19 |
사이트 제작_html, position 속성 (0) | 2024.06.17 |
플랙서블 박스 (0) | 2024.06.13 |
background, gradient, display (0) | 2024.06.12 |