skip navigation

CSS 그룹핑

  • - 모듈별, 컨텐츠별로 그룹핑합니다.

  • - 그룹핑된 CSS 영역위에는 어떤 내용인지 알 수 있게 주석을 기입합니다.

  • - 상속되는 Class/ID가 있더라도 첫줄에 맞추어 정렬합니다.

  • - Hack 사용 시 줄바꿈하여 기입해야 하는 경우에만 ‘Tab’ 키로 한번 들여쓰기 합니다.

  • - 줄바꿈하여 기입되는 Hack 사용 시 Hack 실제 내용은 줄바꿈하고 ‘Tab’ 키로 한번 들여쓰기 합니다.

    예)
    .t_input input{width:120px;}
    @-moz-document url-prefix() {
    	.t_input input{width:117px;}
    } //Hack
    
  • - 속성값뒤에는 세미콜론(;)을 추가합니다.

  • - 속성과 값사이, 선택자와 중괄호 사이, 중괄호와 속성값사이 모두 띄어쓰기(‘Space’ 키, ‘Tab’ 키) 없이 붙여씁니다.

  • - 단, 속성과 속성 사이는 한칸 띄어쓰기 합니다.

    예)
    exp{display:block; width:100%;}
  • - 선택자와 선택자 사이는 ‘Space’ 키로 한칸 띄어쓰기 합니다.

    예)
    /* font */
    .f_ari{font-family:Arial;}
    .fc_org{color:#dc320a; font-family:Arial;}
    .f_ari, .fc_org{letter-spacing:0;}
    
    /* form */
    .t_input input{width:121px; height:25px; height:23px \0/IE8; padding:3px 0 0 9px; padding-bottom:2px \0/IE8; border:1px solid #a5a5a5;}
    @-moz-document url-prefix() {
    	.t_input input{width:117px;}
    } //Hack
    .textarea{vertical-align:middle;}
    .textarea textarea{display:block; padding:7px 11px; border:1px solid #b8b8b8;}
    			

CSS 속성 나열 순서

  • - 각의 속성값에서 벤더픽스 추가 시 벤더 픽스 속성값을 먼저 기입합니다. (-webkit- → -moz- → -ms- → -o- 순으로)

    예) -webkit-box-shadow:0 2px 2px rgba(0,0,0,0.1); -moz-box-shadow:0 2px 2px rgba(0,0,0,0.1); box-shadow:0 2px 2px rgba(0,0,0,0.1);}
  • - 속성 나열은 전역속성에서 지역속성 순으로 나열합니다.

    content // display // position // top // right // bottom // left // z-index // visibility // flex-direction // flex-order // flex-pack // float // clear // flex-align // overflow // clip // box-sizing // table-layout // width // height // min-width // min-height // max-width // max-height // margin // padding // outline // border // border-radius // background // box-shadow // color // font // line-height // list-style // vertical-align // text-align // text-indent // text-justify // opacity // -ms-filter:'progid:DXImageTransform.Microsoft.Alpha // filter:progid:DXImageTransform.Microsoft.Alpha(Opacity // etc…
    * 붉은색 표기는 최소한으로 준수해야하는 속성들.

주석

01. CSS 주석

  • - 그룹핑된 CSS 영역 첫줄 위에 기입합니다.

  • - 닫기 주석은 프로젝트 상황에 따라 작업자 판단 하에 추가 가능하다. 그룹핑된 CSS 영역 마지막 줄 아래에 기입합니다.예) /* //Tab */

  • - 주석내용은 한글이든 영문이든 무방하나 영문을 권장합니다.

  • - 주석내용은 가능한 직관적이고 의미론적인 단어를 선택합니다.

  • - 주석 안쪽 코멘트에는 설명하는 문장 외에 다른 기호는 넣지 않는 것을 기본으로 합니다.

  • - 주석의 기호와 코멘트 사이에는 빈 공간(1 ‘space’ 키)을 둡니다.

    예) /* Tab */ (o)       /* //Tab */ (o)
         /*-- Tab --*/(x)   /** Tab **/ (x)

