inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드

[오류수정] section 태그와 article 태그 사용에 관한 오류

visibility:hidden; 적용 문제

109

Cheon

작성한 질문수 9

1

 

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>index</title>
  <link rel="stylesheet" href="css/style.css">
</head>
<body>
  <div class="container">
    <header>
      <div class="header-logo"></div>
      <div class="nav"></div>
    </header>
    <div class="slide">
      <div>
        <a href="#none"><img src="images/1200-1.jpg" alt="slide-1"></a>
        <a href="#none"><img src="images/1200-2.jpg" alt="slide-2"></a>
        <a href="#none"><img src="images/1200-3.jpg" alt="slide-3"></a>
      </div>
    </div>
    <div class="items">
      <div class="news"></div>
      <div class="banner"></div>
      <div class="shortcut"></div>
    </div>
    <footer>
      <div class="footer-logo"></div>
      <div class="copyright">
        <div></div>
        <div></div>
      </div>
    </footer>
  </div>
  <script src="script/jquery-1.12.4.js"></script>
  <script src="script/custom.js"></script>
</body>
</html>

 

@charset "utf-8";

body {
  margin: 0;
}
.container {
 margin: auto;
 width: 1200px;
 border: 1px solid #000;
}

header {
  display: flex;
  justify-content: space-between;
}
header > div {
  height: 100px;
  border: 1px solid #000;
}
.header-logo {
  width: 200px;
}
.nav {
  width: 600px;
}

/* slide */
.slide {
  position: relative;
  width: 1200px;
  height: 300px;
  border: 1px solid #000;
}
.slide > div {
  font-size: 0;
}
.slide > div > a {
  position: absolute;
  top: 0;
  left: 0;
  animation: slide 10s linear infinite;
  opacity: 0;
}

.slide > div > a:nth-child(2) {
  animation-delay: 3.5s;
}
.slide > div > a:nth-child(3) {
  animation-delay: 7s;
}

