[기초CSS 강좌 ] 반응형 레이아웃 만들기(홈페이지만들기)

 .

 

반응형 홈페이지 만들기

웹사이트의 레이아웃을 만들 때 방문자가 사용하는 모니터의 화면 해상도를 고려해야 합니다. 너무 크게 가로폭을 만들면 작은 해상도의 모니터로 접속했을 때 가로 스크롤이 생겨 컨텐츠를 보는 게 불편하기 때문입니다.

특히 스마트폰이나 태블릿 등 모바일 기기는 화면이 작기 때문에 가독성에 더욱 신경써야 합니다.

이러한 문제를 해결하는 방법 중의 하나가 반응형 웹디자인입니다. 해상도에 따라 가로폭이나 배치를 변경하여 가독성을 높이는 것입니다.

@media

이러한 작업을 할 수 있게 해주는 것이 @media입니다. 예를 들어
@media ( max-width: 768px ) {
  body { color: red; }
}

와 같이 하면, 웹브라우저의 가로 해상도가 768px 이하일 때 글자색을 빨간색으로 바꿉니다. 즉, 모바일 기기의 해상도를 고려하여 적절히 CSS를 수정하거나 추가하는 것이 가능합니다.

주의할 점은 가로폭 조정을 위해서 HTML 문서의 <head>와 </head> 사이에 다음의 코드를 넣어야 한다는 것입니다.
<meta name="viewport" content="width=device-width, initial-scale=1">

모바일 우선(Mobile First) VS 데스크톱 우선(Desktop First)

작은 가로폭부터 큰 가로폭 순서로 만드는 것을 모바일 우선(Mobile First), 큰 가로폭부터 작은 가로폭 순서로 만드는 것을 데스크톱 우선(Desktop First)이라고 합니다.

모바일 우선(Mobile First)

작은 가로폭부터 큰 가로폭 순서로 만들고, min-width를 이용합니다.
A
@media ( min-width: 768px ) {
  B
}
@media ( min-width: 1024px ) {
  C
}

기본 모양은 A, 768px 이상일 때는 B, 1024px 이상일 때는 C가 적용됩니다.

Bootstrap 등 대부분의 프레임워크는 모바일 우선으로 만들어져 있습니다.

데스크톱 우선(Desktop First)

큰 가로폭부터 작은 가로폭 순서로 만들고, max-width를 이용합니다.
A
@media ( max-width: 1023px ) {
  B
}
@media ( max-width: 767px ) {
  C
}

기본 모양은 A, 1023px 이하일 때는 B, 767px 이하일 때는 C가 적용됩니다.

 

예제 1

데스크톱 우선으로 만든 간단한 반응형 레이아웃 예제입니다.
<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>CSS</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <style>
      #jb-container {
        width: 940px;
        margin: 10px auto;
        padding: 20px;
        border: 1px solid #bcbcbc;
      }
      #jb-header {
        padding: 20px;
        margin-bottom: 20px;
        border: 1px solid #bcbcbc;
      }
      #jb-content {
        width: 580px;
        padding: 20px;
        margin-bottom: 20px;
        float: left;
        border: 1px solid #bcbcbc;
      }
      #jb-sidebar {
        width: 260px;
        padding: 20px;
        margin-bottom: 20px;
        float: right;
        border: 1px solid #bcbcbc;
      }
      #jb-footer {
        clear: both;
        padding: 20px;
        border: 1px solid #bcbcbc;
      }
      @media ( max-width: 480px ) {
        #jb-container {
          width: auto;
        }
        #jb-content {
          float: none;
          width: auto;
        }
        #jb-sidebar {
          float: none;
          width: auto;
        }
      }
    </style>
  </head>
  <body>
    <div id="jb-container">
      <div id="jb-header">
        <h1>기독교인의 삶 </h1>
      </div>
      <div id="jb-content">
        <h2>2018년 새해기도문</h2>
        <p>
 거룩하신 하나님!

이 시간 말씀을 통하여 은혜를 베풀어주시옵소서.

믿음 소망 사랑을 더하시며 하나님을 아는 지혜를 더하시며

성령의 능력으로 사로잡아주시며 소명의식으로 가득하게 하소서.

하나님 앞에서 거룩한 삶을 위한 진지한 결단을 갖게 하소서.
 

새해에도 그리스도 안에서 저희들 꾸준히 영적 성장을 하게 하시고

교회의 모든 식구들에게 육신의 건강과 가정의 평화를 주시며

저희 교회가 주의 은혜와 능력 가운데서 부흥 발전하며 예배, 교육, 친교, 선교, 봉사 등

교회 본분에 충실하게 하시며 저희 모두의 삶이 하나님의 영광을 나타내는

삶이 되게 하여 주시옵소서.
 
       
        </p>
      </div>
      <div id="jb-sidebar">
        <h2>Sidebar</h2>
        <ul>
          <li>믿음</li>
          <li>소망</li>
          <li>사랑</li>
        </ul>
      </div>
      <div id="jb-footer">
        <p>Copyright</p>
      </div>
    </div>
  </body>
</html>

 

위 코드 결과입니다.  컴퓨터에서

 

 

모바일에서

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

 

 

 

 

div태그로 홈페이지 레이아웃 만들기

웹디자인할 때 필수적으로 알아야 할 내요입니다.

처음 홈페이지의 구성도를 만들어서 작업을 해야하는데

이 때

최근 웹 표준 및 레이아웃 구현에 있어서 <table> 태그가 아닌 <div>가 필수적이라는 사실입니다. 기존의 table 태그의 속성 및 레이아웃 구성 방법은 완전히 이해하고 있지만,

div로 레이아웃을 할 때는 완전히 다르기 때문에 필히 아셔야 겠지요

 

 

 

위와 같은 레이아웃을 div 태그로 변환을 하고싶습니다. 정확히 어느부분을 <top>으로 구성하며 어느부분을 <section>으로 해야할지 알아봅니다.

특히 공지사항,이벤트,자유게시판의 상위 5개 레코드만 출력될 크기의 레이아웃 3개를 붙이는 것은 float 속성을 사용하는지도 알아봅니다.

 

<header>

<div id="logo">

Logo

</div>

<ul id="menu">

<li>메뉴1</li>

<li>메뉴2</li>

<li>메뉴3</li>

<li>메뉴4</li>

<li>메뉴5</li>

</ul>

</header>

<section>

<div id="banner">

</div>

<div id="widget_wrap">

<div class="widget">

Notice

</div>

<div class="widget">

Event

</div>

<div class="widget">

Freeboard

</div>

</div>

<div id="sub_banner_1">

Sub Banner 1

</div>

<div id="popular_goods">

Popular Goods

</div>

<div id="sub_banner_1">

Sub Banner 2

</div>

</scection>

<footer>

</footer>

 

해당 레이아웃과 HTML 코드에 맞게 CSS를 작성해서 사용하시고

안에 들어가는 내용들은 원하는 디자인에 맞게 기입하여 작업하시면 될 것같습니다.

 

 

 

 

직장을 다니면서 투잡 ( 재택알바 / 부업 )으로 월급만큼 수익을 얻을 수 있는 곳을 소개합니다.

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,