다양하게 활용이 가능한 탭 부분 디자인 및 코딩 소스
제이쿼리로도 되지만, 스크립트로도 구현이 되는 부분이라 서칭 해서
정리 해 봄.
홈페이지 구성할때, 50% 이상 사용되는 디자인 및 기능이 아닐까 싶다.
네이버 메인
HTML
<div class="wrap">
<div class="tab">
<ul class="tabitems">
<li class="item">
<a class="tablink active" href="#" onclick="openTab(event, 'tabA')">문의 사항</a>
</li>
<li class="item">
<a class="tablink" href="#" onclick="openTab(event, 'tabB')">고객 문의</a>
</li>
</ul>
</div>
<!--tabA start-->
<div id="tabA" class="tabcontent" style="display: block;">
<p>첫번째 탭 영역 <br>
문의 사항 등이 표기 되는 부분 </p>
</div>
<!--tabA end-->
<!--tabB start-->
<div id="tabB" class="tabcontent" style="display: none;">
<p>두번째 탭 영역 <br>
고객 문의 등이 표기 되는 부분 </p>
</div>
<!--tabB end-->
</div>
CSS
.wrap {
padding: 10px;
}
.tab {
border-top: 1px solid #E2E2E1;
border-right: 1px solid #E2E2E1;
width: 400px;
}
.tab .tabitems {
width: 100%;
position: relative;
}
.tab .tabitems .item {
display: inline-block;
width: 49%;
}
.tab .tabitems .item:first-child {
border-right: 1px solid #E2E2E1;
border-left: 1px solid #E2E2E1;
background-color: #F5F5F5;
}
.tab .tabitems li a {
display: block;
border-radius: 0;
margin-right: 0;
color: #333;
font-size: 15px;
text-align: center;
height: 50px;
line-height: 50px;
font-weight: bold;
text-decoration: none;
}
.tab .tabitems li a.active,
.tab .tabitems li a:hover {
color: #e65439;
}
.tab .tabitems li a.active:after,
.tab .tabitems li a:hover:after {
height: 3px;
}
.tab .tabitems .item:last-child .tablink.active:after {
content: "";
width: 48%;
height: 1px;
background-color: #E2E2E1;
position: absolute;
bottom: 0;
left: 0;
}
/*tabA*/
#tabA {
background-color: #f5f5f5;
border-top: 1px solid #E2E2E1;
margin-top: -1px;
}
/*#tabB*/
#tabB {
background-color: #fff;
}
.tabcontent {
border-right: 1px solid #E2E2E1;
border-left: 1px solid #E2E2E1;
border-bottom: 1px solid #E2E2E1;
width: 400px;
height: 200px;
padding-bottom: 20px;
}
.tabcontent p {
font-size: 12px;
padding: 20px;
}
JavaScript
function openTab(evt, tabName) {
var i, tabcontent, tablink;
tabcontent = document.getElementsByClassName("tabcontent");
for (i = 0; i < tabcontent.length; i++) {
tabcontent[i].style.display = "none";
}
tablink = document.getElementsByClassName("tablink");
for (i = 0; i < tablink.length; i++) {
tablink[i].className = tablink[i].className.replace(" active", "");
}
document.getElementById(tabName).style.display = "block";
evt.currentTarget.className += " active";
}
결과
728x90
반응형
'퍼블리싱' 카테고리의 다른 글
sass란? 개념 및 사용 방법 (0) | 2022.10.26 |
---|---|
[CSS 활용]헤더가 고정 되는 테이블, html css (0) | 2022.04.08 |
CSS 활용 - 라디오 버튼 커스텀 스타일 (0) | 2022.03.23 |
[CSS 활용] 화살표, css로 만들기 (0) | 2022.03.17 |
[JS 활용] 관련 사이트, family site 패밀리 사이트, 제이쿼리 활용 [토글] (0) | 2022.03.15 |
댓글