[기초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)을 변화시킨다.

,

 

 홈페이지 레이아웃을 만드는 방법 (2)

 

오늘은 기초 CSS 학습시간으로 홈페이지 레이아웃을 만드는 방법 을 다른 레이아웃을 시도해봅니다.

 

지난시간에도 언급한 내용입니다만

레이아웃을 만들 때 필요한 속성으로

CSS로 레이아웃을 만들 때 꼭 알아야 할 속성은 margin, float, clear입니다.

margin은 요소를 가운데 정렬할 때 사용합니다.
margin-left: auto; margin-right: auto;

로 설정하면 선택한 요소를 가운데에 놓을 수 있습니다.

float와 clear는 2단, 3단 등 다단으로 레이아웃을 만들 때 사용합니다.

 

오늘은 3단 레이아웃 만들기로

다음은 간단한 3단 레이아웃 예제입니다.
<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>CSS Tutorial | Layout</title>
    <style>
      #jb-container {
        width: 940px;
        margin: 0px auto;
        padding: 20px;
        border: 1px solid #bcbcbc;
      }
      #jb-header {
        padding: 20px;
        margin-bottom: 20px;
        border: 1px solid #bcbcbc;
      }
      #jb-sidebar-left {
        width: 160px;
        padding: 20px;
        margin-right: 20px;
        margin-bottom: 20px;
        float: left;
        border: 1px solid #bcbcbc;
      }
      #jb-content {
        width: 450px;
        padding: 20px;
        margin-bottom: 20px;
        float: left;
        border: 1px solid #bcbcbc;
      }
      #jb-sidebar-right {
        width: 160px;
        padding: 20px;
        margin-bottom: 20px;
        float: right;
        border: 1px solid #bcbcbc;
      }
      #jb-footer {
        clear: both;
        padding: 20px;
        border: 1px solid #bcbcbc;
      }
    </style>
  </head>
  <body>
    <div id="jb-container">
      <div id="jb-header">
        <h1>주일예배대표기도문</h1>
      </div>
      <div id="jb-sidebar-left">
        <h2>Sidebar</h2>
        <ul>
          <li>믿음</li>
          <li>소망</li>
          <li>사랑</li>
        </ul>
      </div>
      <div id="jb-content">
        <h2>Content</h2>
        <p>
        은혜로우신 하나님 아버지!

죄에 빠진 저희들을 부르셔서 구원의 확신을 주시고

진리의 말씀을 따라 살 수 있게 하시니 감사합니다.

오늘 이 복되고 즐거운 날

믿음의 권속들이 한 자리에 모여

신령과 진정으로 예배하기를 원합니다.
       
        </p>
        <p>
        경건한 마음으로 마치는 시간까지 온전히 주님만 높이는

저희 모두가 되게 하여 주시고

성령님 뜨거운 은혜로 부어주시옵소서.

이 모든 말씀 예수 그리스도의 이름으로

기도 드리옵나이다. 아멘.
        </p>
      </div>
      <div id="jb-sidebar-right">
        <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)을 변화시킨다.

,

 

 홈페이지 레이아웃을 만드는 방법

 

오늘도 기초 CSS 학습시간입니다. 가장 기초적이면서 중요한 내용이니 꼭 학습하고 이해하시기 바랍니다.

웹사이트의 레이아웃을 만드는 방법은 크게 두가지가 있습니다. 첫번째는 표(<table>)을 이용하는 것이고, 두번째는 CSS를 이용하는 것입니다.

2000년대 초까지만해도 CSS 보다는 <table>을 주로 사용했습니다. 하지만 <table>을 이용하는 것은 컨텐츠와 디자인의 분리 원칙에도 맞지 않고,

사이드바의 위치를 바꾸는 등 수정을 해야 할 때 편집해야할 코드가 많다는 단점이 있어 요즘에는 거의 사용하지 않습니다.

레이아웃을 만들 때 필요한 속성

CSS로 레이아웃을 만들 때 꼭 알아야 할 속성은 margin, float, clear입니다.

margin은 요소를 가운데 정렬할 때 사용합니다.
margin-left: auto; margin-right: auto;

로 설정하면 선택한 요소를 가운데에 놓을 수 있습니다.

float와 clear는 2단, 3단 등 다단으로 레이아웃을 만들 때 사용합니다.

2단 레이아웃 만들기

다음은 간단한 2단 레이아웃 예제입니다.

<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>CSS Tutorial | Layout</title>
    <style>
      #jb-container {
        width: 940px;
        margin: 0px 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;
      }
    </style>
  </head>
  <body>
    <div id="jb-container">
      <div id="jb-header">
        <h1>2-신앙인의 기도</h1>
      </div>
      <div id="jb-content">
        <h2>Content</h2>
        <p>
      성결의 성령 하나님!

네 이웃을 네 몸같이 사랑하라고 하신 주님의 말씀을 입과 머리로는 알면서도 행위로는

실천하지 못했던 한 해였습니다.

말씀을 영과 가슴으로 깨달아 실천하는 산 믿음을 허락하여 주시옵소서.

물질로 인하여 삶의 현장에서 주님의 말씀을 잊고 살아갈 때 마다 생각나게 하시어

하나님의 말씀을 따라 성령님의 인도함에 의지하여 살아가는 우리 형제 자매들이 되게 하여 주시옵소서.
       
        </p>
        <p>
       
우리 모두에게 가난한 심령이 되고, 고통 받는 심령에게는 주님의 말씀으로 자유함을 받는

말씀의 역사가 되게 하여 주시옵소서.


보이지 않는 곳에서 헌신하는 손길을 기억하시고 주님께 입술로 영광을 올리는 성가대에 함께 하여 주시옵소서.

주님의 사랑이 온 땅위에 충만하시길 원하나이다.

한 해를 보내는 아쉬움 속에 다가오는 새해에는 더욱 믿음을 굳건히 세워 성령님의 인도함따라

다시 오실 주님을 기다리며 예수 그리스도 이름으로 기도드립니다. 아멘
        </p>
      </div>
      <div id="jb-sidebar">
        <h2>신앙</h2>
        <ul>
          <li>믿음</li>
          <li>사랑</li>
          <li>봉사</li>
        </ul>
      </div>
      <div id="jb-footer">
        <p>Copyright</p>
      </div>
    </div>
  </body>
</html>

 

아래는 위 코드 실행결과입니다.

 

 

만약 사이드바를 왼쪽으로 옮기고 싶으면
•#jb-content의 float: left;를 float: right;
•#jb-content의 float: right;를 float: left;

로 바꿔주면 됩니다.

블로그 이미지

itworldkorea

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

,