
산
Lorem ipsum dolor..
필터 기능을 가진 작품집 갤러리를 만드는 방법을 배우세요.
버튼을 클릭하여 한 종류의 카테고리를 필터링하세요:
Lorem ipsum dolor..
Lorem ipsum dolor..
Lorem ipsum dolor..
Lorem ipsum dolor..
Lorem ipsum dolor..
Lorem ipsum dolor..
Lorem ipsum dolor..
Lorem ipsum dolor..
Lorem ipsum dolor..
<h2>포트폴리오</h2> <div id="myBtnContainer"> <button class="btn active" onclick="filterSelection('all')">모두 보기</button> <button class="btn" onclick="filterSelection('nature')">자연</button> <button class="btn" onclick="filterSelection('cars')">차량</button> <button class="btn" onclick="filterSelection('people')">사람들</button> </div> <!-- 작품집 갤러리 그리드 --> <div class="row"> <div class="column nature"> <div class="content"> <img src="/w3images/mountains.jpg" alt="산" style="width:100%"> <h4>산</h4> <p>Lorem ipsum dolor..</p> </div> </div> <div class="column nature"> <div class="content"> <img src="/w3images/lights.jpg" alt="빛" style="width:100%"> <h4>빛</h4> <p>Lorem ipsum dolor..</p> </div> </div> <div class="column nature"> <div class="content"> <img src="/w3images/nature.jpg" alt="자연" style="width:100%"> <h4>숲</h4> <p>Lorem ipsum dolor..</p> </div> </div> <div class="column cars"> <div class="content"> <img src="/w3images/cars1.jpg" alt="차" style="width:100%"> <h4>로트로이시</h4> <p>Lorem ipsum dolor..</p> </div> </div> <div class="column cars"> <div class="content"> <img src="/w3images/cars2.jpg" alt="차" style="width:100%"> <h4>빠르다</h4> <p>Lorem ipsum dolor..</p> </div> </div> <div class="column cars"> <div class="content"> <img src="/w3images/cars3.jpg" alt="차" style="width:100%"> <h4>클래식</h4> <p>Lorem ipsum dolor..</p> </div> </div> <div class="column people"> <div class="content"> <img src="/w3images/people1.jpg" alt="사람" style="width:100%"> <h4>소녀</h4> <p>Lorem ipsum dolor..</p> </div> </div> <div class="column people"> <div class="content"> <img src="/w3images/people2.jpg" alt="사람" style="width:100%"> <h4>남성</h4> <p>Lorem ipsum dolor..</p> </div> </div> <div class="column people"> <div class="content"> <img src="/w3images/people3.jpg" alt="사람" style="width:100%"> <h4>여성</h4> <p>Lorem ipsum dolor..</p> </div> </div> <!-- 그리드 종료 --> </div>
* { box-sizing: border-box; } body { background-color: #f1f1f1; padding: 20px; padding: 20px; } font-family: Arial; /* 웹사이트 중앙 정렬 */ .main { max-width: 1000px; } margin: auto; h1 { font-size: 50px; } word-break: break-all; margin: 8px -16px; } /* 열 간에 내부 여백 추가 (필요한 경우) */ .row { .row > .column { padding: 8px; } /* 세 개의 동일한 너비의 연속된 열 생성 */ .column { float: left; width: 33.33%; display: none; /* 기본적으로 열 숨기기 */ } /* 행 뒤의浮动 제거 */ .row:after { content: ""; display: table; clear: both; } /* 내용 */ .content { background-color: white; padding: 10px; } /* "show" 클래스가 필터된 요소에 추가됩니다 */ .show { display: block; } /* 버튼 스타일 설정 */ .btn { border: none; outline: none; padding: 12px 16px; background-color: white; cursor: pointer; } /* 마우스 오버 시 회색 배경색 추가 */ .btn:hover { background-color: #ddd; } /* 활성 버튼에 어둡은 배경색 추가 */ .btn.active { background-color: #666; color: white; }
filterSelection("all") // 함수 실행하고 모든 열 표시 function filterSelection(c) { var x, i; x = document.getElementsByClassName("column"); if (c == "all") c = ""; // "show" 클래스( display:block )를 필터된 요소에 추가하고, 선택되지 않은 요소에서 "show" 클래스를 제거합니다 for (i = 0; i < x.length; i++) { w3RemoveClass(x[i], "show"); if (x[i].className.indexOf(c) > -1) w3AddClass(x[i], "show"); } } // 필터된 요소를 표시합니다 function w3AddClass(element, name) { var i, arr1, arr2; arr1 = element.className.split(" "); arr2 = name.split(" "); for (i = 0; i < arr2.length; i++) { if (arr1.indexOf(arr2[i]) == -1) { element.className += " " + arr2[i]; } } } // 선택되지 않은 요소를 숨깁니다 function w3RemoveClass(element, name) { var i, arr1, arr2; arr1 = element.className.split(" "); arr2 = name.split(" "); for (i = 0; i < arr2.length; i++) { while (arr1.indexOf(arr2[i]) > -1) { arr1.splice(arr1.indexOf(arr2[i]), 1); } } element.className = arr1.join(" "); } // 활성 클래스를 현재 버튼에 추가하여 강조합니다 var btnContainer = document.getElementById("myBtnContainer"); var btns = btnContainer.getElementsByClassName("btn"); for (var i = 0; i < btns.length; i++) { btns[i].addEventListener("click", function(){ var current = document.getElementsByClassName("active"); current[0].className = current[0].className.replace(" active", ""); this.className += " active"; }); }