클릭하면 자연스럽게 나타나는 탭 콘텐츠
이미지 3장이 겹쳐져 있는 슬라이드에 opacity로 이미지를 안보이게 하는 것은 보이지만 않을 뿐이지 실제로는 겹쳐져있는 순서대로 있는 것이다.
이럴 때 아예 없애주기 위해서 visibility: hidden;
을 꼭 넣어주어야 한다.
다시 보이게 할려면 visibility: visible;
로 바꿔주면 된다.
display: none;
는 아예 사라지는 거지만 visibility: hidden;
은 자리값은 유지하면서 사라지는 것이다.
<div class="tab-inner">
<input type="radio" name="tabmenu" id="tab1" checked>
<input type="radio" name="tabmenu" id="tab2">
<input type="radio" name="tabmenu" id="tab3">
<div class="content slide1">
<a href="javascript:viod(0)"><img src="./images/slide-01.jpg"></a>
</div>
<div class="content slide2">
<a href="javascript:viod(0)"><img src="./images/slide-02.jpg"></a>
</div>
<div class="content slide3">
<a href="javascript:viod(0)"><img src="./images/slide-03.jpg"></a>
</div>
<div class="btn">
<label for="tab1"></label>
<label for="tab2"></label>
<label for="tab3"></label>
</div>
</div>
/* Google Web Font */
@import url('https://fonts.googleapis.com/css?family=Raleway&display=swap');
/* Fontawesome 4.7 */
@import url('https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css');
body {
font-family: 'Raleway', sans-serif;
line-height: 1.5em;
margin: 0;
font-weight: 300;
color: #222;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
a {
text-decoration: none;
}
.tab-inner {
width: 300px;
height: 350px;
position: relative;
}
input[name=tabmenu] {
display: none;
}
.content {
position: absolute;
top: 0;
left: 0;
opacity: 0;
visibility: hidden;
transition: 0.5s;
}
.btn {
position: absolute;
text-align: center;
width: 100%;
bottom: 10px;
}
.btn label {
width: 15px;
height: 15px;
display: inline-block;
border-radius: 50%;
background-color: lightgray;
cursor: pointer;
}
input[id=tab1]:checked ~ .slide1,
input[id=tab2]:checked ~ .slide2,
input[id=tab3]:checked ~ .slide3 {
visibility: visible;
opacity: 1;
}
input[id=tab1]:checked ~ .btn label[for=tab1],
input[id=tab2]:checked ~ .btn label[for=tab2],
input[id=tab3]:checked ~ .btn label[for=tab3]{
background-color: crimson;
}