HTML / CSS 기초

HTML?

  • HyperText Markup Language
  • 웹 페이지의 틀을 만드는 마크업 언어

사용법

  • Html은 tag들의 집합
  • Tag : 부등호(<>)로 묶인 기본 구성 요소
  • html 확장자 사용

TREE STURCTURE

  • HTML 문서 시작 →
    • html → 시작 태그, 문서 전체의 틀 구성
      • head → 문서의 메타데이터 선언
        • title : Page title, 문서의 제목 → 브라우저 탭에 노출
      • body → 문서의 내용
        • h1 → heading을 의미, 크기에 따라 h1~h6
        • div : Content division → 줄바꿈 됨
          • span : Content Container → 줄바꿈 없음

Most Used TAGS in HTML

태그 설명
div Division
span Span
img Image
a Link
ul & li Unorderd List & List Item
input Input (Text, Radio, Checkbox)
textarea Multi-line Text Input
button Button


CSS?

HTML, CSS, 그리고 JS는 웹 어플리케이션을 만드는 세가지의 주축이다. CSS는 스타일링을 담당한다.

  • 콘텐츠의 배치와 위치 (레이아웃 디자인)
  • 텍스트를 강조하거나 밑줄을 치는 등, 최소한의 타이포그래피 (Typography)

위의 요소를 갖춘다면 더 나은 사용자 경험(UX, User Experience)을 제공할 수 있다.
CSS를 작성해서 간단한 UI를 만드는 것은 개발자의 기본적 소양이다. 콘텐츠를 적당한 위치에 배치하는 레이아웃 디자인은 디자이너가 아니라도 할 수 있어야 한다.


일반 사용자를 대상으로 하는 어플리케이션은, UI(User Interface)가 없으면 소용이 없다.

사용자 인터페이스(UI)는 사람과 컴퓨터 프로그램이 소통할 수 있도록 만들어진 요소.
훌륭한 내부 기능도 UI가 없으면 소용이 없다.


프론트엔드 개발자에게 요구되는 능력

  • 화면의 구성이나 배치 (레이아웃 디자인)
  • 굵은 글씨와 같은 타이포그래피와 색상을 적용하는 일
  • 정렬이나 배색에 대한 감각
  • UX에 대해 고민하고, 잘 적용된 웹이나 앱 예제를 분석해본 경험

*Reference : Jang, p. → CSS 모범 사례


#시멘틱 태그

: 요소 참고 링크


CSS 문법 구성

셀렉터는 태그의 이름이나 id, class를 선택한다. 셀렉터로 특정 요소를 선택하고, 중괄호 안에 요소에 적용할 내용을 작성한다. 요소에 적용할 수 있는 내용을 속성이라고 한다. 색상이나 글자 크기등의 속성이 있다. 속성에 적용할 값을 입력하여 스타일을 표현한다. 속성과 값의 끝에는 세미콜론( ; )을 붙여 속성끼리 구분한다.


CSS 파일 추가하기

css 파일을 html 파일에 연결할 때는, link 태그 안에서 href 속성을 통해 파일을 연결한다.

1
<link rel=”stylesheet” href=”index.css” />

link 태그는 HTML 파일과 다른 파일을 연결하는 목적으로 사용한다.

rel은 연결하려는 파일의 역할이나 특징을 나타낸다. CSS는 Style sheet.
href 속성에는 파일의 위치를 추가해야 한다. 절대결로 혹은 상대경로를 입력.


CSS 스타일 적용법 (3가지)

  • 인라인 스타일 : 같은 줄에서 스타일 적용
  • 내부 스타일 시트 : 별도의 파일로 구분하지 않고 style 태그 내에 작성
  • 외부 스타일 시트 : CSS 파일 내에 작성하는 내용

기본적인 셀렉터 (selector)

id class
# .
한 문서에 단 하나의 요소에만 적용 동일한 값을 갖는 요소가 많음
특정 요소에 이름을 붙이는 데 사용 스타일의 분류(classification)에 사용


