w3.css
탭 갤러리
CSS 및 JavaScript를 사용하여 탭 이미지 갤러리를 만드는 방법을 알아보자.
탭 갤러리 만들기
1단계) HTML 추가
<!-- The grid: four columns --> <div class="row"> <div class="column"> <img src="img_nature.jpg" alt="Nature" onclick="myFunction(this);"> </div> <div class="column"> <img src="img_snow.jpg" alt="Snow" onclick="myFunction(this);"> </div> <div class="column"> <img src="img_mountains.jpg" alt="Mountains" onclick="myFunction(this);"> </div> <div class="column"> <img src="img_lights.jpg" alt="Lights" onclick="myFunction(this);"> </div> </div> <!-- The expanding image container --> <div class="container"> <!-- Close the image --> <span onclick="this.parentElement.style.display='none'" class="closebtn">×</span> <!-- Expanded image --> <img id="expandedImg" style="width:100%"> <!-- Image text --> <div id="imgtext"></div> </div>
이미지를 사용하여 특정 이미지를 확장하자.
열 내부를 클릭한 이미지는 열 아래 컨테이너에 표시된다.
2단계) CSS 추가
4개의 열을 만들고 이미지 스타일을 지정한다.
/* The grid: Four equal columns that floats next to each other */ .column { float: left; width: 25%; padding: 10px; } /* Style the images inside the grid */ .column img { opacity: 0.8; cursor: pointer; } .column img:hover { opacity: 1; } /* Clear floats after the columns */ .row:after { content: ""; display: table; clear: both; } /* The expanding image container (positioning is needed to position the close button and the text) */ .container { position: relative; display: none; } /* Expanding image text */ #imgtext { position: absolute; bottom: 15px; left: 15px; color: white; font-size: 20px; } /* Closable button inside the image */ .closebtn { position: absolute; top: 10px; right: 15px; color: white; font-size: 35px; cursor: pointer; }
3단계) 자바스크립트 추가
function myFunction(imgs) { // Get the expanded image var expandImg = document.getElementById("expandedImg"); // Get the image text var imgText = document.getElementById("imgtext"); // Use the same src in the expanded image as the image being clicked on from the grid expandImg.src = imgs.src; // Use the value of the alt attribute of the clickable image as text inside the expanded image imgText.innerHTML = imgs.alt; // Show the container element (hidden with CSS) expandImg.parentElement.style.display = "block"; }
기본 예시
예제 보기참고
W3C School - How TO - Tab Gallery