스터디/front

Do It! 인터랙티브 웹 페이지 만들기 | Chapter03 정리 (1)

ㅈㅣ니 2023. 9. 26.

[ 3장 CSS 기본 문법 빠르게 끝내기 ]

HTML에 CSS 연결하기

에디터에서 외부 CSS 파일 입력하기

- 에디터는 visual studio code 사용

link:css 를 입력 후 enter를 누르면 css파일은 연결하는 자동 완성 구문이 나타난다.

<link>태그의 href 속성에 경로를 넣어준다.

폴터 루트는 다음과 같이 구성하였다.

 

css 파일을 열어 문자 인코딩 방식을 작성한다.

인코딩 : utf-8

 

CSS 문법

참조 :&nbsp;https://www.w3schools.com/

h1 : 선택자

color : 속성명

blue : 속성값

속성명과 속성값의 연결은 콜론( : ) 으로 나누고, 세미콜론( ; ) 으로 선언들을 구분한다.

 

전체 선택자

예제)

See the Pen css1 by yejin (@geniest) on CodePen.

 CSS 파일에서 기호 " * " 는 전체 선택자를 의미한다.

그러므로 html 파일에 있는 <body>, <div>, <p> ,<a> 태그에 모두 빨간색 실선 테두리가 생김.

 

태그 선택자 - 태그명을 이용하여 선택

예제 )

See the Pen Untitled by yejin (@geniest) on CodePen.

CSS 파일에 각 태그 요소를 선택하여 테두리 소겅과 속성값을 입력했다.

 

자손 선택자 - 자식과 하위 요소 모두 선택

예제)

See the Pen Untitled by yejin (@geniest) on CodePen.

<p> 태그의 자식 요소인 <strong> 태그에만 테두리 표시

 

자식 선택자 - 직계 자식 요소만 선택

예제)

See the Pen Untitled by yejin (@geniest) on CodePen.

자식 요소와 자손 요소 모두에게 테두리 적용

 

See the Pen Untitled by yejin (@geniest) on CodePen.

부모 요소인 ul 과 자식 요소인 li 사이에 ' > ' 기호를 넣으면 직계 자식 요소에만 테두리가 적용된다.

 

그룹 선택자  - 여러 개의 요소를 그룹으로 선택

예제)

See the Pen group by yejin (@geniest) on CodePen.

같은 CSS를 사용하는 경우에는 그룹으로 묶어서 사용가능하다.

콤마( , ) 를 이용하여 그룹으로 지정함

 

순서 선택자 - 형제 요소의 순서를 이용하여 선택

nth-of-type() 속성 사용

See the Pen nth-of-type by yejin (@geniest) on CodePen.

li 태그 뒤에 :nth-of-type(n) 속성을 붙이고 괄호 안에 번호를 입력한다

이 속성은 같은 유형의 n번째 형제를 선택하는 의미이다.

 

수열 선택자 - 수식 이용하여 선택

See the Pen Untitled by yejin (@geniest) on CodePen.

괄호안에 수식을 입력하여 요소를 선택할 수 있다.

예시로는 2의 배수와 홀수 선택을 나타냈다. (홀수 짝수 나타내는 건 수식 대신 odd, even을 입력해도 된다.)

odd - 홀수

even - 짝수

 

마지막 요소 선택자 - 형제 요소 중 마지막 요소 선택

See the Pen Untitled by yejin (@geniest) on CodePen

속성 선택자 - 속성값을 이용하여 선택

See the Pen Untitled by yejin (@geniest) on CodePen.

input 태그의 type 속성값에 따라 css를 줄 수 있다.

 

가상 선택자 - 가상의 요소 선택

See the Pen Untitled by yejin (@geniest) on CodePen.

hover는 마우스 포인터를 올렸을 때 스타일이 적용

[ 가상 선택자 ::before ::after ]

크롬에서 개발자 도구열어서 html 코드를 살펴보면 ::before ::after로 가상 요소가 생성된 걸 확인 할 수 있다.

[ 의사 클래스 | pseudo classes ] 

의사 클래스 설명
:link 사용자가 아직 한 번도 해당 링크를 통해서 연결된 페이지를 방문하지 않은 상태를 모두 선택함. (기본 상태)
:hover 사용자의 마우스 커서가 링크 위에 올라가 있는 상태를 모두 선택함.
:focus 초점이 맞춰진 input 요소를 모두 선택함.
:enabled 사용할 수 있는 input 요소를 모두 선택함.
:first-child 모든 자식(child) 요소 중에서 첫 번째에 위치하는 자식(child) 요소를 모두 선택함.
:nth-child 모든 자식(child) 요소 중에서 앞에서부터 n번째에 위치하는 자식(child) 요소를 모두 선택함.
:nth-of-type 모든 자식(child) 요소 중에서 n번째로 등장하는 특정 요소를 모두 선택함.
:empty 아무런 자식(child) 요소도 가지지 않는 요소를 모두 선택함.
:lang(언어) 특정 요소를 언어 설정에 따라 다르게 표현할 때에 사용함.

참조 : https://www.tcpschool.com/

[ 의사 요소 | pseudo-element ]

대표적인 CSS 의사 요소

- ::first-letter

- ::first-line

- ::before

- ::after

- ::selection

 

클래스 선택자 - 클래스명으로 요소 선택 | 아이디 선택자 - 아이디명으로 요소 선택

