티스토리 뷰
728x90
반응형
1. CSS
note: CSS 코드의 작성 및 규칙사항
- CSS 파일을 압축하고, 최종 파일에서 주석, 공백, 줄바꿈을 제거한다. ( 유지 보수 및 수정 사항 전달 등에 있어서 주석 처리 예외 )
- CSS 파일을 압축하면 클라이언트에게 더 적은 데이터를 전송하게 되며, 콘텐츠가 더 빨리 로드.
- CSS 파일을 압축하는 것은 중요한 이유는 대역폭과 리소스 사용을 줄이고자 하는 모든 부분에 있어서 도움이 된다.
preload
- preload 를 통해 브라우저가 페이지의 콘텐츠를 보여지기 전에 CSS 파일을 로드할 수 있다.
- rel 속성의 값을 preload 로 주고, as="style" 를
<link>
태그에 넣는다. - 참고 URL : 리소스 우선순위 지정
<link rel="preload" href="style.min.css" as="style" onload="this.rel='stylesheet'">
1-1. Syntax
- Lint 의 사용을 권장!
- css class 이름은 케밥 표기법 ( kebab-case )으로 작성. 알파벳(대소문자)로 시작하되 숫자/특수문자로 시작하여선 안된다.
- css id 는 캐멀 케이스 ( Camel case )방식으로 이름을 명기한다.
- 들여쓰기는 2개의 공백 문자(소프트탭)을 사용. 다른 규칙으로 통일하여 작성해도 된다.
- 프로퍼티는 되도록 한 줄에 하나씩 작성. ( css를 minify 한다는 전제하에 )
- 프로퍼티는 영문 소문자로 작성.
- 일반적으로 작은 따옴표(')를 사용하지만 @charset 선언과 타입 선택자는 큰 따옴표(")를 사용. 가능하다면 생략하는 것이 가장 좋다.
- 사용되지 않는 CSS 선택자는 제거( 제발 쫌 지키자 )
1-2. Charset
- 문서의 언어셋은 UTF-8으로 최상위에 선언.
- 언어셋이 정해진 번들링 파일이라면 선언하지 않는다.
@charset "UTF-8";
1-3. Selectors
- 태그이름과 선택자는 가급적 중첩하지 않는다.
- Indentation Depth 는 4 Depth 까지, 가급적 1 Depth 만을 사용하는 것을 권장한다.
1-4. z-index
- z-index 스택을 0부터 규칙 없이 쌓는다면 순서가 꼬인다. 엘리먼트의 특성에 맞게 계층을 분리하여 체계적으로 관리하는 것이 좋은 방법.
- CSS 전처리기의 믹스인을 활용한다던지 상단에 변수로 한군데 모아두는 것이 좋다.
/* scss */
.foo {
position: absolute;
@include z-idx('floating', 3000);
}
/* css */
.foo {
z-index: 16203000
}
1-5. Import
CSS 의 기본 문법인 @import 는 성능 문제를 가지고 있다?고 한다. 되도록 사용하지 말자.
- 여러개의
<link>
엘리먼트로 작성하기 - 하나의 CSS 파일로 작성하기
- CSS 전처리기의 @import 문법을 사용하기
- 번들러 등의 도구를 이용하여 하나의 CSS 파일로 병합하기
<!-- Too Bad -->
<style>
@import url("one.css");
@import url("two.css");
@import url("three.css");
</style>
<!-- Good -->
<link rel="stylesheet" href="one.css">
<link rel="stylesheet" href="two.css">
<link rel="stylesheet" href="three.css">
<!-- Very Nice -->
<link rel="stylesheet" href="bundle.css"> <!-- one.css, .. in bundle.css -->
1-6. Media Query
- 미디어 쿼리는 컴포넌트 단위로 분류하여 관련 규칙 바로 뒤에 작성.
혹은 문서의 마지막에 모아서 작성.
.foo-a {}
.foo-b {}
@media (min-width: 768px) {
.foo-a {}
.foo-b {}
}
.bar {}
.foo-a {}
.foo-b {}
@media (min-width: 768px) {
.foo-a {}
.foo-b {}
.bar {}
}
1-7. Nesting(중첩)
- 너무 많은 선택자의 중첩은 피해야 하므로, CSS 전처리기가 지원하는 Nesting 문법은 주의해서 사용해야 한다!
- 웬만해서 4depth 를 넘어가지 않게 하는 게 명시적으로 좋다.
/* Bad */
.foo {
.bar {
color: #abc;
}
}
/* Good */
.foo__bar {
color: #abc;
}
1-8. Extend ( scss )
- CSS 전처리기 ( scss )가 지원하는 Extend 문법은 사용하지 X. Mixin 으로 대체!
1-9. Reset
- 초기화 스타일은 서비스에 맞게 정의. 만약 normalize.css 또는 Bootstrap 등의 프레임워크를 사용한다면 초기화를 생략.
1-10. Vendor Prefix
- 벤더 프리픽스 프로퍼티는 일반 프로퍼티보다 먼저 선언.
/* Bad */
.foo {
box-sizing: border-box;
-webkit-box-sizing: border-box;
}
/* Good */
.foo {
-webkit-box-sizing: border-box;
box-box-sizing: border-box;
}
1-11. Naming
- 단독사용 클래스는 지양하며 접두사를 조합한 형태로 작성한다.
- active 클래스인 경우, 단일 특정요소에 상태변화 클래스를 적용한다면 접미사로서 적용한다.
ClassName | Description |
---|---|
wrap / cnt | 일반 영역의 묶음 - ex) btn-cnt / btn-wrap / btn-container |
group | 같은 엘리먼트 묶음 - ex) btn 3개를 묶는 경우 <div class="btn-group"><button class="btn">버튼</button><button class="btn">버튼</button><button class="btn">버튼</button></div> |
inner | 부모 wrapper 가 존재하며 자식 묶음이 단독으로 사이즈가 필요한 경우 |
img-cnt | 이미지를 감싸는 경우 |
txt-cnt | 텍스트를 감싸는 경우 |
m-tit | 메인페이지 타이틀(중) 텍스트 |
s-tit | 메인페이지 타이틀(소) 텍스트 |
tit-sub | 서브페이지 타이틀(대) 텍스트 |
m-tit-sub | 서브페이지 타이틀(중) 텍스트 |
s-tit-sub | 서브페이지 타이틀(소) 텍스트 |
tit | 타이틀 텍스트 |
desc | 상세 내용 |
txt-date | 날짜 |
btn-container / btn-cnt | 버튼을 감싸는 경우 |
list-cnt / list-container | 리스트를 감싸는 경우(ul) |
tab | 탭 메뉴 |
728x90
반응형
'Programming language > HTML & CSS' 카테고리의 다른 글
HTML 코딩 컨벤션 ( 이런 저런 규약 참조 ) (0) | 2021.01.08 |
---|---|
nth-child 잘쓰기 (0) | 2019.11.13 |
반응형 표준 화면 해상도 (1) | 2019.03.12 |
note 8 viewport (0) | 2018.12.13 |
뷰포트 정리 (0) | 2018.12.13 |
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 반복문
- icon font
- svg모션
- IntrinsicElements
- react
- CSS
- Vue3
- JsDoc
- RefreshToken
- 아이콘 폰트 만들기
- 코도바
- Angular
- 자바스크립트
- Intrinsic
- vue-router
- for of 구문
- anime.js
- git checkout -b
- 앵귤러
- 리프래시토큰
- React.StrictMode
- cordova
- git
- svg icon font
- svg 폰트
- interceptors
- 내장요소
- Aptana
- 태그
- react-router-dom
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함