확장선택자와 함께 가상클래스 checked 실전 퍼블리싱 02(애니메이션 사이드메뉴 만들기) 6:50초 질문 드립니다.
353
작성한 질문수 7
■ 질문 남기실 때 꼭! 참고해주세요.
- 먼저 유사한 질문이 있었는지 검색해주세요.
- 궁금한 부분이 있으시면 해당 강의의 타임라인 부분을 표시해주시면 좋습니다.
- HTML, CSS, JQUERY 코드 소스를 텍스트 형태로 첨부해주시고 스크린샷도 첨부해주세요.
- 다운로드가 필요한 파일은 해당 강의의 마지막 섹션에 모두 있습니다.
html
<div class="container">
<input type="checkbox" id="trigger">
<label for="trigger">
<span></span>
<span></span>
<span></span>
</label>
<div class="sidebar"></div>
</div>css
body {
height: 100vh;
/* display: flex;
justify-content: center;
align-items: center; */
color: #fff;
margin:0;
padding:0;
}
a {
color: #222;
text-decoration: none;
}
.container {}
input[id=trigger] {
display: none;
}
label[for=trigger] {
/* border: 1px solid red; */
width: 40px;
height: 30px;
display: block;
position: absolute;
cursor: pointer;
right: 10px;
top:50%;
transform: translateY(-50%);
transition: 0.3s;
}
label[for=trigger] span {
position: absolute;
height: 2px;
background-color: #000;
width: 100%;
transition: 0.3s;
}
label[for=trigger] span:nth-child(1){
top:0;
}
label[for=trigger] span:nth-child(2){
top:50%;
}
label[for=trigger] span:nth-child(3){
top:100%;
}
input[id=trigger]:checked + label[for=trigger] span:nth-child(1){
top:50%;
transform: rotate(45deg);
}
input[id=trigger]:checked + label[for=trigger] span:nth-child(2){
opacity: 0;
}
input[id=trigger]:checked + label[for=trigger] span:nth-child(3){
top:50%;
transform: rotate(-45deg);
}
.sidebar {
width: 300px;
height: 100vh;
background-color: #000;
position: absolute;
right: -300px;
transition: 0.3s;
}
input[id=trigger]:checked ~ .sidebar {
right: 0;
}
input[id=trigger]:checked + label[for=trigger] {
right: 310px;
}혼자 다시 연습하다 6:50초 경에 나온 사이드바 부분의 position을 fiexd 가 아닌 absolute 로 한 뒤 right: -300px 로 가렸더니 숨겨지는게 아니라 가로스크롤이 생기면서 옆을 볼 수 있게 되는데, 애초에 부모의 값이 따로 없고 100% 라 그런거라면 왜 fiexd는 가려지는데 absolute 는 옆에 공간이 따로 생겨서 사이드바가 생기는 걸까요?
그리고 높이는 둘다 똑같이 100vh 인데 왜 세로 스크롤도 생기는걸까요???
그리고 또 하나 궁금한게 이전에 햄버거 버튼을 만들때 label에 position : relative; 를 주고 span에 position : absolute; 를 줘서 배치를 했는데, 사이드바 생성시 햄버거 버튼의 위치 조정을 위해 label을 absolute로 변경 하게 되면 부모자식 관계였던 lable과 span이 모두 absolute 속성을 가지게 되는데 이런 건 전혀 문제될게 없는걸까요???
답변 1
0
답변1)
대부분의 경우 absolute를 사용하지만 가로 세로에 스크롤이 생기는 경우는 반드시 fixed로 해줘야 가로 스크롤 세로 스크롤이 생기지 않습니다. absolute는 여전히 자신의 크기 만큼 브라우저 곧 body의 크기를 넓히게 됩니다. 그래서 이런 경우 fixed 를 사용해야 합니다.
답변2)
자식요소에 absolute가 있으면 부모요소에 relative를 주어야 부모 자식 관계가 됩니다.
그런데 자식요소에 absolute를 주고 부모요소에 relative를 주려고 할 때 이미 absolute가 있다면 부모 자식 관계가 됩니다.
곧, label에 absolute를 주어도 span과의 부모 자식 관계는 그대로 유지됩니다.
class 값 한 번에 부여하는법
2
80
1
@media에서의 flex-direction: column으로 세로배치 관련 질문드립니다.
1
69
1
div#css-checker-widget의 해결방
1
60
2
input의 포커스되었을때 검정선이 사라지지 않아요
0
79
2
강의듣는법
1
74
1
아코디언 만들기 100%이하의 화면으로 보았을때
1
68
2
input checked 질문합니다.
0
77
1
Bracket Pair Colorizer - 비주얼 스튜디오
1
140
2
Part 1 영상 안나옵니다
1
90
1
제이쿼리 작동이 안됩니다
1
199
3
강의 내용 질문있습니다.
1
120
2
일정 부분만 주석하는 방법
1
211
2
폰트어썸
1
134
2
인접선택자에 대한 질문드립니다!
1
129
2
delay 적용 안됨
1
135
1
rotateY(360deg)가 적용이 안됩니다!
1
186
2
세로이동할때 height값
1
139
2
폰트어썸이 안되요..
1
487
2
화면 정중앙에 오게끔 할수있나요?
1
169
1
어코디언 네비게이션 중
1
127
1
라이브서버 문제
1
230
2
넷플릭스 어코디언 예제 질문
1
105
1
이번 강의에선 display flex가 무조건 적으로 필요한건가요 ?
1
158
1
active 관련 질문
1
147
2





