ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 웹과 함께 시작하기 ~ CSS 기초
    Java Script/MDN 정리 2020. 7. 22. 01:22
    반응형

    CSS란

    • HTML과 같이 프로그래밍 언어도 아니고 마크업 언어도 아니라, CSS는 Style sheet 언어다. HTML 문서에 있는 요소들에 선택적으로 스타일을 적용할 수 있다는 의미.

      • HTML의 모든 문단 요소들을 선택하고 그 문단 요소들 안에 있는 텍스트를 빨갛게 바꾸려고 한다면 다음과 같이 CSS를 작성할 것이다.
        p {
            color: red;
        }
      • 위와 같이 작성한 style.css를 styles 디렉토리에 저장한 이후, Index.html의의 안에 불러와서 적용하기<link href="styles/style.css" rel="stylesheet" type="text/css">
    • CSS의 ruleset 해부

      • 전체 구조는 rule set이라 불린다. (종종 줄여서 "rule"이라고 한다.)
      • 선택자(Selector)
        • rule set의 맨 앞에 있는 HTML 요소 이름. Selector는 꾸밀 요소들을 선택한다.
          • 이 예제에서는 p 요소
      • 선언
        • color: red와 같은 단일 규칙, 꾸미기 원하는 요소의 속성을 명시한다.
      • 속성(property)
        • 주어진 HTML 요소를 꾸밀 수 있는 방법 ( 이 예시에서 color는 p 요소의 속성)
        • CSS에서, rule 내에서 영향을 줄 속성을 선택
      • 속성 값
        • 속성의 오른쪽 콜론 뒤에, 주어진 속성에 선택한 속성 값을 갖는다.
      • 이외의 rule set 보기
        • 각각의 rule set(Selector로 구분)은 반드시 { }로 감싸져야 한다.
        • 각각의 선언 안에, 각 속성을 해당 값과 구분하기 위해 콜론 :을 사용해야 한다.
        • 각각의 rule set 안에, 각 선언을 그 다음 선언과 구분하기 위해 세미콜론 ;을 사용
          p {
            color: red;
            width: 500px;
            border: 1px solid black;
          }
    • 여러 요소 선택하기
      p,li,h1 {
        color: red;
      }
      • 여러 요소 타입을 선언하고 하나의 rule set을 적용 가능

    글꼴과 문자

    • google font에서 글꼴 선택하고 Embed에 있는 링크 확인하고 적용하기

      • index.html의안에 요소를 추가하기

        <link href="https://fonts.googleapis.com/css2?family=Nanum+Myeongjo&display=swap" rel="stylesheet">
      • style.css파일에 html 전체 페이지에 font 적용하기

        html {
          font-size: 10px;
          font-family: placeholder: 'Nanum Myeongjo', serif;
        }
      • HTML body 안에 문자를 포함하는 요소 h1, li 및 p를 위해 글자 크기를 설정하기

        h1 {
          font-size: 60px;
          text-align: center;
        }
        
        p, li {
          font-size: 16px;    
          line-height: 2; 
          letter-spacing: 1px;
        }

    Box, Box, Box의 모든 것

    • CSS 레이아웃은 박스모델을 주 기반으로 하고 있다. 페이지의 공간을 차지하고 있는 각각의 블록들은 이와 같은 속성들을 가진다.
      • padding
        • 컨텐츠 주위의 공간 (ex: 문단 글자의 주위)
      • border
        • padding 의 바깥쪽에 놓인 실선
      • margin
        • 요소의 바깥쪽을 둘러싼 공간
        • width = 한 요소의 너비
        • background-color = 요소의 콘텐츠와 padding의 배경 색
        • color = 한 요소의 콘텐츠 색 (일반적으로 글자색)
        • text-shadow = 한 요소 안의 글자에 그림자를 적용
        • display = 요소의 표시 형식 설정
    • 페이지 색 바꾸기
      html {
          background-color:#db2a1a;
      }
    • body 외부 정렬하기
      body {
          width: 600px;
          margin: 0 auto;
          background-color : #29f0f0;
          padding: 0 20px 20px 20px;
          border: 5px solid black;
      }
      • width: 600px
        • body가 항상 600 pixels의 너비를 갖도록 강제 지정
      • margin: 0 auto;
        • margin or padding 처럼 한 속성에 두개의 값을 성정할 때, 첫 번째 값은 요소의 상단과 하단에 영향을, 두 번째 값은 좌우측에 영향을 준다. 또한, 하나 or 셋 or 네개의 값을 사용할 수도 있음
      • background-color : #29f0f0;
        • 요소의 배경 색을 설정 ~> 나는 붉은색
      • padding: 0 20px 20px 20px;
        • padding 에는 콘텐츠 주위에 약간의 공간을 주기 위한 네 개의 값이 있다. 맨 첫번째는 상단, 두번쨰는 왼쪽, 아래, 오른쪽 (12시부터 시계방향)으로 값을 설정
      • border: 5px solid black;
        • body 모든 면의 border를 5pixels 두께의 실선으로 설정
    • 메인 페이지 제목 배치하고 꾸미기
      h1 {
        margin: 0;
        padding: 20px 0;    
        color: #00539F;
        text-shadow: 3px 3px 1px black;
      }
      • 바디 상단에 틈이 있다는 것을 확인할 수 있다. 브라우저가 h1요소에 초기 스타일링을 적용했기 때문에 발생, 위에처럼 margin: 0; 설정으로 틈을 제거할 수 있다.
      • text-shadow: 3px 3px 1px black;
        • 첫 번째 pixel 값은 그림자의 수평 오프셋을 설정 - 얼마나 옆으로 이동시킬 것인지
        • 첫 번째 pixel 값은 그림자의 수직 오프셋을 설정 - 얼마나 아래로 이동시킬 것인지
        • 세 번째 pixel 값은 그림자의 흐림 반경을 설정 - 큰 값은 더 흐릿한 그림자를 의미
        • 네 번째 pixel 값은 그림자의 기본 색상을 설정
    • 이미지 가운데 정렬
      img {
        display: block;
        margin: 0 auto;
      }
      • 위에 body 에서 했듯이 다시 margin: 0 auto 트릭을 사용해 볼 수 있지만, 무언가 더 해야할 필요가 있습니다. body 요소는 block level 입니다.
      • 이는 페이지의 공간을 차지하고, margin과 여기에 적용된 다른 여백값을 가질 수 있다는 것을 의미, 반면에 이미지는 inline 요소.
      • 따라서, 이미지에 margin을 적용하기 위해서는, display: block;을 사용해야 이미지에 block-level 성질을 준다.
    반응형

    댓글

Designed by Tistory.