ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • HTML/CSS/JS 기초 잡기 03 CSS
    HTML-CSS-JS 2021. 8. 4. 21:52

    유투버  유노코딩님 강의 참조!

     

    - CSS 기본 문법 및 태그 설명

    • Cascading Style Sheets 의 줄임말로 계단식으로 스타일을 동적으로 정의하는 것
    • 선택자 { 속성명 : 속성값; } 으로 선언

    • CSS를 적용하는 방법은 3가지
      인라인 - 태그에 직접 기술
      스타일 - 스타일 태그를 추가하여 기술
      문서간 - CSS 파일을 따로 작성하여 연결
      <head>
        <style>
          h1 {
            color: orchid;
          }
        </style>
        <link href="/a.css" rel="stylesheet" />
      </head>
      <body>
        <h1>스타일 태그!</h1>
        <p style="color: orange">인라인 적용!</p>
        <h2>문서간 연결!</h2>
      </body>

     

     

    - CSS 선택자

    • 6가지의 선택자가 있지만 주로 기본/그룹 선택자를 많이 쓴다
    • 선택자가 겹치면 아이디 > 클래스 > 태그 선택자 우선순위로 선택 된다
    1. 기본선택자
      1-1 전체 선택자 - *(애스터리크)를 써서 선택, 문서내의 모든 요소를 의미
      1-2 태그 선택자 - 주어진 이름을 가진 요소를 선택, '유형선택자' 라고도 불림
      1-3 클래스 선택자 - 특정 클래스를 선택 
      1-4 아이디 선택자 - 주어진 id값을 가진 요소를 선택
    2. 그룹 선택자 - 다양한 유형의 요소를 한꺼번에 선택하고자할때 사용
        <style>
          * {
            color: palegreen;
          }
          h1 {
            color: red;
          }
          .p1 {
            color: royalblue;
          }
          #p2 {
            color: salmon;
          }
        </style>
      </head>
      <body>
        <h1>Title</h1>
        <p class="p1">Paragraph1</p>
        <p id="p2">Paragraph2</p>
        <p>Paragraph3</p>
        <p>Paragraph4</p>
        <p>Paragraph5</p>
        <p>Paragraph6</p>
      </body>

     

     

     

    - CSS 텍스트 꾸미기 속성

    • 폰트사이즈 또는 모든 사이즈를 사용할때 단위선정이 중요하다

    • 텍스트 정렬 또는 모든 정렬시에 왼/중/오가 있고 justify를 통해 양끝정렬 가능
        <style>
          h1 {
            font-family: 'Times New Roman', Times, serif;
          }
          p {
            font-size: 26px;
          }
          h2 {
            text-align: center;
          }
        </style>

     

     

    - Display / Border 속성

    • display 속성을 통해 태그를 블록 또는 인라인 요소로 바꿀 수 있다. 

    주로 많이 쓰는 display 속성

    • border 속성을 통해 border가 들어간 영역에 테두리를 그을수 있고 테두리 두께,모양,크기등을 설정 가능('단축속성' 이라고 부름)

    주로 많이 쓰는 border 속성

    <style>
          div {
            border: 3px solid red;
          }
          span {
            border-width: 5px;
            border-style: dashed;
            border-color: greenyellow;
          }
        </style>
          <body>
        <div>나는 블록</div>
        <br />
        <span>나는 인라인</span>
      </body>

    일반적인 div 와 span 속성

    <style>
          div {
            border: 3px solid red;
            display: inline;
          }
          span {
            border-width: 5px;
            border-style: dashed;
            border-color: greenyellow;
            display: block;
          }
        </style>

    display로 속성을 바꿀 수 있다

    • display의 none 속성은 화면에는 안보이지만 계속해서 존재하는 것
    • inline-block 은 인라인이지만 블록 속성을 가질 수 있다는 말 즉 사이즈 조절이 가능한 블록
    • 기본적으로 div 는 블록 요소, span 은 인라인요소지만 inline-block으로 조절 가능

     

     

     

    - 박스모델

    • 브라우저가 요소를 렌더링 할 때에는 각각의 요소는 기본적으로 사각형 형태로 영역을 차지하고 이 영역을 '박스'라고 표현한다. CSS는 이 박스의 속성을 다루는 것이다.
    • 이 박스는 네개의 영역으로 구성되고 정의할 수 있는 속성이 각각 다음과 같다
      콘텐츠 영역 - width, height
      안쪽 여백 - padding
      경계선(테두리) - margin
      바깥쪽 여백 - border-width

     

        <style>
          div {
            border: 3px solid skyblue;
            padding: 10px;
            margin: 20px;
          }
        </style>

    주황색 - margin 초록색 - border 초록과 파랑 사이 - paading

    • 여백은 상화좌우 네개의 면이 존재하며 각 면에 개별적으로 두께 정의가 가능
      -> 하위 속성 정의 / 여러값을 한번에 정의

    여러값 정의 -> padding/margin: 10px 20px 30px 40px;

     

    - 박스 크기

    • 화면에 나오는 또는 컨텐츠간의 거리는 박스크기에 의해 정의되고 그 박스 크기는 테두리를 포함하여 나타난다
    • 컨텐츠영역 + 패딩 + 테두리를 넣으면 자신이 생각했던 사이즈보다 박스가 무조건 커진다 여기에 쓰이는 것이 
      'box-sizing' 속성

    box-sizing: border-box; 라고 정의하면 박스 사이즈가 커지지 않고
    정의한 사이즈 그대로 유지하되 컨텐츠 영역이 줄어든다
    마진, 패딩을 추가하면 할수록 컨텐츠 영역이 줄어든다

     

     

     

     

     

    box-sizing: content-box; 라고 정의하면 박스 사이즈가 정의한 사이즈 대로 커진다

     

    width/height 등의 사이즈를 계산 하기 싫으면 border-box, 
    컨텐츠 영역은 무조건 확보하고싶다면 content-box

     

     

     

     

    • 박스 배경 또한 속성을 부여할 수 있다.

    박스는 항상 모르겠으면 <div>로 정의하자!

     

     

    - float / clear

    • float - 요소가 문서의 일반적인 흐름에서 제외되어 자신 포함 컨테이너의 왼쪽이나 오른쪽에 배치시키는 속성이며 흐름에서는 제외되지만 필요한 만큼의 공간은 차지한다. (none/left/right 으로 배치 가능)
        <style>
          #a {
            width: 100px;
            height: 50px;
            background: coral;
          }
          #b {
            width: 100px;
            height: 100px;
            background: greenyellow;
          }
        </style>
      </head>
      <body>
        <div id="a"></div>
        <div id="b"></div>
        <p>3번째 태그</p>
      </body>

    • 프로그램상 코딩한 순서대로 화면에 표시되지만 float을 추가하게되면 흐름을 무시하고 원하는 곳에 놓을 수 있다.
    • clear는 float속성 이후에 붕괴되는 요소들을 float 속성을 해제시킨후 배치하는 특징이 있다. 
      (none/left/right/both)

    clear 속성 배치를 모르겠으면 both를 쓰자

     

     

    - position

    • 문서상에 요소를 배치하는 방법을 정의
    • position을 쓸때 어디 요소에 배치가 되는지에따라 컨텐츠의 위치가 달라진다

    • 아래 속성들이 주로 쓰이고 relative/absolute/fixed가 가장 많이 쓰인다

        <style>
          div {
            width: 100px;
            height: 100px;
            background-color: grey;
            position: relative;
            top: 100px;
            left: 100px;
          }
        </style>

    relative - offset이 중요

     

          <style>
          div {
            width: 200px;
            height: 200px;
            background-color: grey;
            position: relative;
            border: 1px solid black;
          }
          .abs {
            width: 100px;
            height: 100px;
            background-color: hotpink;
            position: absolute;
            top: 100px;
          }
        </style>
      
      
      <body>
        <div></div>
        <div>
          <div class="abs"></div>
        </div>
      </body>

    absolute - offset

        <style>
          .pos {
            width: 100px;
            height: 100px;
            background: hotpink;
            position: fixed;
            top: 50px;
            left: 50px;
          }
        </style>

    흐름 제외 고정

     

     

     

     

    - flexbox

    • 레이아웃을 유연하게 해주며 박스 내 요소간의 공간 배분과 정렬기능을 제공하는 1차원 모델
    • 컨테이너에 display:flex; 로 지정
        <style>
          .container {
            display: flex;
          }
          .item {
            width: 80px;
            height: 80px;
            background-color: hotpink;
          }
        </style>
      </head>
      <body>
        <div class="container">
          <div class="item">1</div>
          <div class="item">2</div>
          <div class="item">3</div>
        </div>
      </body>

    나열된 순서와 관계없다!

    • 주축과 교차축에따라 flex가 컨텐츠를 놓는게 달라진다 -> flex-direction으로 주축 및 방향 설정 가능

    flex관련 속성

     

    - 의사클래스

    • 의사클래스(가상클래스)는 선택자에 추가하는 키워드로 요소가 어떤 특정한 상태가 되었을때 작동시키는 클래스

    - 의사 요소

    • 선택자에 추가하는 키워드로, 선택한 요소의 특정 부분만 스타일 하고싶을때 사용

     

     

    - 알아두면 좋은 개념들

    • 상속 - 하위요소가 상위 요소의 스타일 속성값을 물려받음

    • initial/unset 또한 상속과 같이 알아 두면 좋은 개념!

     

Designed by Tistory.