댓글 목록

반응형 홈페이지 작업 2

페이지 정보

작성자 운영자 작성일 17-10-29 18:50 조회 1,791 댓글 0

동영상 강좌는 유튜브 채널 '웹학교'를 이용하시기 바랍니다.


Media queries

두번째 단계로 미디어 쿼리를 추가해 보도록 하겠습니다. 

영어로는 breakpoint라는 것을 결정해야 합니다.


이 부분은 솔루션에 따라 약간씩 차이가 있는 것으로 보입니다.


모바일은 360px/640px

테블릿은 600px/768px 

데스크탑은 978px/1200px로 보겠습니다.


참고로 부트스트랩은 768px(tablet), 992px(laptop), 1200px(desktop)으로 구분하기도 합니다.


중단점(breakpoints)는 여러분이 홈페이지제작할 때 좀 더 고려하길 바랍니다.


그리고 반응형을 제작할 때 접근방식 또한 두가지 방식이 있습니다.

모바일 중심으로 갈 것인지, 데스크버전을 만들고 테블릿, 모바일 화면을 고려할 것인지를 결정하면 됩니다.

우리는 이미 데스크탑 기준 홈페이지를 만들었기 때문에 나중 방법을 따르겠습니다.


테블릿 사용자를 위한 CSS

/* Media for tablet */
@media screen and (max-width: 768px) {
	css 속성들....}

모바일 사용자를 위한 CSS

/* Media for mobile */
@media screen and (max-width: 640px) {
	css 속성들....
	}

위에서는 크게 종단점을 768px, 640px 만 고려했습니다. 

모바일 중심으로 CSS를 작성할 경우는 모바일 CSS를 작성한 후

위에서는 max-width로 표현되었지만 min-width로 표현하여 테블릿, 데스크탑 CSS를 작성하면 됩니다.


아래는 이번 프로젝트 관련 미디어 쿼리 반영한 전체 코드입니다.

/* Media for tablet */
@media screen and (max-width: 768px) {
    #header .SocialBarContainer .SocialRow{max-width:720px; }
    #header .logo{max-width:720px; }
    .nav ul { max-width:720px; }
    .main{ max-width:720px; }
    .footer .f_menu p{max-width:720px; }
    .footer .copyright p{max-width:720px; }
    .nav ul li {width:100%;}
    .nav ul li:hover ul {  width: 100%; position:relative;}
    .nav ul li:hover ul li {  width:100%;  }
    .main .container .m_column{ width:90%;text-align:center;padding-bottom:20px;}  
    .footer .f_menu p span{
            display:table;padding:5px;text-align:center;      
        }  
    .slide img{width:100%;height:auto;}    
    /* sub-title */
    .main2{ max-width:720px; }
    .subtitle{max-width:720px;}     
    .subtitle img{width:100%;height:auto;}  
    .aside {width:100%;}
    .subtainer {width:100%;}
    .aside img{width:100%;height:auto;} 
}

/* Media for mobile */
@media screen and (max-width: 640px) {
    #header .SocialBarContainer .SocialRow{max-width:620px; }
    #header .logo{max-width:620px; }
    .nav ul { max-width:620px; }
    .main{ max-width:620px; }
    .footer .f_menu p{max-width:620px; }
    .footer .copyright p{max-width:620px; }
        /* sub-title */
    .main2{ max-width:620px; }
    .subtitle{max-width:620px;}   
}

이미 위 소스에 반영이 되었는데 우리가 마지막으로 고려해야 할 것은 미디어와 관련된 부분입니다.


Flexible Media

우리가 만들고 있는 사이트엔 메인과 부메뉴 상단에 2개의 이미지가 있습니다. 이 부분 반응처리를 위해 아래와 같이 코드를 추가하였습니다.


    .slide img{width:100%;height:auto;} 
    .aside img{width:100%;height:auto;} 


최근에 추가된 <picture>요소를 이용하여 breakpoints별로 별도의 이미지를 준비할 수 있습니다. 다만 <picture>요소는 ie11에서도 지원하지 않습니다.

<picture>
  <source media="(max-width: 768px)" srcset="main-768.jpg">
  <source media="(max-width: 640px)" srcset="main-640.jpg">
  <img src="main.jpg" alt="main image" style="width:auto;">
</picture>


직관적이고 편하긴 하지만 이것을 웹사이트에 적용하기 위해서는 조금 더 기다리거나 판단이 필요해 보입니다.


다음 장부터는 부트스트랩을 이용하여 반응형 사이트를 코딩하는 방법을 진행하겠습니다.


첨부파일

댓글목록 0

등록된 댓글이 없습니다.