본문 바로가기

CSS

MONG9.CSS

몽구에디터에서 사용하는 CSS규칙

개요

M9에서 사용하는 CSS 코드 작성 규칙을 설명한다. CSS 코드의 기본 작성 규칙과 인코딩 선언 방법,선택자,속성 등의 작성 규칙,파일 분기 방법을 설명한다. CSS에서는 공백에 대한 의미가 없으므로 불필요한 공백을 최소화하는 것을 습관화 한다.

최소한의 코드로 최대한의 효과

규칙

기본적으로 아래의 규칙을 따른다.

  1. W3C Validation 을 통과해야 한다.
  2. 모든 속성은 영문 소문자로만 작성한다. 한글글꼴 이름은 예외로 한다.
  3. 마지막 속성의 세미콜론(;)은 사용하지 않는다.
  4. 속성값 사이의 줄 바꿈은 필요한 경우에 사용한다.
  5. 빈 줄의 사용은 한줄을 넘지 않도록 한다.
  6. CSS가 추가,삭제,수정 되었을때는 날짜와 작업자를 주석으로 표기한다. ex) 20180809-D
  7. 작업자 명칭은 정해진 약자로 표현하며 약자는 M,S,J,D 로 표기한다. (이름의 이니셜 M은 master)
  8. 주석사용시 /* */ 이외의 특수문자는 사용하지 않는다.
  9. 줄바꿈과 띄어쓰기는 파일크기에 영향을 미치므로 불필요한 공백을 최소화 한다.

CSS용량을 최소화 시키는것을 궁극적 목표로 한다.

따옴표 사용 범위