02. CSS 수정 주석

  • - CSS 수정 작업 시 ‘수정 주석’을 추가 하지 않는 것을 기본으로 합니다.

  • - 프로젝트 성격에 따라 작업자 판단에 의해 ‘수정 주석’ 추가 가능합니다.

    ('수정 주석' 적용 했었던 프로젝트 case)
    - 운영 프로젝트
    - 그룹핑된 동일 CSS 영역을 여러 작업자가 지속적으로 반복 수정을 하여 히스토리 관리가 필요할 경우
  • - 수정된 날짜를 기입하고 수정된 내용을 직관적으로 간결하게 기입합니다.

  • - 수정한 작업자가 누구인지 구별한 수 있게 이니셜 또는 ID 를 마지막에 추가합니다.

  • - 한 라인만 수정 시에는 맨 뒤에 수정 주석을 기입합니다.

  • - 여러 라인이 수정 시에는 수정을 시작한 첫 라인 위와 마지막 라인 아래에 ‘수정 주석’과 ‘닫기 수정 주석’을 기입합니다.

    ) .fc_org{color:#ff0000; font-family:Arial;} /* 170411_컬러수정_ckh */

    /* 170411_가이드 수정_ckh */
    .textarea{vertical-align:middle;}
    .textarea textarea{display:block; padding:7px 11px; border:1px solid #b8b8b8;}
    /* //170411_가이드 수정_ckh */

CSS (추천)약식

CSS (추천)약식
정식표기 약식표기
색상코드 #FFFFFF, #000000, #CCCCCC #fff, #000, #ccc 처럼 줄여서 표기
background background-color:#CCCCCC; background:#ccc;
background-color:#CCCCCC;
background-image:url('주소');
background-repeat:no-repeat;
background-attachment:fixed
background-position:left top;background:#ccc url('주소') no-repeat fixed left top;

!! url ('주소') 기입 시 작은 따옴표(‘)를 꼭 추가
font font-weight:bold;
font-style:italic;
font-size:11px;
line-height:18px;
font-family:Verdana;
font:bold italic 11px/18px Verdana;

!! font 약식에서 size와 line-height 은 한쌍으로 모두 기입한다.
!! font 속성이 3가지 이상 나열 될 경우에만 약식 표기를 허용한다. (정식 표기를 권장)
border border-width:2px;
border-style:solid;
border-color:#555555;
border:2px solid #555;

!! WEB(PC)의 경우
   border 속성값은 반드시 약식 표기로 사용한다.
margin
(padding 동일)
margin-top:0;
margin-right:0;
margin-bottom:0;
margin-left:0;
margin:0;
margin-top:5px;
margin-right:10px;
margin-bottom:5px;
margin-left:10px;
margin:5px 10px;
margin-top:5px;
margin-right:10px;
margin-bottom:15px;
margin-left:20px;
margin:5px 10px 15px 20px;

!! margin, padding 약식 표기 사용을 권장한다.
!! 속성이 3개 이상 나열된다면 약식 표기로 기입한다.

사용단위

  • - 사용단위는 ‘px’을 기본으로 합니다.

  • - ‘px’, ‘em’, ‘%’를 혼용해서 절대 사용하지 않습니다.

  • - font의 경우는 ‘px’로 작업합니다.

  • - 0px은 0으로 표기합니다.

  • - 행간(line-height)는 초기값으로 100% 세팅 가능하다. 그 외에는 ‘px’ 로 작업합니다.

  • - ‘em’, ’%’ 는 모바일 프로젝트에서 사용이 가능합니다.

미디어타입 CSS

01. Media Type의 종류

  • - all (모든 출력 장치 : 모든 표현 미디어에서 사용됩니다.)

  • - aural (음성 출력 : 음성 합성기나 스크린 리더, 문서를 음성으로 표현해주는 기타 장치에서 사용합니다.)

  • - braille (점자 출력 : 점자 장치로 문서를 표헌(렌더링)할 때 사용합니다.)

  • - embossed (점자 출력 : 점자 출력 장치로 인쇄할 때 사용합니다.)

  • - handheld (포켓, 모바일 : PDA나 웹 접속이 가능한 핸드폰 같은 휴대용 장치에 사용합니다.)

  • - print (인쇄 : 시각이 있는 사용자를 위한 문서를 인쇄할 때 사용합니다.)

  • - projection (투사 장치 : 연설을 하면서 슬라이드쇼를 보여줄 때 사용하는 디지탈 프로젝트 같은 프로젝션 매체에서 사용합니다.)

  • - screen (스크린, 모니터 : 기기의 해상도에 따라 다르게 표현할 때 사용합니다.)

  • - tty (전신 타자기, Tele Type Writer : 문서를 피치가 고정된 환경으로 전송할 때 사용합니다.)

  • - tv (텔레비전, Television : 텔레비전을 통해 문서를 표현할 때 사용합니다.)

02. [Print] 미디어타입 CSS

  • - 사용방법은 CSS 코드 내에 @media print 로 사용하거나 print.css 파일을 생성하는 방법이 있습니다.

    예 1)
    /* print */
    @media print{
    	#gnb .snb{display:none;}
    }
    

    예 2)
    <link href="print.css" rel="stylesheet" type="text/css" media="print">

