Inflearn brand logo image

인프런 커뮤니티 질문&답변

chobo님의 프로필 이미지
chobo

작성한 질문수

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

4. CSS 슬라이드 애니메이션(세로 슬라이드)

세로 슬라이드 이미지 사이에 공백 제거

작성

·

48

1

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>ㅇㅇ</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    
  
    <div class="container">
        <header>
            <div class="header-logo"></div>
            <div class="navi"></div>
        </header>
        
        <!-- Slide Animation -->
        <div class="slide">
            <div>
                <a href="#none"><img src="images/slide-01.jpg" alt="slide1"></a>
                <a href="#none"><img src="images/slide-02.jpg" alt="slide2"></a>
                <a href="#none"><img src="images/slide-03.jpg" alt="slide3"></a>
            </div>
        </div>
        <!-- Slide Animation -->
        
        <div class="items">
            <div class="news"></div>
            <div class="banner"></div>
            <div class="shortcut"></div>
        </div>
        <footer>
            <div class="copyright">
                <div></div>
                <div></div>
            </div>
            <div class="family-site"></div>
        </footer>
    </div>
    <script type="text/javascript" src="script/jquery-1.12.4.js"></script>
    <script type="text/javascript" src="custom.js"></script>
    
</body>
</html>
@charset "utf-8";

body {
    margin: 0;
    font-size: 15px;
    color: #333;
    /* line-height: 1.6em; */
    background-color: #fff;
}
a {
    text-decoration: none;
    color: #222;
}
.container {
    border: 1px solid #ddd;
    width: 1200px;
    margin: auto;
}
header {
    height: 100px;
}
header > div {
    border: 1px solid #ddd;
    height: 100px;
}
.header-logo {
    width: 200px;
    float: left;
}
.navi {
    width: 600px;
    float: right;
}


.slide > div {
    border: 1px solid #ddd;
    height: 300px;
}

.items {
    overflow: hidden;
}
.items > div {
    border: 1px solid #ddd;
    height: 200px;
    float: left;
    box-sizing: border-box
}
.news {
    width: 500px;
}
.banner {
    width: 350px;
}
.shortcut {
    width: 350px;
}

footer {
    overflow: hidden;
}
footer > div {
    height: 100px;
    float: left;
    box-sizing: border-box;
}
.family-site {
    width: 200px;
}
.copyright {
    width: 1000px;
}
.copyright div {
    border: 1px solid #ddd;
    height: 50px;
}

/* Slide Animation */
.slide {
    position: relative;
}
.slide div {
    border: 1px solid red;
    position: absolute;
    /* font-size: 0; */
}

강의에는 세로 슬라이드도 font-size 0으로 하면 이미지 사이에 공백(5px)이 제거된다고 하는데 아무리 해도 되지 않더라구요. 오타 있나? 뭐 잘못한 거 있나? 이래저래 1시간 소비했는데

body 태그의 css쪽에 line-height: 1.6em 이거 제거한 뒤에 font-size: 0 을 해야 되던데

line-height 이게 이미지 공백에도 영향을 주나요?

그리고 위에 코드 강사님이 업로드한 코드 그대로 사용한 것인데 강의에서는 line-height 영향을 어떻게 안 받았을까 싶네요.

답변 2

0

인프런 ai가 답변을 잘 해놓았네요.

.slide div a img 를 블록요소로 바꾸시면 됩니다.

.slide div a img가 가지고 있는 인라인블록 성질의 아래쪽 마진인데 .slide div a img 에 display: block 이렇게 주시면 아래쪽 마진이 사라집니다.

chobo님의 프로필 이미지
chobo
질문자

image.png

말씀대로 하니까 여백이 사라졌지만 첨부된 그림 파일 보시면 이전 슬라이드 그림이 살짝 보이는데, 혹시 어떻게 없애야 할까요?

0

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

chobo님께서 제출하신 코드는 이미지 슬라이드를 만들면서 font-size: 0;를 사용하여 이미지 사이의 공백을 없애려는 시도를 하고 계신 것으로 보입니다. 질문에서 언급하신 line-height는 일반적으로 텍스트 요소의 줄 간격을 조절하는 속성이지만, 이미지와 같은 인라인 요소의 여백에도 영향을 미칠 수 있습니다.

세로 슬라이드에서 이미지 간의 공백이 제거되지 않는 문제의 경우, font-size: 0;를 사용하면 인라인 수준의 여백을 제거할 수 있습니다. 그러나 요소의 display 속성이나 부모 요소의 스타일 설정이나 불필요한 공백이 있는 경우 문제가 발생할 수 있습니다.

다음은 유사한 질문과 문제 해결 방법을 다룬 자료입니다. 참고하시어 문제를 해결하시기 바랍니다:

또한, 강사님의 수업에서 line-height에 관한 언급은 특정 세팅에서 의도적으로 추가하거나 제거함으로써 이미지 간 여백에 영향을 줄 수 있는지를 실험하신 결과일 수 있습니다. 만약 본 코드에서 여전히 문제가 지속된다면, img 태그에 display: block;을 적용해보시고, 부모 요소의 스타일링을 한 번 더 점검해 보세요.

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

chobo님의 프로필 이미지
chobo

작성한 질문수

질문하기