@charset 선언 이외에는 작은따옴표(')를 사용한다.

background:url에서 따옴표는 사용하지 않는다.

값(value)에 공백이 있다면 작은따옴표(')로 감싼다.


/* 잘못된 예 */
@charset'utf-8';
.example{font-family:돋움;Times New Roman}
.example{background:url('bg.gif') no-repeat 0 0;}

/* 올바른 예 */
@charset"utf-8";
.example{font-family:'돋움';'Times New Roman'}
.example{background:url(bg.gif) no-repeat 0 0;}

마지막 세미콜론

마지막 속성의 세미콜론은 쓰지 않는다.

값(value)에 공백이 있다면


/* 잘못된 예 */
.example{font-size:12px;color:#fff;}

/* 올바른 예 */
.example{font-size:12px;color:#fff;font-family:Dotum,'돋움';}

들여쓰기

CSS코드 작성시 들여쓰기를 하지 않는다.


/* 잘못된 예 */
selector{property:value;}
    selector{property:value;}

/* 올바른 예 */
selector{property:value;}
selector{property:value;}

공백

불필요한 공백을 제거한다.

쉼표(,)로 구분되는 선택자 간 공백은 제거한다.

속성 간 공백 및 속성값 사이 공백은 제거한다.

중괄호{ }의 좌우 공백은 제거한다.


/* 잘못된 예 */
.title-style-1{display:inline-block; width:20px; height:1px}
a:hover, a:active, a:focus {text-decoration:underline}
.selector {position: absolute; float: left ; display: none; font-family:'돋움', dotum;}
.example h1{ color:#222 }

/* 올바른 예 */
.title-style-1{display:inline-block;width:20px;height:1px}
a:hover,a:active,a:focus{text-decoration:underline}
.selector {position:absolute;float:left;display:none;font-family:'돋움',dotum}
.example h1{color:#222}

빈 줄

의미 있는 객체를 구분할 목적으로 코드 그룹 사이에 빈 줄을 넣되, 4줄을 넘지 않는다.

그룹내에서는 한줄, 그룹외에서는 세줄을 띄운다.


/* padding */
.padding-0{padding:0}
.padding-1{padding:1em}
.padding-2{padding:2em}
.padding-3{padding:3em}

.padding-top-0{padding-top:0}
.padding-top-1{padding-top:1em}
.padding-top-2{padding-top:2em}
.padding-top-3{padding-top:3em}

.padding-right-0{padding-right:0}
.padding-right-1{padding-right:1em}
.padding-right-2{padding-right:2em}
.padding-right-3{padding-right:3em}



/* margin */
.margin-0{margin:0}
.margin-1{margin:1em}
.margin-2{margin:2em}
.margin-3{margin:3em}

.margin-top-0{margin-top:0}
.margin-top-1{margin-top:1em !important}
.margin-top-2{margin-top:2em !important}
.margin-top-3{margin-top:3em !important}

.margin-right-0{margin-right:0}
.margin-right-1{margin-right:1em}
.margin-right-2{margin-right:2em}
.margin-right-3{margin-right:3em}

줄 바꿈

선택자와 속성,속성값 사이 줄 바꿈은 사용하지 않는다.

*일부상황에서 사용한다.


/* 잘못된 예 */
.selector1,
.selector2,
.selector3{property:value;}
.selector{
    position:relative;
    width:100px;height:50px;
    color:#000;
    z-index:
    10
}

/* 올바른 예 */
.selector1,.selector2,.selector3{property:value}
.selector{position:relative;width:100px;height:50px;color:#000;z-index:10}

선택자

선택자 작성시 참고

스타일 엔진은 키 선택자(가장 오른쪽에 위치하며,마지막에 작성된 선택자)로부터 시작하여 왼쪽으로 이동하면서 엘리먼트가 규칙에 적합한지를 확인한다. 만약 엘리먼트가 이 규칙에 적합하거나 적합하지 않다는 게 확인되면 멈추게 된다. 가장 기본적인 개념은 규칙 필터링으로 엘리먼트와 관계없는 규칙을 매칭하는데 시간을 낭비하지 않게 하는것이다. 성능을 비약적으로 향상시키는 방법은 바로 매칭을 줄이는 것이다. 주어진 엘리먼트가 적합한지 확인하는데 고려해야 할 규칙의 수가 적을수록 성능이 좋아진다. M9에서는 효율적인 선택자활용을 위해서 다음을 참고한다.

  1. 공통선택자(*)는 웹페이지의 성능에 영향을 미치므로 한번만 사용한다.
  2. 타입선택자는 중복되지 않게 한다.
  3. ID선택자는 의미있는 그룹에서만 사용하고 중복되지 않게한다. 네이밍시 특수문자(-,_)를 사용하지 않으며 두 단어 이상일때 두번째 단어의 첫 글자를 대문자로 처리하는 '카멜 케이스'기법을 사용한다.
  4. class선택자는 네이밍규칙에 맞춰서 생성한다.
  5. class사용시 무의미한 교차속성은 피하고 필요한 상황일때 허용한다.

공통선택자(Universal Selector)

공통선택자(전체선택자) * 는 문서안의 모든 요소를 읽어내리기 때문에 로딩속도에 영향을 미치므로 한번만 사용한다.


/* mong9.css */
*, *:before, *:after {
    border-color:#dde6f5;
    border-width:0;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

태그선택자(Type Selector)

HTML요소를 직접 지칭하는 선택자로써 CSS 상단에 위치시킨다.


/* 태그선택자  미완성 20180814 */
html,.normalize,.m9_editor,.m9_editor_box {
    font-family:'Source Sans Pro','Open Sans',sans-serif;
    font-weight:300;
    font-size:14px;
    font-size:.95rem;
    line-height:1.65em;
    letter-spacing:-0.015em;
    -ms-text-size-adjust:none;
    -webkit-text-size-adjust:none;
    color:inherit
}

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
    margin: 0;
    padding: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}
html{color:#222} /* 전체 글자색 정의 */
p{line-height:1.8em;color:#555;}
fieldset{border:none}
img,embed,object,video{max-width:100%}
h1, h2, h3, h4, h5, h6 {color: #222;}
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {color: inherit;text-decoration: none;}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {display: block;}
table {border-collapse: collapse;border-spacing: 0;}

strong,b {font-weight:500 !important;}
hr {background:#dee3eb;height:1px;margin:1em 0;}

a{background:transparent;color:inherit;*color:#333;text-decoration:none}
a:link{text-decoration:none}		
a:visited{text-decoration:none}	
a:active{text-decoration:none}	
a:hover,a:focus{text-decoration:none;}	

blockquote { }

클래스선택자(Type Selector)

종속 비종속 개념파악

일반적으로 많이 쓰는 방식이므로 헷갈리기 쉬운 부분만 정리한다.


/* CSS */
.class1 {background:yellowgreen;color:darkgreen}
div.class2 {background:darkgreen;color:yellowgreen}
div .class3 {background:darkgreen;color:yellowgreen}

<!-- HTML -->  
<p class="class1">class1 적용</p>  
<p class="class2">class 미적용</p>  
<div class="class2">class2 적용</div>   

<div>
    <ul>
        <li class="class1">클래스1 적용</li>
        <li class="class2">클래스 미적용</li>
        <li class="class3">클래스3 적용</li>
        <li class="class2 class3">클래스3만 적용</li>
    </ul>
    <p class="class3">클래스3적용</p>
</div>

4줄과 5줄의 차이를 유념한다. 4줄의 경우 .class2가 적용되는 조건은 반드시 div에 포함된 경우에만 적용된다.5줄의 경우는 div의 하위구조에서 어떤곳이라도 적용이 된다.

클래스선택자를 사용하기 전에 생각해야 할 사항

class요소 대신 사용할 수 있는 태그가 있는지 확인한다. class가 구조를 대신할 수 없다는점을 명심한다.

class사용은 최소한으로 최대의 효율을 낼수있도록 한다. 불필요하게 많은 class선택자를 사용하지 않는다.

중복되는 스타일을 공유하는 class나 id가 있는지 확인한다.


h1 {
    font-size: 2.1rem;
    line-height: 1.2em;
    letter-spacing: -0.035em;
	padding-bottom:30px;
}

/* 잘못된 예 (태그스타일과 중복되는 클래스) */
.h1 {font-size:2.1rem;line-height:1.2em;letter-spacing: -0.035em;padding-bottom:30px;}

<div class="h1">잘못된 예</div>
<h1>올바른 예<h1>

ID 선택자

단 한번 유일하게 적용될 스타일에만 사용을 한다.

디자인적인 요소를 위해서 생성하지 않고 요소의 배치방법을 지정할때 사용한다.

꼭 필요할때만 사용한다.

복합 선택자

두 개 이상의 선택자 요소가 모인 선택자로써

하위선택자와 자식선택자 개념을 확인하고 넘어간다.


/* 하위선택자 */
section ul {border:1px dotted black}

/* 자식선택자 */
section>ul {border:1px dotted black}

하위선택자는 부모요소에 포함된 '모든' 하위요소에 스타일을 적용한다.

자식선택자는 부모의 "바로 아래" 자식요소에만 적용한다.

형제 선택자

인접 형제 선택자와 일반 형제 선택자의 개념을 확인하고 넘어간다.


/* 인접 형제 선택자 */
h1+ul {background:yellowgreen;color:darkgreen}
<section>
    <ul></ul>
    <h1>H1</h1>
    <ul></ul>
    <ul></ul>
</section>


/* 일반 형제 선택자 */
h1~ul {background:yellowgreen;color:darkgreen}
<section>
    <ul></ul>
    <h1>H1</h1>
    <ul></ul>
    <ul></ul>
</section>

인접 형제 선택자는 조건을 충족시킨 첫번째 동생요소에만 적용한다.(7줄)

일반 형제 선택자는 조건을 충족하는 모든 동생요소에 적용한다. (17,18줄)

형 요소에는 모두 적용되지 않는다.

속성 선택자

위에서 살펴본 선택자들은 태그나 클래스 이름, ID이름만 알면 그대로 스타일을 적용할 수 있다. 하지만 이제 살펴볼 속성 선택자는 클래스 속성이나 ID속성과 같이 대표적인 속성이 아닌 태그 안의 특정 속성들에 따라 스타일을 지정한다. 속성 값의 조건에 따라 다양한 스타일을 지정할 수 있기 때문에 활용도가 높으므로 참고한다.

E[A="V"]형식은 속성과 속성값이 완벽하게 일치하는 경우에 선택되지만 E[A~"V"]선택자는 띄어쓰기를 통해 여러개 올 수 있는 속성값중 하나만 일치해도 선택


/* 속성선택자 패턴 */
[A] 'A' 특성을 가진 모든 요소를 선택
E[A]  'A'속성이 포함된 요소 E를 선택
E[A="V"] 'A'속성값이 정확하게 'V'와 일치하는 요소 E를 선택
E[A~="V"] 'A'속성값에 'V'가 포함되는 요소 선택  ~는 공백을 의미한다
E[A^="V"] 'A'속성값이 'V'로 시작하는 요소를 선택
E[A$="V"] 'A'속성값이 'V'로 끝나는 요소를 선택
E[A*"V"] 'A'속성값에 'V'가 포함되는 요소를 선택
E[A|="V"] 'A'속성값이 정확하게 'V'이거나 'V-'으로 시작되는 요소 E를 선택


/* [A] */
[target] {font-weight:600}

/* E[A] */
a[href] {background:#232323;color:#fff}

/* E[A="V"] */
input[type="text"] {width:150px;border:1px solid #e8eef6}
[target=_blank] {color:red} /* target="_blank" 가 있는 모든 요소 선택

/* E[A$="V"] */
a[href$=".xls"] {background:darkgreen}
a[href$=".pdf"] {background:darkgreen}

/* E[A^="V"] */
a[href^"https"] {color:#8f919a}

/* E[A~="V"] */
ul[class~="list-style-1"]>li:before{content:"."}
ul[class~="list-style-2"]>li:before{content:"-"}

[title~flower]  /* flower 가 포함된 제목 특성을 가진 모든 요소 선택 */

/* E[A*="V"] */
a[href*="mong9"] /* href속성값이 하위 문자열 "mong9"를 포함하는 모든 <a> 요소를 선택 */
.small[class*=tab-btn-on], 
.small[class*=tab-btn-off]{min-width:0;padding:0 10px}
.large[class*=select-box] .selectbox{padding:5px}
.small[class*=select-box] .selectbox{padding:1px}

E = elementor (요소)

A = attribute (속성)

V = value (속성값)

가상 선택자

구조(웹문서 소스)에는 실제로 존재하지 않지만 임의로 가상의 선택자를 지정하여 사용하는것으로 M9에서는 a태그에서 활용한다.

여러가지가 있지만 M9에서 사용중인 가상선택자만 정리한다

CSS3을 지원하지 않는 IE8의 크로스브라우징을 위해 싱글콜론(:)을 사용한다.


/* 가상선택자 */
E:link  
E:visited
E:active
E:hover
E:focus

/* 가상 엘리먼트 선택자 */
E:first-line /* E요소의 첫번째 라인 선택 */
E:first-letter /* E요소의 첫번째 문자 선택 */
E:before /* E요소의 시작부분에 콘텐츠를 추가 */
E:after /* E요소의 끝부분에 콘텐츠를 추가 */

/* 마우스 드래그 */
:-moz-selection{background:#f64f59;color:#fff}
:-webkit-selection {background:#f64f59;color:#fff}
:selection{background:#f64f59;color:#fff}

/* ex */
.class ul li:first-child {font-weight:600}
.class ul li:first-letter {font-size:30px;color:blue}

.gnb:after{display:block;clear:both;content:''}
.gnb li {float:left;margin-right:5px}
.gnb li:before {padding-left:5px;content:'|'}
.gnb li:first-child::before {content:''}

:link와 :visited는 문서안의 링크와 관련되서만 쓸수있고 :active,:hover,:focus는 링크뿐만 아니라 다른 요소에도 적용 가능하다.

before,after 사용시 반드시 content 속성과 함께 쓴다.

선택자 우선순위

스타일을 적용하는데는 다양한 방법이 있으며 동시에 여러가지 방법을 사용하게 되면 스타일이 충돌할 수 있다. 그렇기때문에 선택자 간의 우선순위를 파악하도록 한다.

스타일 우선순위가 같거나, 계산방법이 없는 경우 마지막에 지정된 스타일이 우선적용된다.

원천소스 우선순위

  1. !important 선언한 사용자style
  2. !important 선언한 제작자style
  3. 제작자style
  4. 사용자style
  5. user agent(브라우저 자체선언)

일반적인 우선순위는 자동으로 이 순서로 지정이 된다. 하지만 M9에디터에서는 중복사용을 하지않는것을 원칙으로 한다. 최소한의 코드로 최대의 효과를 내야한다는것을 항상 염두해 둔다.

  1. !important
  2. inline style
  3. id
  4. class
  5. tag
  6. *

/* 선택자 우선순위 예시 */
ul+ol li.num {}
li#selector1 {}

<ul>  
....
</ul>  
<ol>  
    <li class="num" id="selector1"></li>  
</ol>  

4번의 스타일이 적용된다.

예제

M9에디터에서 사용하고 있는 선택자 예제


/* 공통선택자 */
*,*:before,*:after {
    border-color:#dde6f5;
    border-width:0;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

/* 타입선택자 */
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,
blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,
em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,
center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,
tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,
figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video {
    margin: 0;
    padding: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline
}
h1,h2,h3,h4,h5,h6{color: #222;}
h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:inherit;text-decoration:none}
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}
table{border-collapse:collapse;border-spacing:0}
strong,b{font-weight:600 !important}
p{line-height:1.8}
hr{background:#dee3eb;height:1px;margin:1em 0}

a{background:transparent;color:inherit;*color:#333;text-decoration:none}
a:link{text-decoration:none}		
a:visited{text-decoration:none}	
a:active{text-decoration:none}	
a:hover,a:focus{text-decoration:none}	

/* ID선택자는 정의된 레이아웃에서 사용 */
#wrapper{max-width:2000px;margin:0 auto}
header,div,.container,.content,footer,section,article 
<div id="contentWrap">
<div id="cssContentBox">

/* 교차속성 */
input[type="submit"].line.icon:before,
input[type="reset"].line.icon:before,
input[type="button"].line.icon:before,
button.line.icon:before,
.button.line.icon:before {
color: #bbb;
}

<a class="button line icon" href="#"><버튼>

속성 선언 순서

레이아웃에 영향을 미치는 순으로 선언하며 순서는 다음과 같다.

속성 선언 순서
순서
의미
대표속성(*그룹)
관련속성
1
표시 display visibility
2
넘침 overflow -
3
흐름 float clear
4
위치 position top,right,bottom,left,z-index
5
크기 width&height -
6
간격 margin&padding (*) -
7
테두리 border (*) -
8
배경 background (*) -
9
글꼴 font (*) color,letter-spacing,text-align,text-decoration,text-indent,vertical-align,white-space ...
10
동작 animation animation,transform,transition,marquee ...
11
기타 - 명시되지 않은 속성의 선언순서는 무관
1~6:레이아웃, 7~8:테두리/배경, 9:글꼴, 10:동작, 11:기타 순

그룹속성 선언 순서

그룹속성 선언 순서
약식속성
전체속성 선언 순서
margin
margin-top,margin-right,margin-bottom,margin-left
padding
padding-top,padding-right,padding-bottom,padding-left
border
border-top,border-right,border-bottom,border-left,border-width,border-style,border-color,border-image,border-radius,border-collapse,border-spacing
background
background-color, background-image, background-repeat, backgroundposition,background-size, background-attachment, background-origin,background-clip
font
font-style, font-variant, font-weight, font-size, font-family, line-height
animation
animation-name, animation-duration, animation-timing-function, animationdelay,animation-iteration-count, animation-direction
transition
transition-property, transition-duration, transition-timing-function, transitiondelay

속성값 축약

CSS 최적화를 위해 속성값을 축약한다.


/* 축약 전 */
#ffffff
#555555 
#ff4400 

background-position:left center

top:0px 

font-size:0.5em 

padding:20px 20px 20px 20px
margin:0 auto 0 auto
padding:1em 3em 5em 3em;
border-color:#ccc #eee #ccc #eee

/* 축약 후 */
#fff
#555
#f40 /* 동일한 값으로 이루어진 16진수 컬러 코드값은 세자릿수로 축약한다. filter속성에서는 축약하지 않는다. */

background-position:0 50% /* 문자로 표현한 위치값은 숫자로 변경한다 */

top:0 /* 속성값이 0이면 단위를 생략한다. */

font-size:.5em /* 소숫점 앞자리는 생략한다. */

padding:20px /* 동일한 속성값은 축약한다 */
margin:0 auto
padding:1em 3em 5em
border-color:#ccc #eee

/* 참고 */
문자로 표현된 위치값을 숫자로 변환할때 참고한다.
top,left : 0
right,bottom : 100%

border 속성

  1. 초기속성은 약식속성으로 사용한다 ex)border:1px solid #ccc
  2. 이후 부분적인 속성 변경시 관련속성을 선언한다.
  3. border-width,border-style,border-color 순서로 선언한다.

M9에디터에서 border-width는 기본 1px로 고정이며 단일옵션으로 사용한다.
border-color는 공통선택자에 정의되어있으며 class로 따로 정의하지 않는다.

test

/* M9 에디터에서 border-color 선언 */
*, *:before, *:after {
    border-color:#dde6f5;
    border-width:0;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

/* 테두리 색상과 스타일이 각각 다를경우 약식 선언의 잘못된 예 */
.class{border:1px solid #ddd;border-bottom:1px solid #eee;border-left:1px solid #ccc}
.class{border-top:1px solid #ddd;border-right:1px dotted #ddd;border-bottom:1px solid #eee;border-left:1px dotted #eee} 

/* 테두리 색상과 스타일이 각각 다를경우 약식 선언의 올바른 예 */
.class{border:1px solid;border-color:#ddd #ddd #eee #ccc}
.class{border:1px;border-style:solid dotted;border-color:#ddd #ddd #eee #eee}

/* M9에디터 border 속성 */
.border{border-width:1px;}
.border-top{border-top-width:1px;}
.border-left{border-left-width:1px;}
.border-bottom{border-bottom-width:1px;}
.border-right{border-right-width:1px;}

.border-0{border-width:0}
.border-top-0{border-top-width:0}
.border-right-0{border-right-width:0}
.border-bottom-0{border-bottom-width:0}
.border-left-0{border-left-width:0}

.solid{border-style:solid}
.dashed{border-style:dashed}
.dotted{border-style:dotted}

<div class="border solid">보더 선언 예시</div>


백그라운드 속성

속성 값은 background-color, background-image, background-repeat, background-position, background-size, background-attachment, background-orition, background-clip 순서로 선언한다. 배경 스타일 속성을 초기 선언할 때는 반드시 background 단일 속성을 사용하며, 이후 배경의 부분적인 속성이 변경될 경우 background 관련 속성(background-color, background-image, background-repeat, background-position, background-size, background-attachment, background-orition, backgroundclip)을 선언한다.


/* 예시 */
.class{background:#ccc url(bg.gif) no-repeat 0 0}
.class_position_1{background-position:0 -50px}
.class_position_2{background-position:0 -150px}

/* M9에서 사용중인 background 속성. 알파배경(이미지 위 글배경에 쓰임 */
.background-black-1{background:url(http://서버/mong9_1/m9_img/etc/alpha/black_70.png);color:#fff}
.background-black-2{background:url(http://서버/mong9_1/m9_img/etc/alpha/black_30.png);color:#fff}
.background-white-1{background:url(http://서버/mong9_1/m9_img/etc/alpha/white_50.png);color:#000}
.background-white-2{background:url(http://서버/mong9_1/m9_img/etc/alpha/white_30.png);color:#000}

font 속성

font속성에서는 약식선언을 사용하지 않는다.

한글 글꼴을 선언할 때는 반드시 한글과 영문이름을 모두 선언한다.


/* 잘못된 예 */
font-family:'돋움'
font-family:dotum

/* 올바른 예 */
font-family:dotum,'돋움'

/* 예시 */
.font-class {
color:#000;
font-weight:600;
font-size:1rem;
font-family:'Source Sans Pro','Open Sans',dotum,'돋움',sans-serif;
line-height:150%
}

z-index

z-index 속성값의 범위는 최소 -1, 최고 1000이며 10단위로 증감한다. 단,10 단위 사이의 예외 변수가 발생하면 1단위값을 지정할 수 있다

마지막에 선언한다



/* 예시 */
.z-index {z-index:-1}
.z-index {z-index:10}
.z-index {z-index:20}
.z-index {position:absolute;width:100%;height:100%;top:0;left:0;content:'';background:rgba(0,0,0,0.5);z-index:1}

핵(hack)은 가능한 사용하지 않는다.

사용중인 핵을 따로 정리한다.



/* IE 7,8,9 & 10 */
\9

<a href="https://stackoverflow.com/questions/8004765/css-9-in-width-property" target="_blank">CSS \9 속성 참고<a>


\0/IE8+9;

주석

마크업과 개발의 편의를 위해 작성한 주석은 실제 서비스를 적용할 때 반드시 삭제한다.단, 작성자 정보는 삭제하지 않는다.

  1. 주석 기호와 내용 사이에는 반드시 한칸의 공백이 있어야 한다.
  2. 주석 기호와 내용 사이의 줄 바꿈은 허용하지 않는다. 단, 주석 내용간 줄 바꿈은 허용한다.
  3. 종료 주석은 사용하지 않는다.

작성자 정보는 YYMMDD-영문이름 이니셜 형식을 사용하며 유지보수 경우라도 모두 기입한다.



/* 잘못된 예 */
/*  두칸의 공백  */
/* 20180813
   주석기호와 내용 사이의 줄바꿈 */
/* 박스스타일 시작 */
/* 박스스타일 끝 종료주석 사용 */




/* 작성자 정보 표기 */
/* 180813M */
/* 180813S */
/* 180813J */
/* 180813D */




파일 분기

CSS파일은 mong9.css 하나로 쓴다.

모바일과 태블릿 해상도에 대응하는 CSS는 별도로 둔다.-유지보수 및 업데이트에 용이

그리드를 제어하는 CSS는 별도로 둔다.-유지보수 및 업데이트에 용이

@import로 분기되 있는 스타일시트는 link태그로 변환해서 사용한다.


123