• 카테고리

    질문 & 답변
  • 세부 분야

    자격증 (디자인)

  • 해결 여부

    미해결

slide 너비값과 포지션 엡솔루트 2가지 질문 드립니다!

21.06.20 22:19 작성 조회수 141

1

html

--------------------------

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>01슬라이드-타입01</title>
    <link rel="stylesheet" href="css/01style.css">
</head>
<body>
    
    <div class="container">
        <header>
            <div class="header-logo"></div>
            <div class="navi"></div>
        </header>
        <div class="content">
            <!-- Slide Animation -->
            <div class="slide"> <!-- position : relative -->
                <div> <!-- position : absolute -->
                    <a href="#none"><img src="img/slide-01.jpg" alt="slide-01.jpg"></a><!-- a태그 반드시 필요 -->
                    <a href="#none"><img src="img/slide-02.jpg" alt="slide-02.jpg"></a>
                    <a href="#none"><img src="img/slide-03.jpg" alt="slide-03.jpg"></a>
                </div>
            </div>
            <!-- Slide Animation -->
            <div class="items">
                <div class="news"></div>
                <div class="banner"></div>
                <div class="shortcut"></div>
            </div>
        </div>
        <footer>
            <div class="footer-logo"></div>
            <div class="copyright"></div>
            <div class="family-site"></div>
        </footer>
    </div>

</body>
</html>

--------------------------

css

--------------------------

.container {
    width1200px;
    marginauto;
    border10px solid red;
}

header {
    height100px;
    border1px solid #333;
}
header > div {
    height100px;
}
.header-logo {
    border1px solid #333;
    width200px;
    floatleft;
}
.navi {
    border1px solid #333;
    width600px;
    floatright;
}

.content {}
.content > div {}

/* Slide Animation */
.slide {
    /* border: 5px solid red; */
    positionrelative;
   height300px/* 매우중요 : 자식div에 absolute때문에 높이값을 잃어버림, 때문에 부모요소에 명시해줘야함 */
    overflowhidden;
}
.slide > div {
    width3600px;
    height300px;
    /* border: 5px solid #333; */
    font-size0;    /*매우중요 인라인요소에알수없는마진을없앰*/
    positionabsolute;    /*부모요소높이값잃음*/
    top0;    /*넣지않아도되지만레이아웃구조파악을위해추천함*/
    left0;    /*넣지않아도되지만레이아웃구조파악을위해추천함*/
    animation: slide 10s linear infinite;
}

@keyframes slide {
    0% {
        left0;
    }
    30% {
        left0;
    }
    35% {
        left-1200px;
    } /* 이동 */
    65% {
        left-1200px;
    }
    70% {
        left-2400px;
    } /* 이동 */
    95% {
        left-2400px;
    }
    100% {
        left0;
    } /* 이동 */
}

/* Slide Animation */

.items {}
.items > div {
    height200px;
    border1px solid #333;
    floatleft;
    box-sizingborder-box;
}
.news {
    width400px;
}
.banner {
    width400px;
}
.shortcut {
    width400px;
}

footer {
    clearboth;
    overflowhidden;
}
footer > div {
    height100px;
    border1px solid #333;
    floatleft;
    box-sizingborder-box;
}
.footer-logo {
    width300px;
}
.copyright {
    width700px;
}
.family-site {
    width200px;
}

--------------------------

.slide에 width 값 1200px는 필수가 아니라고 하셨는데요

그 이유가 .container에 width :1200px 를 주었기 때문에 필수가 아니라고 하신거 맞죠??

.slide는 블럭 요소이고 .container에 100% 차니까요..

그래서 저도 이 코드에서 .slide에서 width : 1200px를 주지 않았는데, 이상하게 나옵니다.

그리고 한가지 질문이 더있는데요

position :absolute 를 준 요소는 높이값과 너비값 모두 잃어 버리게 되는건가요?

답변 1

답변을 작성해보세요.

1

.slide에서 width : 1200px를 주지 않았는데, 이상하게 나옵니다.

.container에 width :1200px 를 주었기 때문에 .slide가 100% 곧 1200픽셀 맞습니다.

하지만 지금의 경우는 .slide에 overflow: hidden을 주어야 하기 때문에 1200픽셀을 넣어주세요.

position: absolute를 준 요소는 높이값과 너비값 모두 잃어 버리게 되는건가요?

정확히는 position: absolute를 주면 그 부모요소가 높이 값을 갖지 않게 됩니다. 너비값과는 관계 없습니다.