1. 웹 프로그래밍 기초 - 3. CSS - FE

2021. 3. 14. 03:46· 스터디📖/웹 개발 기초

1. 웹 프로그래밍 기초

3. CSS - FE

1) CSS 선언방법

  • CSS 구성: selector { property: value; }
  • 적용 방법
    • inline: HTML 태그 안에 적용. 다른 CSS 파일에 적용한 것보다 가장 먼저 적용
    • internal: head안에 style 태그로 지정. 유지보수 어렵. 별도의 CSS 파일 관리하지 않아도 되며 서버에 CSS 파일을 부르기 위해 별도의 브라우저가 요청을 보낼 필요가 없음.
    • external: 외부파일로 지정. 가급적 이 방법으로 구현하는 것이 가장 좋음.
    <link rel="stylesheet" href="style.css">

internal과 external은 우선순위 동일 -> 나중에 선언된 속성 반영

2) 상속과 우선순위 결정

  • 상위에서 적용한 스타일이 하위에도 반영된다. (색상, 글자 크기 등)
  • box-model이라고 불리는 속성들(width, height, margin, padding, border)처럼 크기, 배치와 관련된 속성들은 상속이 되지 않는다.
  • 선택자 우선순위 - cascading 경쟁
    • 구체적인 것이 있다면 그것이 먼저 적용된다.
    • 같은 선택자라면 나중에 선언한 것이 반영된다.
    • id(100점) > class(10점) > element(1점)

3) CSS Selector

<span id="spantag" class="spanClass">text</span>
  • tag로 지정하기
span { color: red; }
  • id로 지정하기
#spantag { color: red; }
  • class로 지정하기
.spanClass { color: red; }
  • id, class 요소 선택자와 함께 활용
#myid { color : red }
div.myclassname { color : red }
  • 그룹 선택 (여러 개 셀렉터에 같은 style을 적용해야 한다면)
h1, span, div { color : red }
h1, span, div#id { color : red }
h1.span, div.classname { color : red }
  • 요소 선택 (공백) : 자손요소
  • 아래 모든 span태그에 red색상이 적용됨
<div id="jisu">
  <div>
    <span> span tag </span>
  </div>
  <span> span tag 2 </span>
</div>

#jisu span { color : red }
  • 자식 선택 (>) : 자식은 바로 하위엘리먼트를 가리킵니다.
  • 아래는 span tag 2만 red 색상이 적용됩니다.
<div id="jisu">
  <div>
    <span> span tag </span>
  </div>
  <span> span tag 2 </span>
</div>

#jisu > span { color : red }
  • n번째 자식요소를 선택합니다. (nth-child)
  • 첫번째 단락에 red 색상이 적용됩니다.
<div id="jisu">
  <h2>단락 선택</h2>
  <p>첫번째 단락입니다</p>
  <p>두번째 단락입니다</p>
  <p>세번째 단락입니다</p>
  <p>네번째 단락입니다</p>
</div>

#jisu > p:nth-child(2) { color : red }
  • 부모요소 > nth-child(n) : 부모 태그 안의 모든 요소 중 n번째 요소 선택
    부모요소 > nth-of-type(n) : 부모 태그 안의 A라는 요소 중 n번째 요소 선택

4) CSS 기본 Style 변경하기

  • font 색상 변경
    • color : red;
    • color : rgba(255, 0, 0, 0.5);
    • color : #ff0000; //16진수 표기법, 가장 많이 사용되는 방법
  • font 사이즈 변경
    • font-size : 16px;
    • font-size : 1em; //기본 픽셀을 기준으로 1배, 기본 픽셀은 상속받는 것에 따라 달라질 수 있음.
  • 배경색
    • background-color : #ff0;
    • background-image, position, repeat 등의 속성이 있음.
    • background : #0000ff url(“.../gif”) no-repeat center top; //한 줄로 정의도 가능
  • 글씨체, 글꼴
    • font-family:"Gulim";
    • font-family : monospace, sans-serif; //브라우저에서 앞의 폰트가 지원되지 않을 경우 다음 폰트 사용.. 이렇게 나열 가능

