HTML & CSS

[43-2 HTML] 내부 CSS, CSS 전체 적용하기, CSS default value, border-style, border-color, border-width, height, width, preticide

Olivia-BlackCherry 2022. 10. 11. 20:14

내부 CSS

css를 한 페이지 '전체'에 적용할 수 있는 방법을 소개한다. 

 

1. head 부분에 코드를 작성하기

코드는 head, body, foot으로 전체를 세 등분 할 수 있는데,

여기서 head에 스타일 속성을 넣으면, 전체에 일괄 적용된다.

 

HTML 코드 <style></style>을 적고,  그 안에

body { }를, 그 안에 적용할 속성을 입력한다.

아래의 예시는

배경색깔을 기본에서 lightcyan 색으로 바꾸었다.

<head>
  <meta charset="utf-8">
  <title>올리비아의 개인 사이트</title>

  <style media="screen">
    body {
      background-color: lightcyan;
    }

    hr {
      
    }
  </style>
</head>

 

 

2. 모든 웹사이트는 이미 style 되어 있다는 사실!

위에서 body의 배경색깔을 바꾼 방법과 동일하기

head 부분에 hr의 컬러를 바꾸면,

아무런 변화가 없다.

왜냐하면

모든 웹사이트에는 이미 기본 CSS가 적용되어 있기 때문이다.

<head>
  <meta charset="utf-8">
  <title>올리비아의 개인 사이트</title>

  <style media="screen">
    body {
      background-color: lightcyan;
    }

    hr {
      background-color: blue;
    }
  </style>
</head>

구체적으로 속성을 바꾸고 싶다면

기본 CSS가 어떻게 적용되어 있는지부터 파악해야 한다.

hr의 기본 CSS,

CSS default value를 보자.

margin: 먼저 여백 margin 값이 위아래좌우로 있다.

margin-bottom: 1em;

margin-top: 1em;

margin-bottom:3em;

margin-top:3em;

 

border-style: 그리고 테두리 스타일 border style이 있는데, 가장자리의 모양을 뜻한다.

단순한 선부터 점박이까지,

border-style의 값value는 dotted,  dashed solid, dashed double, inset 등 다양하다.

그 중 inset는 액자틀처럼 무엇인가를 끼워넣는 듯한 느낌의 스타일이다.

border-width: 테두리 너비 border width도 있는데, 1px로 되어 있다.

border-width:0.1px;

border-width:10.1px;

 

 

3. CSS default 값 변경하기

우리는 테두리가 필요한 것이 아니다. 

따라서,

hr의 색깔을 바꾸고자 한다면 디폴트값 중, 

테두리 스타일border-style의 값을 none으로 바꿔준다.(=테두리를 없앤다.)

<head>
  <meta charset="utf-8">
  <title>올리비아의 개인 사이트</title>

  <style media="screen">
    body {
      background-color: lightcyan;
    }

    hr {
      border-style: none;
      background-color: blue;
    }
  </style>
</head>

그런데, 테두리를 없애버렸더니

hr 전체가 사라져 보이지 않는다.

그 이유와 해결 방법을 알아보자.

 

 

4. 모든 웹페이지는 박스로 구성되어있기 때문

크롬에서 pesticide 확장 프로그램을 설치하고,

웹사이트에 적용해보면,

웹페이지가 네모난 작은 상자들로 구성되어 있는 모습이 보인다.

<hr> 역시 예외가 아니다. 

hr도 사각형 박스 안에 담겨 있다.

 

만약 border-style을 none으로 바꾸면

테두리가 아예 없어지기 때문에 아무것도 보이지 않게 되는 것이다. 

따라서, 테두리 없이 선만 보이게 하기 위해서는

요소의 높이 height를 지정해서 상자의 높이를 정해주면 된다.

height: 높이 지정하기

height: 1px;

height: 5px;

 

width: 너비 지정하기

width 속성도 바꿔보자.

1) 단위: px

width:200px;

width:20px;

 

만약 여기서 border-style을 none 하지 않는다면, 아래처럼 테두리가 씌워져서 보인다.

 

2) 단위: %

또는 사용자가 휴대폰, PC, 탭 등 어디서 보아도 시각적으로 안정되게 보이게 하기 위해서는

값을 하드코딩하는 것보다, 비율로 보여주는 것이 좋다. 

이럴때는 %퍼센트를 사용하면 된다.

width:20%;

width:50%;

 

이렇듯 CSS 코드 변경은 상자의 속성에 영향을 미친다.

 

 

5. 응용

<코드>

<head>
  <meta charset="utf-8">
  <title>About Olivia, Kim</title>
  <style media="screen">
    body {
      background-color: grey;
    }

    hr {
      border-style: none;
      border-top-style: dotted;
      border-width: 5px;
      border-color: blue;
      width: 30%;
      height: 50px;
    }
  </style>

</head>

<실제 화면에서 보이는 hr>