반응형이란 무엇인가?

웹은 사용자가 편하게 드나들 수 있는 플랫폼입니다.

스마트폰에서도, Window에서도, Mac에서도, 태블릿에서도 별다른 설치나 설정없이 브라우저만 있으면 접근할 수 있기 때문입니다.

이러한 장점을 가지고 있는 웹이지만 웹 페이지 혹은 웹 사이트를 개발하는 개발자 입장에서는 매우 난감한 상황이 벌어질 수 있습니다.

바로 우리가 사용하는 모니터, 스마트폰, 태블릿등 기기들의 화면 크기가 모두 다르다는 사실 때문이죠.

상상이 되시나요? 그 모든 기기들의 크기에 따라 웹 페이지가 다르게 보여야한다면 대체 얼마나 많은 코드가 존재해야 할까요?

반응형(Responsive)라는 말은 이런 문제를 극복하고자 나오게 된 개념입니다.

즉, 기기의 너비(width)와 높이(height)에 따라 웹 페이지를 다르게 보여주는 것입니다.

쉽게 말해서, 너비가 1024픽셀 이상일 때에는 메뉴에 아이콘을 보여줘! 같은 명령을 수행할 수 있다는 것입니다. 사이즈 조절도 물론 가능하겠죠?

반응형 웹을 만들 수 있는 여러가지 프레임워크가 나오게 되면서 모바일용 웹페이지를 따로 만든다거나, 개발자들을 쪼아서 수 많은 예외처리를 하는 일은 더이상 없을 것으로 보입니다.

이번에는 대표적인 반응형 웹 프레임워크인 Twitter의 Bootstrap으로 너비가 달라졌을 때 어떻게 다른 이미지를 보여줄 수 있는지 살펴보도록 하겠습니다.
 

반응형 디자인 사이즈 살펴보기

모바일의 경우 대부분이 다음의 3가지 사이즈에 해당됩니다.
 

  • Mobile Small → 320px
  • Mobile Medium → 375px
  • Mobile Large → 425px


노트북의 경우 대부분이 다음의 3가지 사이즈에 해당합니다.

  • Laptop → 1024px
  • Laptop Large → 1440px
  • 4K → 2560px



태블릿의 경우 다음의 사이즈에 해당합니다.

  • Tablet → 768px


물론 기기마다 모두 사이즈가 다르기 때문에 이에 맞는 설정을 해주어야 합니다.

위처럼 크게 분류해서 반응형 설정을 한다면, 기기별로 사용자가 더 편리하게 볼 수 있는 웹 페이지를 만들 수 있습니다.
 

너비에 따라 바뀌는 이미지 적용하기

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

/*
    Mobid S - 320px
*/
@media(max-width: 320px){
    .container_header{
        width: 440px;
    }
    .navbar-brand{
        padding: 14px 20px;
    }
    .navbar-toggle{
        margin-right: 125px;
    }

}


위에 코드처럼 CSS 파일에 Media 쿼리를 추가해줍니다.

이 Media 쿼리는 기기가 설정한 사이즈의 조건에 해당되면 프로그래밍한 내용을 실행해줍니다.
 

  • max-width → 예를 들어 320px이 설정되어 있다면, 320px까지 해당 설정을 적용하겠다는 의미가 됩니다.
  • min-width → 예를 들어 1024px이 설정되어 있다면, 1024px부터 해당 설정을 적용하겠다는 의미가 됩니다.



이것을 응용하면 디바이스 사이즈에 따라 다른 이미지를 보여주는 것도 가능합니다.

<div class="container clearfix">
       <div class="row">
             <img id="example_image_large" src="img/page4/drawable-xxxhdpi/1.png" alt="" class="img-responsive"/>
             <img id="example_image_small" src="img/mobile/people/drawable-xxxhdpi/1_page_5.png" alt="" class="img-responsive"/>
       </div>
</div>

위처럼 2개의 이미지를 div 태그 안에 준비해놓습니다.

/*
    이미지 반응형 조정
*/
@media(min-width: 1024px){
    #example_image_large{
        display: block;
    }
    #example_image_small{
        display: none;
    }
}

@media(max-width: 768px){
    #example_image_large{
        display: none;
    }
    #example_image_small{
        display: block;
    }
}


그리고 CSS 파일에서 사이즈에 따라 특정 이미지를 보여주는 것입니다.

1024xp 이상일 때 큰 사이즈의 이미지를 보여주고, 768px 이하일 때는 작은 사이즈의 이미지를 보여주는 것입니다.

 


출처: https://show-me-the-money.tistory.com/44 [개발자, Trend를 파헤치다.

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
31 [web개발] [jQuery] Select박스 option 값 선택하기 졸리운_곰 2021.10.20 651
30 [web개발][javascript][JQuery] textarea 값 설정및 값 가져오기 졸리운_곰 2021.10.19 441
29 [javascript][jQuery] 제이쿼리(jQuery) 선택자 - #1 file 졸리운_곰 2021.09.07 570
28 [HTML5, Javascript, Jquery] Add item from array to list when button is clicked in jQuery 졸리운_곰 2021.06.01 739
27 textarea 태그에 값을 넣고 뺄때 아니면 개행문자 '\n'이 혼란이 온다 졸리운_곰 2019.04.08 692
26 jQuery ready와 load의 차이 file 졸리운_곰 2019.03.29 733
25 How can I detect if a selector returns null? 졸리운_곰 2019.03.25 454
24 jQuery.isEmptyObject() 졸리운_곰 2019.03.24 793
23 [jQuery]요소를 추가하는 메소드(append, prepend, after, before) 졸리운_곰 2019.03.10 575
22 jQuery / Method / .text() - 선택한 요소 안의 내용을 가져오거나, 다른 내용으로 바꾸는 메서드 file 졸리운_곰 2019.03.10 587
21 How do you convert a jQuery object into a string? 졸리운_곰 2019.03.10 454
20 JQuery 오브젝트 셀렉트한 select object의 내용 확인 졸리운_곰 2019.03.10 600
19 JQuery Object 선언 : jQuery creating objects [duplicate] 졸리운_곰 2019.03.06 542
18 [제이쿼리] 태그 및 요소 삭제, Remove() file 졸리운_곰 2019.03.06 848
17 jQuery .each문(for문) 사용시 break, continue를 하려면? file 졸리운_곰 2019.03.06 742
16 jQuery / Method / .removeClass() - 선택한 요소의 클래스 값을 제거하는 메서드 file 졸리운_곰 2019.03.06 543
15 [jQuery] 선택자에 변수 넣기 졸리운_곰 2019.03.04 641
14 JQuery로 radio 버튼의 값 가져오기 : How to get the value of selected radio button in a group using jQuery 졸리운_곰 2019.01.10 532
13 Ajax replace instead of append 그리고 jquery .append(Html). 에서 class 적용 적용 졸리운_곰 2019.01.07 625
12 [jQuery] Ajax 방법 졸리운_곰 2018.08.03 655
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED