백엔드 개발자 공부/프론트엔드 기초

[프론트엔드 기초] CSS

gotoguy 2022. 8. 23. 20:31
728x90

CSS(Cascading Style Sheets)

    - HTML로 작성된 웹 애플리케이션의 구조에 디자인을 적용하는데 사용되는 스타일시트 언어

 

인터페이스와 UI/UX

    - 인터페이스 : 컴퓨터와 교류하기 위한 연결고리

    - UI(User Interface, 사용자 인터페이스) : 일반 사용자가 쉽게 컴퓨터에게 의도한 행동을 명령할 수 있게 만든 인터페이스. 아무리 훌륭한 내부 기능을 갖고 있더라도 UI가 없으면 소용이 없다.

    - UX(User Experience, 사용자 경험) : UI를 포함해 사용자가 특정 서비스를 직/간접적으로 경험하면서 느끼는 종합적인 만족도. UX는 직관적이고 쉬운 UI에서 나온다.


CSS의 문법 구성

http://desarrolloweb.dlsi.ua.es/cursos/2011/html5-css3/css-basics

    - 셀렉터(Selector) : 특정 태그(요소)의 이름, id, 또는 class 선택

    - 선언 블록(Declaration block) : 해당 요소에 적용할 내용(속성)을 중괄호{} 안에 작성

    - 선언(Declaration) : 속성명(Property)속성값(Value) 지정. 속성명: 속성값; 의 형태로 작성

 

작성한 CSS 파일을 HTML 파일에 적용하기

    - 외부 스타일 시트 : HTML 파일에서 <link> 태그를 이용해 CSS 파일 연결

<link rel="stylesheet" href="index.css" />

        <link> 태그 - HTML 파일과 다른 파일을 연결

        rel 속성 - 연결하고자 하는 파일의 역할이나 특징

        href 속성 - 연결하고자 하는 파일의 위치. CSS 파일이 HTML 파일과 다른 폴더에 존재하는 경우, 절대 경로 또는 상대 경로를 입력

    - 내부 스타일 시트 : HTML 파일 내 <style> 태그에 작성

    - 인라인 스타일 : HTML 파일 내 요소와 같은 줄에서 스타일 적용 (파일로 구분하지 않아도 될만큼 CSS 코드가 많지 않은 경우)

 

셀렉터를 통해 스타일링 적용하기

    - id : 요소에 id 속성을 넣고, "#속성값"으로 요소를 선택해 스타일링

        하나의 문서에서 한 요소에만 적용 가능 → 특정 요소의 이름을 붙이는 데 사용

    - class : 요소에 class 속성을 넣고, ".속성값"으로 요소를 선택해 스타일링

        동일한 기능을 하는 CSS를 여러 요소에 적용 가능 → 스타일의 분류에 사용

        하나의 class를 여러 요소에 적용하거나, 여러 class를 하나에 요소에 적용하기 모두 가능 → id보다 훨씬 빈번하게 사용됨

    cf. 다양한 셀렉터 요소 선택 방법들, CSS Selector Reference

 

자주 사용하는 CSS 속성

    - color : 글자 색상. HEX(RGB를 16진수로 표현한 값) 또는 주요 색상 이름 입력

        background-color(배경 색상), border-color(테두리 색상)

    - font-family : 글꼴. 속성값에 "큰따옴표"를 붙여 적용

        fallback - 사용하려는 글꼴이 없거나 사용할 수 없는 경우를 위해 여러 글꼴 사용. 쉼표로 구분하여 입력해 순서대로 적용

        구글 폰트 : 다양한 웹 폰트를 사용하고, 임베드를 위한 <link> 태그 코드 제공

    - font-size : 글자 크기. 절대 단위(px, pt 등)와 상대 단위(%, em, rem, ch, vs, vh 등) 사용

    - font-weight : 굵기

    - text-decoration : 밑줄, 가로줄

    - letter-spacing / line-height : 자간, 행간

    - text-align : 텍스트 가로 정렬. left, right, center, justify(양쪽 정렬)

    - vertical-align : 텍스트 세로 정렬(부모 요소의 display 속성이 반드시 table-cell이어야 하며, 글자를 둘러싸는 박스의 높이가 글자 높이보다 클 때 적용 가능)


박스 모델

    - 웹 페이지 내의 모든 콘텐츠는 고유의 영역(박스)을 가지고 있음

    - 박스는 항상 직사각형이고, 너비(width)높이(height)를 가짐

https://www.ecurtisdesigns.com/web-layout-design/

 

박스의 종류

    - block 박스 : 줄바꿈이 되는 박스. 기본적으로 100%의 width값을 갖고 있으며, width/height값 변경 가능

        e.g. <div> 태그, <p> 태그

    - inline 박스 : 줄바꿈이 일어나지 않고, 크기 지정을 할 수 없는 박스. 글자 길이 만큼의 width값을 갖고 있으며, width/height값 변경 불가능

        e.g. <span> 태그

    - inline-block 박스 : 기본적으로는 줄바꿈이 일어나지 않으면서, width/height값 변경이 가능한 박스

 

박스의 구성 요소

https://opentutorials.org/module/4064/24713

    - Margin : 바깥 여백. 박스 외부 상하좌우에 여백 추가. 시계 방향(top, right, bottom, left) 순서로 여백 지정. 음수값 지정 가능

    - Border : 테두리. 심미적인 용도 외에도, 영역이 차지하는 크기를 시각적으로 확인할 수 있음

    - Padding : 안쪽 여백. Margin과 동일하게 시계 방향 순서로 여백 지정

    - Content : 내용. 박스보다 크기가 클 경우, 박스 바깥으로 빠져나올 수 있음

        overflow: auto; - 콘텐츠가 넘치는 경우 스크롤 생성

        overflow: hidden; - 콘텐츠가 넘칠 경우 내용 숨김

 

박스 크기 측정 기준

    - content-box : 박스의 크기를 측정하는 기본값으로, content의 크기를 기준으로 하여 여백과 테두리를 포함하지 않아 레이아웃 디자인에 혼동이 생길 수 있음

    - border-box : 박스의 여백과 테두리를 포함한 크기를 기준으로 하며, 모든 요소에 적용하여 디자인하는 것을 권장

* {
  box-sizing: border-box;
}

 

References

    - W3Schools : 프론트엔드(HTML, CSS, JavaScript) 레퍼런스, 예제

 

728x90