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

,

 

ASP.NET Core 과 Asp의 차이 ?

클라우드 기반 웹 응용 프로그램을 개발하기 위해 오픈소스로 새롭게 개발된 크로스 플랫폼 프레임워크다

온프레미스 환경에도 배포하여 수행할 수 있는 앱을 개발하기 위한 최적화된 개발 프레임워크를 제공하기 위해서 완전히 새롭게 개발

온프레미스 소프트웨어는 인터넷 네트워크에 연결 된 서버팜이나 클라우드 등의 원격 환경에서 사용하는 것이 아니라 건물에서 일하는 직원 또는 단체에서 설치, 실행하는 소프트웨어를 말한다. on-prem software(온프렘 소프트웨어) 또는 on-premise software(온프레미스 소프트웨어)라고 줄여서 쓰기도 하며 shrinkwrap software라고 부르기도 한다.

 

오버헤드를 최소화한 모듈화된 컴퍼넌트로 구성되어 있어서, 솔루션 구성시에 유연성을 유지

윈도우, , 리눅스에서 ASP.NET Core 응용 프로그램을 개발할 수 있다

 

ASP.NET Core를 만들었는가?

아키텍쳐 변경을 통해 군더더기 없이 모듈화된 코어(core) 웹 프레임워크를 만들기 위해

(ASP.NET CoreSystem.Web.dll 에 더이상 기반하지 않고, 잘게 분리된 NuGet 패키지들에 기반해서 최적화된 개발가능) (응용프로그램이 필요 이상의 모듈을 포함하지 않기 때문에 보안상 개선 효과가 있고, 서비스 하는 부담 또한 줄여준다)

(사용한만큼 지불하는(pay-for-what-you-use) 모델을 채택함으로써 응용프로그램의 성능이 개선)

ASP.NET Core에서 중대한 개선사항 포함

(새롭게 경량화되고 모듈화된 HTTP 요청 파이프라인)

(IIS 또는 개발자 자신의 프로세스에서 셀프 호스트할 수 있는 능력)

(닷넷 코어에 기반한 진정한 side-by-side 앱 버전 관리(versioning)) = 동일한 컴퓨터에서 여러 버전의 응용 프로그램 또는 구성 요소를 실행

(모든 기능이 NuGet 패키지 형태로 추가)

(NuGet 패키지들을 생성하고 사용하는 것에 대한 통합된 지원)

(웹 사용자 인터페이스와 웹 API를 위한 단일 웹 스택)

(클라우드를 위한 환경 기반 구성)

(내장된 종속성 주입 기능)

(모던 웹 개발을 단순화 시킨 새로운 도구들(tooling))

(윈도우, , 리눅스에서 개발하고 실행할 수 있는 크로스플랫폼)

(오픈 소스와 커뮤니티에 초점)

   

ASP.NET Core 특징

 

 

Kestrel 자체 웹서버 운용 가능

동적 컴파일

- 기존에는 빌드 하고 배포 했으나 에디터로 수정 가능함

의존성 주입 포함 - Startup.cs ConfigureServices에서 아래와 같이 트랜젝션 제어 주입이 가능함

- services.AddTransient<IService, Service>();

- services.AddScoped<IService, Service>();

- services.AddSingleton<IService, Service>();

Bower(정적파일 패키지 관리[jquery, angular, bootstrap 같은것 관리]), Gulp(빌드자동화), Grunt, NPM, Node.js, TypeScript, Yeoman 등 통합 가능

- 스크립트 압축, 빌드 자동화 등 커뮤니티 기반 웹개발 도구를 포함한다.

  

ASP.NET Core 몇가지 과거와 달라진 사용법

ViewEngine 커스터 마이징

Startup.cs -> ConfigureServices(IServiceCollection services)

services.AddMvc().Configure<MvcOptions>(options => { options.ViewEngines.Add(new MyCustomerViewEngine ()); });

MapRoute 커스터 마이징

Startup.cs -> Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)

app.UseMvc(routes => {routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); });

BundleCollection 커스터 마이징

bundleconfig.json에 설정하여 사용

GlobalFilterCollection 커스터 마이징

services.AddMvc(options =>

{

options.Filters.Add(new AddHeaderAttribute("GlobalAddHeader",

"Result filter added to MvcOptions.Filters")); // an instance

options.Filters.Add(typeof(SampleActionFilter)); // by type

options.Filters.Add(new SampleGlobalActionFilter()); // an instance

});

 

 

 

 

블로그 이미지

itworldkorea

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

,