Dev/CSS

CSS 정리

takeU 2021. 7. 5. 17:23
반응형

CSS 정리

CSS란?

Cascading Style Sheets
HTML 문서를 꾸밀때 사용하는 스타일 시트 언어

 

CSS 적용방법

  1. Linking Style Sheet ( 외부 스타일 시트 )
    • 별도의 CSS 파일을 만들고 HTML 문서와 연결하는 방법
  2. Internal Style Sheet ( 내부 스타일 시트 )
    • HTML 문서 안의 style 태그 안에 CSS 코드를 넣는 방법
  3. Inline Style Sheet ( 인라인 스타일 시트 )
    • HTML 태그의 style 속성에 CSS 코드를 넣는 방법
  <!-- 1번 -->
  <link rel="stylesheet" href="style.css">
  <!-- 2번 -->
  <style>
    p { color: red }
  </style>
  <!-- 3번 -->
  <p style="color: red">안녕하세요</p>

일반적으로 1번 이외의 방법은 HTML문서 안에 스타일이 들어가 있는 형태인데,
이는 HTML과 CSS 파일의 분리가 되어있지 않으므로 권장하는 방법이 아님.

만약 1, 2, 3번을 동시에 사용 했다면 적용 우선순위가 높은 순서는 3번이 가장 우선이되고
1, 2번 중에서는 아래쪽에 작성된 것이 우선이 됨.

 

CSS 구문

  h1 {
    color: blue;
    font-size: 10px;
  }

Selector/Property+Value=Declaration

 

CSS Selector

HTML Element의 name, id, class, attribute 등으로 찾을 수 있다.

  1. element
    • element 이름 그대로 작성
    • <p> => p { }
  2. id
    • #idName 으로 작성
    • <p id="hi"> => #hi { }
    • 이때 id값은 고유한 값을 가지며 #다음에 숫자는 작성불가
  3. class
    • .className 으로 작성
    • <p class="hi"> => .hi { }
  4. attribute
    • 대괄호를 통해 attribute를 찾음
    • input[type="text"] { background-color: red }

특징

  1. grouping이 가능
    • 여러개의 태그나, 클래스 등에 같은 속성을 줄때 콤마를 사용
    • h1, h2, p { }
  2. CSS 내에서 주석 작성은 /* 주석 */
  3. 속성값과 단위사이에 공백은 없어야 함
    • 20px => O / 20 px => X

 

CSS Property

Property 작성 순서는 퍼포먼스에 영향을 미치지 않지만, 규칙이 있어야 보기도 좋음.
CSS3 이전의 Property 작성 권장 순서는 다음과 같다.
가장 바깥쪽부터 안쪽으로 들어간다고 이해하면 자연스러움.

  1. display
  2. list-style
  3. position
  4. float
  5. clear
  6. width / height
  7. padding / margin
  8. border / background
  9. color / font
  10. text-decoration
  11. text-align / vertical-align
  12. white-space
  13. other text
  14. content

추가적으로 CSS3에서 overflow, z-index, line-height도 있는데
개인적인 습관은 1번 밑에 overflow, 5번 밑에 z-index, 6번 밑에 line-height를 씀.

사실 작성 순서는 혼자 작업할 땐 중요하지 않지만, 협업을 할 때 순서를 정해 놓아야 헷갈릴 일이 없음.

 

CSS의 배경(background)

배경색 - background-color:~

배경이미지 - background-image: url("~");

배경반복 - background-repeat: ~

​ repeat-x 가로반복

​ repeat-y 세로반복

​ no-repeat 반복x

배경배치 - background-position: right top 오른쪽위에 배치

고정 - background-attachment: fixed

약식 속성 background: 속성값/ 순서(color, image, repeat, attachment, position)

 

CSS 테두리(border)

테두리 스타일 - border-style:속성;

​ dotted,dashed 점선 테두리

​ solid 실선 테두리

​ double 이중 테두리

​ none 테두리 없음

​ hidden 숨겨진 테두리 정의

테두리 폭 - border-width:속성;

​ 10px/medium/10px 10px 10px 10px(위 오른쪽 아래 왼쪽)

테두리 색상 - border-color:속성;

​ 테두리 다르게 지정

border-style: 속성1 속성2 속성3 속성4

위1 오른쪽2 아래3 왼쪽4

border-style: 속성1 2 3

위3 좌우1 아래2

border-style: 속성1 2

위아래2 좌우1

약식 속성

border: width style(필수) color;

둥근 테두리 border-radius:10px;

 

CSS Outline

outline-stsyle:속성값 border와 동일

border와 outline의 차이

border는 옵션만큼 크기증가, outline은 테두리만 생기는 것 outline은 레이아웃에 영향x

 

CSS 여백(margin)

margin-top(bottom right lefrt): 속성(자동, 길이, %, 상속) 음수 사용 가능

약식 속성

margin:top속성 right속성 bottom속성 left속성

자동값 margin: auto; 중앙에배치됨

상속값 margin: inherit; 부모요소에서 상속

 

CSS 패딩(padding)

padding: 값

컨텐츠에 공간 생성

 

CSS 너비, 높이

width, height

최대너비 - max-width

최소너비 - min-width

 

CSS 박스모델

margin>border>padding>content

 

CSS 텍스트(text)

text-align 수평정렬 속성(center, left, right)

justify 속성 - 각 라인이 동일한 폭을 가짐

text-decoration:none 텍스트의 장식 제거 주로 하이퍼링크 밑줄제거로 사용

text-transform 대문자,소문자 지정 uppercase, lowercase, capitalize

text-indent: 10px 들여쓰기

letter-spacing:3px; 문자 사이의 간격 음수가능

word-spacing: 단어 사이의 간격

line-height: 줄 사이의 공간

direction: rtl; 텍스트 방향 변경

 

CSS 글꼴(font)

font-family: 글꼴 조합

font-style: normal일반, italic이탤릭체, oblique기울임

font-size 절대크기10px, 상대크기100% 1em=16px

font-weight: normal, lighter, bold, 900등으로 설정

font-variant: normal, small-caps(작은 대문자)

약식: font: style variant weight size/height family

 

CSS 링크(link)

색상 설정

a:link 방문하지않은 링크

a:visited 방문한 링크

a:hover 마우스오버

a:active 클릭

 

CSS 목록(list)

list-style-type: circle, square, upper-roman, lower-alpha

list-style-position: inside, outside 마커가 내부,외부에 표시

list-style-image: url('~~') 목록 마커 이미지

약식 list-style: type position image

 

CSS 테이블(table)

table을 border-collapse:collapse을 사용해 테두리를 한줄로 축소, seperate 분리

width height 특성으로 너비,높이 설정

text-align:left 수평정렬

vertical-align:bottom 수직정렬

caption-side:bottom 캡션을 테이블에 추가

empty-cells: hide 빈 캡션 숨기기

-webkit-filter: ~,filter: ~ 화상 조절

 

마무리

개인적으로 공부한 내용을 정리한 것이기 때문에 반말을 사용한 점 양해 부탁드립니다.
잘못된 부분이나 피드백이 있으시다면, 댓글에 남겨주시면 감사하겠습니다!