Font[글꼴]

웹 폰트 기술과 최신 동향

NAVER D2


구글 폰트(Google Fonts)

Google Fonts

⇒ HTML link 태그를 사용하여 간단하게 embed 가능


글자 크기

  • 속성 → font-size: ;
    • 절대 단위 : px, pt
    • 상대 단위 : %, em, rem, ch, vw, ch

*참고 링크 : MDN, w3schools

  1. 기기나 브라우저 사이즈 등의 환경에 영향을 받지 않는 절대적인 크기

    • px(픽셀) : px는 글꼴의 크기를 고정하는 단위. 사용자 접근성이 불리함.

      ⇒ 크기가 고정되어 인쇄와 같이 화면의 사이즈가 정해진 경우

  2. 일반적인 경우

    • rem : 상대 단위, root의 글자 크기(=브라우저의 기본 글자 크기)는 1rem / 두배로 크게 적용시 2rem / 작게 적용 0.8rem 등 조절해서 사용

      ⇒ 사용자 설정 기본 글꼴 크기를 따라 접근성에 유리

      ⇒ em은 부모 엘리먼트에 따라 상대적으로 크기가 변경되어 계산이 어려움

  3. 반응형 웹(responsive web)에서 기준점을 만들 때

    • 반응형 웹은 디바이스 너비(width)에 따라 유동적인 레이아웃이 적용되는 엡사이트. 데스크탑, 스마트폰의 가로 모드-세로모드, 태블릿 등. 디바이스 크기 별로 CSS를 달리 적용해야 한다면 디바이스 크기를 나누는 기준은 보통 px로 정한다.

글자 스타일링

  • 굵기 : font-weight
  • 밑줄, 가로줄 : text-decoration
  • 자간 : letter-spacing
  • 행간 : line-height

정렬

  • 가로 정렬 : text-align
    • 유효값 : left, right, center, justify(양쪽 정렬)
  • 세로 정렬

HTML 문서 레이아웃

줄바꿈이 되는 박스(block) / 옆으로 붙는 박스(inline, inline-block)

  • block 박스 : 줄바꿈이 됨 ⇒

  • inline 박스 : 줄바꿈 x, 크기지정이 불가능 ⇒
  • inline-block 박스 : 줄바꿈이 일어나지 않는 동시에 block 박스의 특징을 가짐

줄바꿈이 되는 태그 / 되지 않는 태그

  • 줄바꿈이 되는 태그 :

  • 줄바꿈이 되지 않는 태그 :

개발자 도구 elements tab : cmd + opt + i 단축키

→ MDN block 엘리먼트 목록 / inline 엘리먼트 요소

block inline-block inline
줄바꿈 O X X
기본 너비 (width) 100% 글자가 차지하는 만큼 글자가 차지하는 만큼
width, height 사용 가능 가능 불가능

박스 구성 요소

border (테두리)

  • border-width : 테두리 두께
  • border-style : 테두리 스타일
  • border-color : 테두리 색상
  • border-style mdn → 세부 속성 검색

margin (바깥 여백)

margint : top right bottom left ; ⇒ 값 하나만 적용시 모든 방향의 바깥 여백 적용


padding (안쪽 여백)

padding : top right bottom left ; ⇒ 값 하나만 적용시 모든 방향의 안쪽 여백 적용


박스를 벗어나는 컨텐츠 처리 ⇒ overflow

박스 크기에 맞게 컨텐츠를 표시하지 않거나, 스크롤을 추가하여 확인하는 방법

  • overflow : (overflow-x / overflow-y);
    • auto : 컨텐츠가 넘칠 때 스크롤 생성
    • hidden : 컨텐츠가 넘칠 때 보이지 않기

셀렉터 *

모든 요소를 선택하는 셀렉터 * 에 속성 추가

box-sizing : border-box;

모든 박스에서 여백과 테두리를 포함한 크기로 계산

  • content-box : 박스 크기를 측정하는 기본값
  • border-box : 여백과 테두리를 포함하는 박스 크기 계산법