이미 모달창(레이어팝업) 만들기는 여러번 소개했다.
2024.04.04 - [IT/Javascript] - 자바스크립트(Javascript) 간단한 모달(Modal)창 레이어 팝업 만들기
자바스크립트(Javascript) 간단한 모달(Modal)창 레이어 팝업 만들기
모달 창은 사용자와의 상호작용을 요구할 때 사용되는 팝업 창의 한 형태이다. 모달 창이 나타나면 일반적으로 사용자는 모달 창 외부의 콘텐츠에 대한 상호작용을 일시적으로 중지하고 모달
aortm2.tistory.com
2024.03.20 - [IT/JQuery] - 제이쿼리(JQuery) 간단한 모달(Modal)창 레이어 팝업 만들기
제이쿼리(JQuery) 간단한 모달(Modal)창 레이어 팝업 만들기
모달창이란? 우리가 흔히 화면을 개발할 때 많이 쓰는 요소로, 보통 레이어 팝업이라고도 합더 모달은 화면 위에 레이어를 더 만들어 부가적인 일을 처리할 수 있게 만드는 기능이다. 먼저 html을
aortm2.tistory.com
모달창을 숨겼다가 보이는 과정에서 제이쿼리(Jquery)나 자바스크립트(Javascript)를 사용하게 되는데
스크립트를 사용하지 않고 CSS만 활용해서 모달창을 만들 수 있는 방법이 있다.
바로 input의 checkbox와 label을 활용하여 체크박스의 checked로 체크를 해서 모달창을 여닫는 방법이다.
html 코드
<input type="checkbox" id="modal">
<label for="modal" class="modal-btn">CSS모달</label>
<div class="dialog">
<div class="tb">
<div class="inner" style="max-width:800px;">
<div class="top">
<div class="title">모달창 제목</div>
<label for="modal" class="close">×</label>
</div>
<div class="ct">
모달 창 내용
</div>
</div>
</div>
</div>
위 코드에서도 알 수 있듯이, 모달을 보이게 하는 버튼과 닫기버튼은 label로 작성을 한다.
두 label 버튼은 for속성을 이용하여 체크박스(checkbox)를 연결을 한다.
자바스크립트나 제이쿼리를 사용하지 않기 때문에 위의 구조를 지켜줘야 한다.
for속성은 이전 글에서 설명 했기 때문에 따로 설명을 하지는 않겠다.
2024.03.26 - [IT/HTML & CSS] - HTML 체크박스(checkbox) 만들기 input checked 속성
HTML 체크박스(checkbox) 만들기 input checked 속성
체크 박스와 라디오 박스는 비슷하면서도 다른 요소이다. 체크박스와 라디오 박스는 웹 양식에서 사용자에게 선택 옵션을 제공하는데 사용된다. 체크박스(checkbox)를 사용하는 이유 다중 선택:
aortm2.tistory.com
CSS코드
#modal{
display:none;
}
.modal-btn{
background-color: #4CAF50;
color: white;
padding: 10px 20px;
text-align: center;
display: inline-block;
font-size: 16px;
cursor: pointer;
border-radius: 4px;
}
.dialog {
display:none;
position: fixed;
left: 0;
top: 0;
z-index: 10;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.4);
}
.dialog>.tb {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
}
.dialog>.tb .inner {
width: 100%;
padding: 20px;
background: #fff;
border-radius: 16px;
}
.dialog .top {
display: flex;
align-items: center;
border-bottom: 1px solid #ddd;
justify-content: space-between;
padding-bottom: 15px;
margin-bottom: 15px;
}
.dialog .title {
font-weight: bold;
font-size: 20px;
}
.dialog .ct {
max-height: 60vh;
height: 60vh;
overflow-y: auto;
border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px;
background-color: #fff;
}
input[id="modal"]:checked + label + .dialog{
display: block;
}
.close{
font-size:25px;
cursor:pointer;
}
CSS를 활용하여 input을 숨겨준다.
그리고 체크 박스가 checked 됐을때 모달 창을 display의 값을 block으로 설정해주면 HTML과 CSS만으로 모달창을 만들 수 있다.
최종코드
See the Pen javascript by 문정현 (@wqmlgxov-the-flexboxer) on CodePen.
오늘은 포스팅은 여기까지입니다.
끝까지 읽어주셔서 감사합니다.
'IT > HTML & CSS' 카테고리의 다른 글
CSS 스크롤 따라다니는 메뉴 만들기(플로팅 메뉴) (0) | 2024.04.02 |
---|---|
CSS 체크박스 라디오 커스텀 디자인 (0) | 2024.04.02 |
HTML 라디오(radio) 만들기 input checked 속성 (0) | 2024.03.26 |
HTML 체크박스(checkbox) 만들기 input checked 속성 (0) | 2024.03.26 |
CSS 드롭다운 메뉴(gnb) 만들기 (0) | 2024.03.20 |