03. [screen] 미디어타입 CSS

  • - 기기의 해상도에 따라 다르게 표현할 때 사용한다. 모바일프로젝트에서 사용합니다.

03_1 사용방법
  • - CSS 내에 @media 태그를 통해서 사용하며 이 방법을 기준으로 합니다.

    예) @media all and (조건문) {실행문}
  • - 해상도별로 따로 CSS 파일을 생성하는 방법

    예) <link rel="stylesheet" media="sereen and (max-width:480px)" href="example.css">
  • - Html 문서내에 <style> 태그에 media 속성으로 사용하는 방법

    예) <style type="text/css" media="sereen and (max-width:480px)">
03_2 조건문의 종류
  • - 가로와 세로 너비 : width, min-width, max-width, height, min-height, max-height

  • - 뷰포트의 너비와 높이. 뷰포트의 크기는 HTML body 콘텐츠를 표시하는 영역으로 실제 스크린의 크기와는 다릅니다.

  • - 반응형 웹 구현시 가장 일반적으로 사용합니다.

    예)
    @media all and (min-width:768px) and (max-width:1024px) {실행문}
    → 뷰포트 너비가 768px 이상 "그리고" 2014px 이하이면 실행
    @media all and (width:768px), (width:1024px) {실행문}
    → 뷰포트 너비가 768px 이상 "그리고" 1024px 이하이면 실행
    @media net all and (min-width:768px) and (max-width:1024px) {실행문}
    → 뷰포트 너비가 768px 이상 "그리고" 1024px 이하가 "아니면" 실행
  • - 단말기의 가로와 세로 너비 : device-width, min-device-width, max-device-width, device-height, min-device-height, max-device-height

    • - 스크린의 너비와 높이.

    • - 스크린은 출력 장치가 픽셀을 표시할 수 있는 모든 영역으로 일반적으로 HTML body 콘텐츠를 표시하는 뷰포트 보다 큽니다.

      예)
      @media all and (device-width:320px) and (device-height:480px) {실행문}
      → 스크린 너비가 320px "그리고" 높이가 480px 이면 실행
      @media all and (min-device-width:320px) and (min-device-height:480px) {실행문}
      → 스크린 너비가 최소 320px 이상 "그리고" 높이가 최소
  • - 화면 회전 : orientation

    • - 뷰포트의 너비와 높이 비율을 이용하여 세로 모드인지 가로 모드인지를 판단합니다.

    예)
    @media all and (orientation:portrait) {실행문}
    → 세로모드. 뷰포트의 높이가 너비에 비해 상대적으로 크면 실행
    @media all and (orientation:landscape) {실행문}
    → 가로모드. 뷰포트의 너비가 높이에 비해 상대적으로 크면 실행
  • - 화면 비율 : aspect-ratio, min-aspect-ratio, max-aspect-ratio

    • - 뷰포트의 너비와 높이에 대한 비율. 너비/높이 순으로 조건을 작성합니다.

    • - min/max 접두사를 사용하면 너비 값의 최소/최대 비율을 정할 수 있습니다.

    예)
    @media all and (aspect-ratio:5/4) {실행문}
    → 뷰포트 너비가 5, 높이가 4 비율이면 실행
    @media all and (min-aspect-ratio:5/4) {실행문}
    → 뷰포트 너비가 5/4 비율 이상이면 실행
    @media all and (max-aspect-ratio:5/4) {실행문}
    → 뷰포트 너비가 5/4 비율 이하이면 실행
  • - 단말기 화면 비율 : device-aspect-ratio

    • - 스크린의 너비와 높이에 대한 비율. 너비/높이 순으로 조건을 작성합니다.

    • - min/max 접두사를 사용하면 너비 값의 최소/최대 비율을 정할 수 있습니다.

    예)
    @media all and (device-aspect-ratio:5/4) {실행문}
    → 스크린 너비가 5, 높이가 4 비율이면 실행
    @media all and (min-device-aspect-ratio:5/4) {실행문}
    → 스크린 너비가 5/4 비율 이상이면 실행
    @media all and (max-device-aspect-ratio:5/4) {실행문}
    → 스크린 너비가 5/4 비율 이하이면 실행