5) Element가 배치되는 방법 (CSS Layout)

  • display: block, inline, inline-block
    • block: 대부분의 엘리먼트, 위에서 아래로 쌓임
    • inline: 좌에서 우로, 가득차면 아래쪽으로 쌓임. 높이와 넓이를 지정해도 반영되지 않음.
  • position: static, absolute, relative, fixed
    • static: position 속성의 기본. 순서대로 배치
    • absolute: 기준점에 따라서 top/left/right/bottom으로 설정하여 배치, 기준점은 상위 엘리먼트 중 static이 아닌 position
    • relative: 원래 자신이 위채해야 할 곳을 기준으로 top/left/right/bottom으로 설정하여 배치
    • fixed: 전체화면 좌측, 맨 위를 기준으로 동작. 스크롤을 해도 위치 변하지 않음.
  • float: left, right
    • 원래 flow에서 벗어남. 뒤의 block 엘리먼트가 float 엘리먼트를 의식하지 못하고 중첩돼서 배치됨.
  • margin과 padding 속성 이용하여 배치할 수도 있음 - box-model
  • box-sizing: border-box; //padding을 줘도 엘리먼트의 크기가 변하지 않음.
  • 전체 레이아웃은 float를 잘 사용해서 2단, 3단 컬럼 배치를 구현합니다.
    최근에는 css-grid나 flex 속성 등 layout을 위한 속성을 사용하기 시작했으며 브라우저 지원범위를 확인해서 사용하도록 합니다.
    특별한 위치에 배치하기 위해서는 position absolute를 사용하고, 기준점을 relative로 설정합니다.
    네비게이션과 같은 엘리먼트는 block 엘리먼트를 inline-block으로 변경해서 가로로 배치하기도 합니다.
    엘리먼트안의 텍스트의 간격과 다른 엘리먼트간의 간격은 padding과 margin 속성을 잘 활용해서 위치시킵니다.

6) float 기반 샘플 화면 레이아웃 구성

  • float를 부모에게 자식으로 인식시키기 -> overflow: auto;
  • float 다른 엘리먼트에 인식시키기 -> clear: both; (left, right)

7) 디버깅 - HTML - CSS

  • 개발자 도구의 element 패널 이용 -> Style 탭과 Computed탭 용이
저작자표시 (새창열림)

'스터디📖 > 웹 개발 기초' 카테고리의 다른 글

Project A - HOMEPAGE 만들기  (0) 2021.03.14
1. 웹 프로그래밍 기초 - 5. Servlet - BE  (0) 2021.03.14
1. 웹 프로그래밍 기초 - 4. 개발환경 설정 - BE  (0) 2021.03.14
1. 웹 프로그래밍 기초 - 2. HTML - FE  (0) 2021.03.09
1. 웹 프로그래밍 기초 - 1. Web 개발의 이해 - FE/BE  (0) 2021.03.09
'스터디📖/웹 개발 기초' 카테고리의 다른 글
  • 1. 웹 프로그래밍 기초 - 5. Servlet - BE
  • 1. 웹 프로그래밍 기초 - 4. 개발환경 설정 - BE
  • 1. 웹 프로그래밍 기초 - 2. HTML - FE
  • 1. 웹 프로그래밍 기초 - 1. Web 개발의 이해 - FE/BE
호프
호프
호프
Untitled
호프
전체
오늘
어제
  • 분류 전체보기 (341)
    • 오류😬 (4)
    • 스터디📖 (96)
      • 웹 개발 기초 (8)
      • Spring (20)
      • ML, DL (30)
      • Node.js (22)
      • React (0)
      • 블록체인 (12)
      • Go (3)
      • Javascript (1)
    • 알고리즘💻 (153)
      • 그리디 (23)
      • Bruteforce&Backtracking (16)
      • DP (17)
      • 이분탐색&정렬&분할정복 (17)
      • 누적합&투포인터 (6)
      • 스택&큐&덱 (19)
      • 그래프(DFS&BFS) (19)
      • 트리 (7)
      • 우선순위큐&다익스트라 (11)
      • 벨만포드&플로이드와샬 (8)
      • map&set&number theory (5)
      • 기타 (5)
    • 프로젝트 (3)
      • 캡스톤 디자인 프로젝트 (3)
    • 블록체인🔗 (3)
      • Solana (2)
      • 개발 (0)
      • Harmony (1)
    • ASC (6)
    • CS (73)
      • 데이터베이스 (12)
      • 클라우드컴퓨팅 (21)
      • 운영체제 (11)
      • 컴퓨터네트워크 (14)
      • 블록체인응용 (15)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 복습

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
호프
1. 웹 프로그래밍 기초 - 3. CSS - FE
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.