JQuery

07_반응형 웹(1) : 레이아웃

보갱:) 2020. 11. 2. 21:08

반응형 레이아웃

min-width 요소의 최소 너비 지정
min-height 요소의 최소 높이 지정
max-width 요소의 최대 너비 지정
max-height 요소의 최대 높이 지정

반응형 웹을 만들기 위한 viewport단위

 

viewport : 사용자에게 보여지는 웹페이지의 영역으로 화면이 바뀔 때마다 화면에 맞춰 스타일이 바뀌게 되는 웹 형태

css작업을 할 때 주로 px(픽셀)단위를 사용하지만 유동단위인 %를 사용하면 좀 더 유연한 사용이 가능하다.  뷰포트를 기준으로 하는 단위를 사용하여 반응형 웹을 좀 더 쉽게  구현할 수 있다.

 

 vw(Viewport Width) 1vw = 뷰포트 너비의 1%
vh(Viewport Height) 1vh= 뷰포트 높이의 1%

 

 

#responsive_1.html

    <h1>반응형 웹단위</h1>
    <hr>
    <div class="container">
        <div class="div1"></div>
        <div class="div1"></div>
        <div class="div1"></div>
        <div class="div1"></div>
    </div>
    <hr>

    <div class="container">
        <div class="div2">test123456789</div>
        <div class="div2"></div>
        <div class="div2"></div>
        <div class="div2"></div>
    </div>
    <hr>

    <div class="container">
        <div class="div3"></div>
        <div class="div3"></div>
        <div class="div3"></div>
        <div class="div3"></div>
    </div>
    <hr>

    <div class="wrap">
        <div class="div4"></div>
    </div>
    <hr>

    <ul class="navi">
        <li><a href="#">JAVA</a></li>
        <li><a href="#">ORACLE</a></li>
        <li><a href="#">HTML</a></li>
        <li><a href="#">CSS</a></li>
        <li><a href="#">JAVASCRIPT</a></li>
        <li><a href="#">jQuery</a></li>
        <li><a href="#">Responsive Web</a></li>
    </ul>

 

 

 

<style>

        .container {
            /*전체 브라우저 창의 80% 사용*/
            width: 80%;
            background-color: lightgray;
            padding: 50px;
            overflow: hidden;
        }

 

첫번째 div는 widht를 px로 고정했다.

        .div1 {
            width: 100px;
            height: 100px;
            box-sizing: border-box;
            float: left;
            background-color: red;
            border: 1px solid black;
        }

 

두번째 div는 widht를 부모의 15%만 차지하도록 했다.

        .div2 {
            width: 15%;
            height: 100px;
            box-sizing: border-box;
            float: left;
            background-color: red;
            border: 1px solid black;
        }

 

세번째  div는 최소너비(min-width)와 최대너비(max-width)를 지정했다.

        .div3 {
            width: 15%;
            /*min-width : 요소의 최소 너비 지정*/
            min-width: 80px;
            /*max-width : 요소의 최대 너비 지정*/
            max-width: 120px;
            height: 100px;
            box-sizing: border-box;
            float: left;
            background-color: red;
            border: 1px solid black;
        }

</style>

 


<style>

        .wrap {
            width: 800px;
            height: 300px;
            background-color: lightblue;
            padding: 50px;
        }

viewport단위(vw/vh)를 사용했다.

        .div4 {
            /*1vw(Viewport Width) = 뷰포트 너비의 1%*/
            width: 100vw;
            /*1vh(Viewport Height) = 뷰포트 높이의 1%*/
            height: 20vh;
            background-color: lightyellow;
            position: relative;
            left: -50px;
        }

</style>

 

[ 창을 좁게 했을 때 ]

 

[ 창을 넓게 했을 때 ]  800px의 배경을 넘어서 뷰포인트의 100%를 차지하고 있음을 볼 수 있다.

 

[ 창의 높이를 줄였을 때 ]


 

 

 

<style>

최소너비(min-width)를 900px로 지정했다.

        .navi {
            /*부모인 body태그의 넓이 사용*/
            width: 100%;
            padding: 0;
            margin: 0;
            overflow: hidden;
            list-style-type: none;
            min-width: 900px;
        }

 

        .navi>li {
            float: left;
            width: calc(100%/7);
        }

 

        .navi>li>a {
            display: block;
            width: 100%;
            height: 50px;
            line-height: 50px;
            font-size: 15px;
            text-decoration: none;
            text-align: center;
            box-sizing: border-box;
            border: 1px solid black;
            color: black;
        }

</style>

 

[창을 좁게 했을 때] min-width를 900px로 지정했기 때문에 스크롤바가 생기고 크기는 더이상 줄어들지 않는다.

 

[창을 넓게 했을 때]

'JQuery' 카테고리의 다른 글

07_반응형 웹(실습예제(1))  (0) 2020.11.02
07_반응형 웹(2) : 미디어쿼리  (0) 2020.11.02
06_유효성검사(실습예제(2))  (0) 2020.10.30
06_유효성검사(실습예제(1))  (0) 2020.10.30
06_유효성검사  (0) 2020.10.30