Potato

결합자(Combinators)

  • 자손 결합자 (공백)
    • selectorA 하위의 모든 selectorB 요소
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div > span {
          color : red;
        }
    </style>
</head>
<body>
    <div>
        <span>이건 빨강입니다.</span>
        <p>이건 빨강이 아닙니다.</p>
        <p>
          <span>이건 빨강이 아닙니다.</span>
        </p>
    </div>

</body>
</html>

출력 값

  • 자식 결합자 ( > )
    • selectorA 바로 아래의 selectorB 요소
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div > span {
          color : red;
        }
      </style>
</head>
<body>
    <div>
        <span>이건 빨강입니다.</span>
        <p>이건 빨강이 아닙니다.</p>
        <p>
          <span>이건 빨강이 아닙니다.</span>
        </p>
      </div>

</body>
</html>

출력값

  • 일반 형제 결합자 (~)
    • selectorA의 형제 요소 중 뒤에 위치하는 selectorB 요소를 모두 선택
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        p ~ span {
            color : red;
            }
    </style>
</head>
<body>
    <span>p태그의 앞에 있기 때문에 이건 빨강이 아닙니다.</span>
    <p>여기 문단이 있습니다.</p>
    <b>그리고 코드도 있습니다.</b>
    <span>p태그와 형제이기 때문에 이건 빨강입니다!</span>
    <b>더 많은 코드가 있습니다.</b>
    <span>이것도 p태그와 형제이기 때문에 빨강입니다!</span>
</body>
</html>

출력 값

  • 인접 형제 결합자 (+)
    • selectorA의 형제 요소 중 바로 뒤에 위치하는 selectorB 요소를 선택
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        p + span {
            color : red;
            }
    </style>
</head>
<body>
    <span>p태그의 앞에 있기 때문에 이건 빨강이 아닙니다.</span>
    <p>여기 문단이 있습니다.</p>
    <span>p태그와 인접한 형제이기 때문에 이건 빨강입니다!</span>
    <p>더 많은 코드가 있습니다.</p>
    <span>p태그와 인접한 형제가 아니기 때문에 이건 빨강이 아닙니다.</span>
</body>
</html>

출력 값

CSS 원칙

  1. 모든 요소는 네모(박스모델)이고, 위에서부터 아래로, 왼쪽에서 오른쪽으로 쌓인다 (좌측 상단에 배치)
  2. display에 따라 크기와 배치가 달라진다
  3. position으로 위치의 기준을 변경
    • relative : 본인의 원래 위치
    • absolute : 특정 부모의 위치
    • fixed : 화면의 위치
    • sticky : 기본적으로 static이나 스크롤 이동에 따라 fixed로 변경

'WEB > CSS' 카테고리의 다른 글

[CSS] CSS란? CSS기초  (0) 2022.11.12

CSS란..

  • Cascading Style Sheets
  • 스타일을 지정하기 위한 언어

CSS 정의 방법

  1. 인라인 (inline)
    • 인라인을 쓰게 되면 실수가 잦아짐 (중복도 있을 것이고, 찾기가 어려워서)
        <!DOCTYPE html>
        <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta http-equiv="X-UA-Compatible" content="IE=edge">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Document</title>
        </head>
        <body>
          <h1 style="color: blue; font-size : 100px;">Hello</h1>
        </body>
        </html>
  2. 내부 참조 (embedding) - <style>
    • 내부 참조를 쓰게 되면 코드가 너무 길어짐
          <!DOCTYPE html>
          <html lang="en">
          <head>
            <meta charset="UTF-8">
            <meta http-equiv="X-UA-Compatible" content="IE=edge">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <title>Document</title>
            <style>
              h1 {
              color : blue;
              font-size : 100px;
              }
            </style>
          </head>
          <body>
          </body>
          </html>
  3. 외부 참조(link file) - 분리된 CSS 파일
    • 가장 많이 쓰는 방식
    • 외부 CSS 파일을내 를 통해 불러오기

CSS의 선택자(Selector) 유형

  • 선택자 유형
    • 기본 선택자
      • 전세 선택자, 요소 선택자
      • 클래스 선택자, 아이디 선택자, 속성 선택자
    • 결합자(Combinators)
      • 자손 결합자, 자식 결합자
      • 일반 형제 겨랍자, 인접 형제 결합자
    • 의사 클래스/요소(Pseudo Class)
      • 링크, 동적 의사 클래스
      • 구조적 의사 클래스, 기타 의사 클래스, 의사 엘리먼트, 속성 선택자

CSS 선택자 정리

  • 요소 선택자
    • HTML 태그를 직접 선택
  • 클래스(class) 선택자
    • 마침표(.)문자로 시작하며, 해당 클래스가 적용된 항목을 선택
  • 아이디(id) 선택자
    • # 문자로 시작하며, 해당 아이디가 적용된 항목을 선택
    • 일반적으로 하나의 문서에 1번만 사용
    • 여러번 사용해도 동작하지만, 단일 id를 사용하는 것을 권장

CSS 적용 우선순위

  • CSS 우선순위를 아래와 같이 그룹을 지어볼 수 있다.
    • 1.중요도 (Importance) - 사용시 주의
      • !important
    • 2.우선 순위 (Specificity)
      • 인라인 > id > class, 속성, pseudo-class > 요소, pseudo-element
    • 3.CSS 파일 로딩 순서

CSS 기본 스타일

  • 크기 단위
    • px (픽셀)
      • 모니터 해상도의 한 화소인 '픽셀' 기준
      • 픽셀의 크기는 변하지 않기 때문에 고정적인 단위
    • %
      • 백분율 단위
      • 가변적인 레이아웃에서 자주 사용
    • em
      • (바로 위, 부모 요소에 대한) 상속의 영향을 받음
      • 배수 단위, 요소에 지정된 사이즈에 상대적인 사이즈를 가짐
    • rem
      • (바로 위, 부모 요소에 대한) 상속의 영향을 받지 않음
      • 최상위 요소(html)의 사이즈를 기준으로 배수 단위를 가짐
    • 크기 단위 (viewport)
      • 웹 페이지를 방문한 유저에게 바로 보이게 되는 웹 컨텐츠의 영역 (디바이스 화면)
      • 디바이스의 viewport를 기준으로 상대적인 사이즈가 결정됨
      • vm, vh, vmin, vmax
      • px는 브라우저의 크기를 변경해도 그대로
      • vw는 브라우저의 크기에 따라 크기가 변함
    • 색상 단위
      • 색상 키워드(background-color : red;)
        • 대소문자를 구분하지 않음
        • red,blue,black과 같은 특정 색을 직접 글자로 나타냄
      • RGB색상 (background-color : rgb(0, 255, 0);)
        • # + 16진수 표기법 혹은 함수형 표기법을 사용해서 특정 색을 표현하는 방식
      • HSL 색상(background-color : hsl(0, 100%, 50%);)
        • 색상,채도,명도를 통해 특정 색을 표현하는 방식
      • a는 alpha(투명도)

'WEB > CSS' 카테고리의 다른 글

[CSS] CSS 결합자, CSS 원칙  (0) 2022.11.12

+ Recent posts