@keyframes slide {
  0% {
    opacity: 0;
    visibility: hidden;
  }
  5% {
    opacity: 1;
  }
  35% {
    opacity: 1;
  }
  40% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
/* slide */

.items {
  display: flex;
}
.items > div {
  height: 200px;
  border: 1px solid #000;
  flex:1;
}

footer {
  display: flex;
}
footer > div {
  height: 100px;
  border: 1px solid #000;
}
.footer-logo {
  width: 200px;
}
.copyright {
  width: 1000px;
}

.copyright > div {
  box-sizing: border-box;
  border: 1px solid #000;
  height: 50%;
}

현재 섹션8-5번 강의 수강중입니다.

강의에서 말씀하신대로 세번째 슬라이드 사진이 투명도 0 상태로 최상위 계층에 있는 상태여서 visibility: none; 속성을 주었는데, 속성을 넣어도 다른 슬라이드 사진을 눌러도 세번째 슬라이드사진이 클릭 되는데 어떤부분이 잘못되었을까요?

HTML/CSS jquery 웹-디자인

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. Cheon님.

“visibility” 속성의 값으로 ‘none’을 사용하신 점이 문제입니다. CSS 속성에서는 ‘visibility’의 값으로 ‘hidden’이나 ‘visible’을 사용해야 합니다. 따라서 예상하신 대로 작동하지 않는 것입니다.

  • visibility 속성 설명: ‘visibility: hidden;‘은 요소를 화면에 보이지 않게 설정하지만 공간은 차지합니다. 이와 반대로 ‘display: none;‘은 요소를 화면에 보이지 않게 하며, 공간조차 차지하지 않게 됩니다.

아래와 같이 visibility 속성 값을 수정해 주세요:

@keyframes slide {
  0% {
    opacity: 0;
    visibility: hidden;
  }
  5% {
    opacity: 1;
    visibility: visible;
  }
  35% {
    opacity: 1;
    visibility: visible;
  }
  40% {
    opacity: 0;
    visibility: hidden;
  }
  100% {
    opacity: 0;
    visibility: hidden;
  }
}

위와 같이 수정하시면 모든 요소가 의도한 대로 작동할 것입니다.

더욱 자세한 문제 해결 방법이나 유사한 문제가 커뮤니티에서 논의된 게시글들을 확인하시려면 아래 링크들을 참고하시면 좋습니다:

  1. D3 visibility: hidden; 이걸 없애면 슬라이드가 보이는 문제! — visibility 속성과 관련된 동일한 문제 해결에 대한 글입니다.
  2. 슬라이드 문제 해결 방법 — 슬라이드 애니메이션 문제 해결에 대한 추가 정보입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

0

Cheon

동일html에 css를 바꿔도 똑같은 현상이 생깁니다.

 

@charset "utf-8";

body {
  margin: 0;
}
.container {
 margin: auto;
 width: 1200px;
 border: 1px solid #000;
}

header {
  display: flex;
  justify-content: space-between;
}
header > div {
  height: 100px;
  border: 1px solid #000;
}
.header-logo {
  width: 200px;
}
.nav {
  width: 600px;
}

/* slide */
.slide {
  position: relative;
  width: 1200px;
  height: 300px;
  border: 1px solid #000;
}
.slide > div {
  font-size: 0;
}
.slide > div > a {
  position: absolute;
  top: 0;
  left: 0;
  animation: slide 10s linear infinite;
  opacity: 0;
}

.slide > div > a:nth-child(2) {
  animation-delay: 3.5s;
}
.slide > div > a:nth-child(3) {
  animation-delay: 7s;
}

@keyframes slide {
  0% {
    opacity: 0;
    visibility: hidden;
  }
  5% {
    opacity: 1;
    visibility: visible;
  }
  35% {
    opacity: 1;
    visibility: visible;
  }
  40% {
    opacity: 0;
    visibility: hidden;
  }
  100% {
    visibility: hidden;
    opacity: 0;
  }
}
/* slide */

.items {
  display: flex;
}
.items > div {
  height: 200px;
  border: 1px solid #000;
  flex:1;
}

footer {
  display: flex;
}
footer > div {
  height: 100px;
  border: 1px solid #000;
}
.footer-logo {
  width: 200px;
}
.copyright {
  width: 1000px;
}

.copyright > div {
  box-sizing: border-box;
  border: 1px solid #000;
  height: 50%;
}

0

코딩웍스(Coding Works)

 

아래처럼 최초에 visibility: hidden을 주세요.

키프레임을 잘 적용해도 최초에 visibility: hidden 없어서 그럴거에요.

그런데 슬라이드 만드는건 CSS 방식보다 제이쿼리 방식으로 하나만 파시는게 좋습니다.

아무래도 CSS 방식은 가로 세로 슬라이더가 나오면 아주 약간의 감점이 있을 수도 있습니다.

그래서 CSS 방식 슬라이드는 아예 공부하지 마시고 제이쿼리 방식으로 하시는 것을 추천드립니다.

.slide div a {
    position: absolute;
    top: 0;
    left: 0;
    animation: slide 10s linear infinite;
    /*opacity: 0;*/
    visibility: hidden;
}

그리고 키프레임에 아래처럼 주시면 됩니다.

@keyframes slide {
    0% {
        opacity: 0;
    }
    5% {
        visibility: visible; /* 0% 구간에 visibility: hidden 상태를 보이는 상태로 전환 */
        opacity: 1;
    }
    35% {
        opacity: 1;
    }
    40% {
        visibility: hidden; /* 보이는 구간이 끝났으니까 투명도 0과 함께 실제로도 보이지 않는 상태로 전환 */
        opacity: 0;
    }
    100% {
        opacity: 0;
    }
}

 

 

해당 강의 PDF는 어디에 있나요?

1

56

2

2026 웹디자인개발기능사 실기 보는데 필요한 텍스트에디터는 무엇인가요?

1

92

2

예제파일

1

55

1

섹션10-77번강의 내 와이어프레임 pdf 자료 다운로드 어디서 하나요?

1

81

2

보더를 사용해 와이어프레임만드는 강의 html+css소스 다운로드 받을 수 있나요?

1

58

1

시험 시 슬라이드 작성 관련 문의

0

64

1

강의 질문 있습니다

1

69

1

시험 관련 문의

1

61

1

파워포인트 자료 다운로드 버튼 어디에 있나요?

1

55

1

브라우저 화면 줄일 시 빈 공간 발생

0

65

1

서브메뉴가 유지되지 못하고 사라지는데 무엇이 문제 일까요?

1

78

1

슬라이드 및 완성본 관련 사항

1

69

2

D유형 레이아웃 연습중인데 슬라이드 이미지 크기가 변하지 않습니다

1

90

3

B-4연습중인데 네비게이션의 a태그 두께가 이상하고 슬라이드 다운시 문제가 있습니다.

1

50

2

A2 연습중인데 메뉴 배경색과 서브메뉴 크기, 갤러리 그림 정리에 문제가 있습니다

1

68

2

A1 레이아웃 연습중인데 overflow: hidden이나 box-sizing: border-box;가 적용되지 않는 것 같습니다

1

55

2

레이어 팝업 '닫기' 가 안됩니다

1

62

1

공지사항과 갤러리 탭(안)구성 중 마우스 클릭시 색상변경이 안됩니다.

1

84

2

뷰티파이 설치 관련 문의

1

71

3

웹디자인 기능사 웹디자인개발기능사로 개편 되었는데 이 수업만 들어도 가능?

1

86

2

A유형~C유형 수험자 제공파일 어디서

1

73

1

A1 작업하는데 와이어프레임이 무너지고, hover일부가 적용 안되고 메뉴바가 슬라이드를 밀어냅니다. 탭메뉴도 작동하지 않습니다..

0

122

4

footer 높이 값

1

47

2

div 상하분배?가 안돼요

0

72

2