css에서는

이런 구조로 나타낸다.

 

See the Pen Untitled by yejin (@geniest) on CodePen.

아이디는 #아이디명을 붙여서 나타낸다.

클래스 선택자와 동일하게 태그명 생략 가능.

 

폰트 스타일

폰트 크기

기본 단위 : px

속성명 속성값 설명
font-size px 픽셀 단위로 폰트 크기 설정
rem 최상위 부모인 <html> 태그를 기준으로 폰트 크기 설정
em 부모 요소를 기준으로 폰트 크기 설정

rem 단위는 최상위 요소인 html 의 폰트 크기 기준으로 크기를 지정할 수 있어서 모든 폰트를 일일이 수정해야하는 문제를

해결할 수 있음.

 

See the Pen Untitled by yejin (@geniest) on CodePen.

 

폰트 모양
속성명 속성값 설명
font-family "폰트명" 폰트의 모양을 설정

구글 웹 폰트

https://fonts.google.com/

 

Browse Fonts - Google Fonts

Making the web more beautiful, fast, and open through great typography

fonts.google.com

 

See the Pen Untitled by yejin (@geniest) on CodePen.

 

폰트 어썸(fontawesome)

https://fontawesome.com/

 

Font Awesome

The internet's icon library + toolkit. Used by millions of designers, devs, & content creators. Open-source. Always free. Always awesome.

fontawesome.com

가입은 알아서,,,

<i class="fa-brands fa-apple"></i>
<br>
</bre>
<i class="fa-brands fa-apple"></i>
i:nth-of-type(1){
    font-size: 100px;
}
i:nth-of-type(2){
    font-size: 100px;
    color: red;
}

이렇게 적용한 걸 확인할 수 있다.

폰트 색상
속성명 속성값 설명
color 영문명 영어 색상명으로 표기
#000000 16진수로 표기
rgb(0, 0, 0) RGB로 표기
텍스트 줄 간격, 정렬, 자간

See the Pen Untitled by yejin (@geniest) on CodePen.

 

줄 간격 속성

속성명 속성값 설명
line-height 실숫값 폰트 크기에 맞춰 실수 배율로 지정
픽셀값 고정된 px 단위로 지정

텍스트 정렬 속성

속성명 속성값 설명
text-align left 왼쪽 방향으로 정렬
center 중앙 정렬
right 오른쪽 방향으로 정렬
justify 양쪽 정렬

텍스트 자간 속성

속성명 속성값 설명
letter-spacing 1px 텍스트의 간격을 px단위로 지정

 

웹 페이지 영역별 크기 정하기

 

너비와 높이 속성
속성명 속성값 설명
width, height px 너비랑 높이를 px단위로 지정
% 부모태그 기준으로 너비랑 높이 % 단위로 지정
vw 웹 브라우저의 너비를 기준으로 너비랑 높이를 백분율로 지정
vh 웹 브라우저의 높이를 기준으로 너비랑 높이를 백분율로 지정

 

<body>
<article>100px</article>
<article>20%</article>
<article>10vw</article>
<article>10vh</article>
</body>
article{
    border: 1px solid red;
}
article:nth-of-type(1){
    width: 100px;
    height: 100px;
}
article:nth-of-type(2){
    width: 20%;
    height: 20%;
}
article:nth-of-type(3){
    width: 10vw;
    height: 10vw;
}
article:nth-of-type(4){
    width: 10vh;
    height: 10vh;
}

vw ( viewport width ) , vh ( viewport height ) 단위는 웹 브라우저 크기를 기준으로 한다.

 

바깥쪽 여백 지정 - margin

출처 :&nbsp;https://www.tcpschool.com/

- margin-top

- margin-right

- margin-bottom

- margin-left

이 순으로 지정.

 

See the Pen Untitled by yejin (@geniest) on CodePen.

auto 는 항상 중앙에 배치

 

안쪽 여백 배치 - padding

See the Pen Untitled by yejin (@geniest) on CodePen.

padding은 안쪽 여백 값을 지정.

위의 예제에서 box2를 살펴보면 padding 값이 지정된 만큼 박스의 크기도 증가함.

박스 크기를 유지하면서 여백만 설정할 때에는

box-sizing을 설정해주면 된다.

 

인라인 요소와 블록 요소

 

블록 요소 ( Block element )

  • 줄을 자동으로 바꿈
  • 너비와 높이를 지정할 수 있다.
  • 너비를 지정하지 않으면 부모 요소의 너비값의 100%를 상속받음
  • 블록 요소와 인라인 요소 모두 묶을 수 있다.

인라인 요소 ( Inline element )

  • 자동 줄 바꿈이 되지 않고 옆으로 나열
  • 너비와 높이 지정할 수 없음
  • 인라인 태그를 사용한 텍스트의 크기가 해당 요소의 크기가 된다.
  • 인라인 요소만 묶을 수 있음

See the Pen Untitled by yejin (@geniest) on CodePen.

첫 번째 예시를 살펴보면 height 값을 200px을 줬는데 적용되지 않음.

( 인라인 요소는 높이값 적용 X )

강제로 지정하는 방법은

display : inline-block 속성을 주면 높이값이 적용되는 것을 볼 수 있다.

display : block 속성은 인라인 요소를 강제로 block 요소로 변경한다.

반응형