폰트

01. font-family 나열 순서

  • - 한글 글꼴 지정 시 글꼴 한글이름과 영문이름 모두 지정합니다. 순서는 한글 →영문이름 순으로

    예) font-family:돋음, Dotum, ‘맑은 고딕’, ‘Malgun Gothic’, sans-serif;
  • - 글꼴 지정시 맨 마지막에 Generic family 꼭 추가합니다.
    Generic family에는 serif(삐침이 있는 명조계), sans-serif(삐침이 없는 고딕계 폰트), monospace(고정폭을 가진 폰트), fantasy(꾸밈계 폰트), cursive(필기체 폰트)로 다섯 종류가 있습니다.

    예) font-family:돋음, Dotum, ‘맑은 고딕’, ‘Malgun Gothic’, sans-serif;
  • - 글꼴 지정 시 글꼴 이름 사이에 공백이 있는 경우는 작은 따음표로 감싸줍니다.

    예) font-family:돋음, Dotum, ‘맑은 고딕’, ‘Malgun Gothic’, sans-serif; (O)
         font-family:돋음, Dotum, 맑은 고딕, Malgun Gothic, sans-serif; (X)
  • - 영어와 한글이 서로 다른 글꼴을 사용할 경우 영어 글꼴을 앞에 배치합니다.

    예) font-family:verdana, 돋음, Dotum, sans-serif;

02. 웹폰트

  • - 웹폰트는 font-face rule을 이용하여, OS에서 기본으로 제공하던 폰트 외에 다른 폰트를 웹상에서 활용하는 방법

  • - @font-face를 이용하는 것은 .TTF(True Type Font), .EOT(Embedded Open Type) 확장자의 글꼴을 이용해야 하기 때문에 글꼴의 라이선스, 정보 여부를 정확히 알아야 합니다.

  • - 사용방법

    예)
    @font-face {
    	font-family:'YoonGothic';
    	src: url('/font/personal/YoonGothic770.eot');
    	src:local(※), url('/font/personal/YoonGothic770.woff') format('woff');
    }
    

03. 웹폰트 경량화

  • - 한글전용서체의 경우 무거운 용량으로 성능의 이슈가 있으므로 경량화를 합니다.

  • - 무료 오픈 라이센스인 폰트포지를 사용합니다.(리눅스,윈도우, MacOS등 여러 운영체제에서 사용 가능)

  • - 다운로드: https://fontforge.github.io/en-US/

  • - 사용방법

    1. 1. 폰트포지를 실행하여 경량화 할 폰트를 선택합니다.
    2. 2. 폰트를 선택하면 글리프 모음 화면이 뜨며, 삭제할 글리프를 선택 후마우스 우클릭을 하여 비우기(L)를 선택합니다.
    3. 3. 주 메뉴 > 파일(F) > 폰트를 출력(G) 후 아래의 화면에서 출력할 폰트타입 및 기타 사 항을 선택 후 “Genelate” 클릭
    * 이 때 특정 에러가 나타나지만 무시합니다. 이후 다시 특정 메시지가 나타나면 “Genelate”를 클릭하면 됩니다.

z-index

  • - 각 모듈별 안의 z-index의 설정값 사이 간격을 5로 합니다.

플로팅(floating) 해제(clear)

  • - 가상클래스 after를 사용하여 해제를 기본으로 합니다.

    예) .btn_wrap:after{content:''; display:block; visibility:hidden; clear:both; overflow:hidden; width:0; height:0;}
  • - 가상클래스 after 사용이 불가한 경우에는 아래 해제 전용 클래스를 사용합니다.

    예)
    .clfix:after{content:''; display:block; visibility:hidden; clear:both; overflow:hidden; width:0; height:0;}
    * html .clfix{height:1%;} /* Hides from IE-mac */
    .clfix{zoom:1;} /*for IE 5.5-7*/