실전퍼블리싱(checked-탭 콘텐츠 Opacity)

Dev_Go·2022년 7월 16일
0
post-thumbnail

checked-탭 콘텐츠 Opacity


클릭하면 자연스럽게 나타나는 탭 콘텐츠

예제보기

이미지 3장이 겹쳐져 있는 슬라이드에 opacity로 이미지를 안보이게 하는 것은 보이지만 않을 뿐이지 실제로는 겹쳐져있는 순서대로 있는 것이다.

이럴 때 아예 없애주기 위해서 visibility: hidden;을 꼭 넣어주어야 한다.
다시 보이게 할려면 visibility: visible;로 바꿔주면 된다.
display: none;는 아예 사라지는 거지만 visibility: hidden;은 자리값은 유지하면서 사라지는 것이다.

HTML

  <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>

CSS

/* 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;
}
profile
프론트엔드 4년차

0개의 댓글