반응형 요소의 가변성

  • em - 부모 폰트 사이즈에 자식요소 폰트가 결정
  • rem - root 폰트 사이즈에 폰트가 결정(주로 root는 16px)

 

  • vw - 100vw 뷰포트의 전체 너비
  • vh - 100vh 뷰포트의 전체 높이

 

  • vmin - 너비와 높이 중 더 작은 값을 적용
  • vmax - 너비와 높이 중 더 큰 값을 적용

ex1) 너비 100px, 높이 500px = 1vmin = 1px / 1vmax = 5px

ex2) 요소 50vw x 50vw - viewport가 1000px x 300px 이라면 요소 크기가 500px x 500px 로 잘려 보이게 됨

그 때 방법으로 요소를 50vmin x 50vmin 로 하게 되면 (1vmin은 3px) 요소 크기가 150px x 150px이 되어

화면에 요소 전체가 잘 보이게 된다.

 


가변그리드(레이아웃)  

  • % 단위는 백분율 값으로 부모 요소와의 상대적 크기로 자식 요소가 정해집니다.
  • 너비와 여백은 부모 요소의 너비에 비례해 계산됩니다.
  • 글자 크기는 부모 요소의 글자 크기에 비례해 계산됩니다.
  • 특이한 점으로 부분 너비에 따라 패딩 또한 %에 영향을 받음

ex)

<style>

    .container{width:90%; marign: 0 auto;}

    .main{float : left;  width:70%; padding: 10%; marign: 0 auto; }

    .aside{float : right;  width:30%; padding: 10%;  marign: 0 auto;}

</style>

<body>

    <div class="container">

         <div class="main">main</div>

         <div class="aside">aside</div>

    </div

</body>

 


calc(칼크)

padding과 width % 의 복잡한 사용 방법 대신 간편하게 사이즈를 조절하는 방법입니다.

 

ex)

div{ width: calc(100% - 90px);}

가변이미지 

ex 1) max-width 로 기본 이미지 사이즈보다 더 커져서 깨지지 않도록 해야한다

<style>

    img{width:100%;  max-width: 640px;}

</style>

<body>

    <img src="img1.png">

</ body >

 

 

ex 2) div 의 크기에 따른 이미지 사이즈 지정하는 방법도 있다. 

<style>

div{ width:50%;}
img{ max-width: 640px;}

</style>

<body>

    <img src="img1.png">
    
</body>

 

 

ex 3) picture 태그를 이용해서 viewport 사이즈에 따른 이미지 변경이 가능하다.

<body>

    <picture>

        <source src set="img3.png" media="(min-width:1280px)">

        <source src set="img2.png" media="(min-width:768px)">

        <img src="img1.png">

    <picture>

</ body >

 

 

ex 4)

슬라이드배너 형태(이미지와 그림이 한 배너로 제작된 경우)에는

이미지와 그림이 분리가 되면서 가변이미지 효과를 얻기가 어렵다.(종횡비의 문제점)

그때 아래 방법으로 해결이 되었다.

 

img 태그에 object-fit:cover; width:100%; height:100%;

 

 

ex 5) 미디어쿼리 @media

<style>

    @media (max-width: 767px){

        .pc{display:none}

    }

    @media (min-width: 1280px){

        .mo{display:none}

    }

</style>

<body>

    <img class="pc" src="img1.png">

    <img class="mo" src="img2.png">   

</ body >

가변동영상

 

종횡비를 css의 padding-top으로 준다. 그러면 여백에 따른 공백부분이 padding 으로 해결 된다

 

ex) 315 / 560 = 0.5625 

<style>

    .video{padding-top: 56.25%;  position: relative; }

</style>

<body class="video">

    <iframe width="560' height="315" src="https://www.youtube.com/-----">

    }

</ body >

 

반응형

+ Recent posts