공부했던 자료 정리하는 용도입니다.

재배포, 수정하지 마세요.

 

 

 

 

반응형 웹 디자인(Responsive Web Design)

  : 화면 크기에 따라 화면 요소들을 다르게 보여주도록 디자인된 웹 페이지

 

   미디어 쿼리  : CSS모듈 중 하나로 사이트에 접속하는 장치에 따라 특정한 CSS 스타일을 사용하도록 해주는 기능

    ex)  @media [only | not] 미디어유형 [and 조건] * [and 조건]

          @media screen and (min-width:200px) and (max-width:360px)

          : 화면의 최소 너비가 200px이고 최대 너비가 360px일 경우 미디어 쿼리를 사용한다.

 

  * 미디어 유형 종류

all 모든 미디어 유형
print 인쇄 장치 
screen 컴퓨터 스크린(스마트폰의 스크린도 포함)
tv tv
aural 음성 합성 장치(주로 화면을 읽어 소리로 출력해 주는 장치)
braille 점자 표시 장치
handheld Pad같은 장치
projection 프로젝터
tty 디스프레이 기능이 제한된 장치(이 장치에서는 px단위 사용 불가)
embossed 점자 프린터

 

 

 

미디어 쿼리에서 사용하는 조건

  1. 뷰포트의 너비와 높이

    뷰포트  : 실제 웹 문서의 내용이 화면에 보여지는 영역. 뷰포트의 너비와 높이를 미디어 쿼리의 조건으로 사용할 수 있다.

 

  * 너비와 높이 속성

width / height 웹 페이지의 너비, 높이
min-width / min-height 최소 너비, 최소 높이
max-width / max-height 최대 너비, 최대 높이

 

  2. 단말기의 너비와 높이

    : 단말기 브라우저 창의 너비와 높이를 체크할 수 있다.

 

    * 단말기의 너비와 높이 속성

device-width / device-height 단말기의 너비와 높이
min-device-width / min-device-height 단말기의 최소 너비와 높이
max-device-width / max-device-height 단말기의 최대 너비와 높이

 

  3. 화면회전

    : 화면이 어느 방향인지도 체크할 수 있다.

 

    * 화면 회전 속성

orientation:portrait 단말기의 세로 방향 (=뷰포트의 너비 < 높이)
orientation:landscape 단말기의 가로 방향 (=뷰포트의 너비 > 높이)

 

  4. 화면비율

    : 브라우저 화면 너비 값을 높이값으로 나눈 것. 숫자 값을 사용하거나 계산식을 사용할 수 있다.

    @media all and (aspect-ratio:16/9) : 뷰포트의 화면 비율이 16:9면 미디어 쿼리 사용

 

    * 화면 비율 속성

aspect-ratio 화면 비율( width/height )
min-aspect-ratio 최소 화면 비율
max-aspect-ratio 최대 화면 비율

 

  5. 단말기의 물리적 화면 비율

    : 단말기 브라우저의 너비 값을 높이값으로 나눈 것.

 

    * 단말기 화면 비율 속성

device-aspect-ratio 단말기 화면 비율( width/height )
min-device-aspect-ratio 단말기 최소 화면 비율
max-device-aspect-ratio 단말기 최대 화면 비율

 

  6. 색상당 비트 수

    : 단말기에서 사용하는 최대 색상 비트 수. color:n이면 최대 두 가지(2^n) 색을 사용 가능

    @media all and (color) : 컬러를 지원하면 실행

    @media all and (color:0) : 컬러를 지원하지 않으면 실행

 

    * 화면 비율 속성

color 비트 수
min-color 최소 비트 수
max-color 최대 비트 수

 

 

 

미디어 쿼리 적용하기

  ■ CSS파일 연결하기

  1. <link href="css파일 경로" rel="stylesheet" type="text/css" media="미디어 쿼리 조건">
  2. @import url(css 파일 경로) 미디어 쿼리 조건

 

  웹문서에서 직접 정의하기

    1. <style>안에서 media 속성을 이용하여 조건과 스타일을 지정한다.  

<style media="미디어쿼리 조건">

   스타일 규칙들

</style>

 

    2. @media문을 사용해서 각 조건별로 스타일을 지정해 놓고 사용할 수 있다.

<style>

   @media 미디어 쿼리 조건{

      스타일 규칙들

   }

</style>

 

 

  ■ 뷰포트 지정하기

  : 미디어 쿼리를 이용해도 스마트 폰에서 봤을 때 스마트폰용 화면이 아닌 pc 화면이 그대로 축소만 되어 보이는 경우가 있다. 이런 경우에는 <meta>를 이용해 뷰포트 크기나 배율을 조절해야 한다.

  <meta name="viewport" content="속성1=값, 속성2=값 ...">

  <meta name="viewport" content="width=device-width">

  : 웹 페이지의 뷰포트 너비를 스마트폰의 화면 너비에 맞춰 지정

 

  * 뷰포트 속성

width 뷰포트의 너비를 지정(기본값은 device-width)
height 뷰포트의 높이를 지정(기본값은 device-height)
initial-scale 초기 배율(기본값 1, 1보다 작으면 축소, 1보다 크면 확대)
user-scalable

사용자가 페이지를 확대/축소할 수 있는지 여부를 표시
(기본값은  yes 이고  no 로 지정하면 사용자가 확대/축소할 수 X)

minimum-scale 사용자가 축소할 수 있는 최솟값을 지정(기본값은  0.25 고 가로값을 기준으로 한다.)
maximum-scale 사용자가 확대할 수 있는 최댓값을 지정한다.(기본값은  5.0 )

 

 

 

 

가변형 레이아웃(Fluid Layout)

  : 사이트의 모든 요소를 상대적인 크기로 지정해서 브라우저 크기에 따라서 다르게 표시해주는 방법.

 

  그리드 시스템

    : 화면을 몇 개의 column으로 나누어 요소들을 배치하는 것이다. 그리드 시스템을 사용하면 화면을 규칙적으로 만들기 때문에 레이아웃을 일관성 있게 유지할 수 있다는 장점이 있다. 그리드를 이용해서 가변형 그리드 레이아웃을 많이 쓴다.

 

 

   고정형 레이아웃을 가변형 레이아웃으로 만드는 방법 

  •  요소의 너비를 백분율(%)로 바꾸기
    : 소수점 이하 자리가 많다면 한두 자리로 표시한다. 오차를 고려하여 실제 계산한 값보다 약간 작게 지정해 주는 것이 좋다.
  • 패딩과 마진을 백분율(%)로 바꾸기
  • 글자 크기를 em으로 바꾸기
    : em은 대문자의 M의 너비를 1em으로 계산한 것으로 16px=1em이기 때문에 (픽셀 값)/16 하면 변환된 em값이 나온다.
  • 이미지나 비디오가 있는 경우 크기 조절
    max-width:100%해주면 브라우저 너비를 기준으로 항상  100%에 맞게 이미지 너비가 조절된다.

 

 

 

'Front end > HTML , CSS' 카테고리의 다른 글

[CSS] 박스모델 정리  (0) 2019.05.13
[CSS] Style 정리  (0) 2019.05.13
[CSS] CSS의 정의와 선택자(Selector)  (0) 2019.05.12
[CSS] WEB2 CSS 정리  (0) 2019.05.12
[HTML] form 관련 tag  (0) 2019.05.11

 

 

부했던 자료 정리하는 용도입니다.

재배포, 수정하지 마세요.

 

 

 

 

drop down navigation bar

  : 메인 메뉴 위로 마우스 포인터를 올려놓으면 서브메뉴가 펼쳐지는 방식

 

 

오늘은 htmlcss만 사용하여 메뉴바를 만드는 방법에 대해서 정리했습니다.

 

html로 리스트 만들기

먼저 <body>안에 <ul> <li>를 이용해서 리스트를 만들어 줍니다.

전체 메뉴를 <ul>로 묶은 다음 <li>안에 메인 메뉴 항목들을 넣으면 됩니다.

서브메뉴를 넣고 싶다면 <li>안에 다시 <ul>을 이용해서 리스트를 만들어 주시면 됩니다.

 

나중에 메뉴에 스타일을 적용할 것이기 때문에 가장 바깥 <ul>"nav"라는 id를 만들어 줍니다.

 

기본 리스트

입력하고 페이지를 열어보면 기본적인 리스트가 나오는 것을 확인할 수 있습니다.

 

 

 

 

전체메뉴 스타일 설정

이제 메인 메뉴부터 차근차근 설정해 주시면 됩니다.

메인 메뉴 스타일을 지정하기 위해서 <head>안에 #nav로 스타일을 지정합니다.

list-style을 이용해서 불릿을 없앴고 height으로 네비게이션의 높이를 지정했습니다.

배경색과 기타 여백 등을 설정합니다.

 

 

전체메뉴의 리스트 스타일 설정

다음은 메인 메뉴의 리스트 속성입니다.

#nav 뒤에 #nav li 추가해서 메인 메뉴의 리스트에 대한 스타일을 설정합니다.

floatposition속성을 이용해서 메인 메뉴의 항목들이 가로로 배치되도록 설정했습니다.

 

 

메뉴 가로배치 하기 전

 

메뉴 가로배치 후

페이지를 열어서 확인해보면 메뉴 항목들이 가로로 배치된 것을 확인할 수 있습니다.

 

 

 

 

메인메뉴 링크와 메인메뉴에 마우스 포인터를 올렸을 때 스타일 설정

다음으로는 메인 메뉴의 링크 스타일입니다.

#nav li a을 추가하고 위의 설정을 추가합니다.

메뉴 칸을 블록 레벨로 설정하고 글자와 기타 설정, 그림자 설정 등을 해주었습니다.

 

#nav li:hover > a는 메뉴 항목 위로 마우스 포인터를 올려놓았을 때의 스타일입니다.

메뉴에 마우스를 올리면 배경색글자색이 변하도록 설정했습니다.

 

 

메인메뉴 설정 결과

페이지를 열어 확인해보면 링크 스타일이 적용된 것을 확인할 수 있습니다.

 

 

 

 

서브메뉴 스타일 설정

이제 메인 메뉴가 끝났으니 서브메뉴를 설정합니다.

#nav ul을 추가해서 서브메뉴 스타일을 지정해 줍니다.

여백이나 배경색 등은 취향에 맞게 설정해주시면 됩니다.

 

 

서브메뉴 리스트들의 스타일 설정

#nav ul li를 이용해서 서브메뉴 각 항목들의 스타일도 설정해 줍니다.

이전에 부모 요소인 메인 메뉴를 float:left로 설정했기 때문에 서브메뉴도 가로로 나오는 상태인데,

float:none으로 설정하면 서브메뉴들은 세로로 나오게 됩니다.

 

서브메뉴 설정 결과

페이지를 열어 확인해보면 서브메뉴가 세로로 나오는 것을 확인할 수 있습니다.

 

 

 

서브메뉴 링크 스타일 설정

#nav ul a를 추가해서 서브메뉴의 링크 스타일을 지정해줍니다.

글자 굵기를 보통으로 하고 글자색을 검은색으로 바꿔주었습니다.

 

서브메뉴 링크 스타일 설정

페이지를 열어 확인해보면 서브메뉴의 글자색이 바뀐 것을 확인할 수 있습니다.

 

 

 

서브메뉴 리스트로 마우스 포인터를 올렸을 때 스타일

#nav ul li:hover a로 서브메뉴 위로 마우스 포인터를 올려놓았을 때의 스타일을 설정해 줍니다.

서브메뉴에 마우스 포인터를 올리면 배경색이 진해지고, 글자색이 굵어지도록 설정했습니다.

 

서브메뉴 설정 결과

페이지를 열어 확인해보면 서브메뉴에 마우스 포인터를 올려놓았을 때

4-3처럼 이 진해지고 글자색이 굵어지는 것을 확인할 수 있습니다.

 

 

서브메뉴가 평소에 안보이도록 설정

지금 상태에서는 메뉴에 마우스 포인터를 올리지 않았는데도 서브메뉴가 나오는 상태입니다.

아까 설정한 #nav ulopacity속성을 추가하면 서브메뉴들을 투명하게 설정해서 평상시에는 안 보이도록 설정할 수 있습니다.

 

메인메뉴에서 마우스 포인터를 올렸을때 서브메뉴가 나오도록 스타일 설정

이제 메인 메뉴에 마우스 포인터를 올렸을 때 서브메뉴가 나타나도록 해야 합니다.

#nav ul#nav ul li사이에 위의 설정을 추가하면 메뉴 화면 만드는 과정이 끝납니다.

 

 

 

최종설정 후 마우스 포인터 올려놓기 전

이제 평상시에는 메뉴 화면이 안 보이다가

 

최종설정 후 마우스 포인터 올려놓은 후

메인 메뉴에 마우스 포인터를 올려놓으면 위의 화면과 같이 서브메뉴가 등장합니다.

 

 

 

 

공부했던 자료 정리하는 용도입니다.

재배포, 수정하지 마세요.

 

 

 

 

박스모델

  : 그림이나 텍스트처럼 사각 영역을 갖는 요소를 통칭하는 의미

 

박스모델

 

 Margin  : 박스 모델 간의 여백

 Border  : 박스의 테두리

 Padding  : 박스와 컨텐츠 영역 사이의 여백

 Content  : 텍스트나 이미지가 들어가는 컨텐츠 영역

 

 

박스 모델의 전체 너비

= 컨텐츠 너비 + 양 옆의 패딩 + 양 옆 테두리

 

 

 

 

 

 

 

박스모델 관련 스타일

  1. width / height

    : 박스 모델의 너비와 크기

 

  2. margin

    : 주변 여백

    margin의 속성에는 margin-topmargin-rightmargin-bottommargin-leftmargin이 있다. 

    margin으로 사용할 때는 top - right - bottom - left(시계방향)으로 값을 넣어야 한다.

 

  3. padding

    : 컨텐츠 영역과 테두리 사이 여백

    margin과 마찬가지로 padding-toppadding-rightpadding-bottompadding-leftpadding속성이 있다.

    padding으로 사용할 때는 top - right - bottom - left(시계방향)으로 값을 넣어야 한다.

 

    * width, height / margin, padding 속성

크기 너비나 높이를 px이나 cm같은 단위의 수치로 나타냄
백분율(%) 박스모델을 포함하고 있는 부모 요소를 기준으로 너비나 높이값을 %로 나타냄
auto (기본값) 박스모델의 너비와 높이 값이 컨텐츠 양에 따라 자동으로 결정됨.

 

 

 

테두리 관련 속성들

  1. border-width

    : 테두리 두께

    ex) border-width: thin thick thin 5px; : 위, 아래는 얇게, 오른쪽은 굵게, 왼쪽은 5px

 

    * border-width 속성

thin 얇은 선
medium (기본값) 보통 선
thick 굵은 선
크기 굵기 직접 지정

 

  2. border-color

    : 테두리 색

    border-top-color, border-right-color, border-bottom-color, border-left-color, border-color 속성이 있다.

    border-color으로 사용할 때는 top - right - bottom - left(시계방향)으로 값을 넣어야 한다.

    (border-color를 사용하려면 border-widthborder-style을 사용해서 테두리의 두께와 스타일이 설정되어 있어야 한다.)

 

    * border-color 속성

색상 값 rgb, 16진수, 색이름을 이용해 지정
transparent (기본값) 투명

 

  3. border-style

    : 테두리선 스타일

    border-top-style. border-right-style, border-bottom-style, border-left-style. border-style 속성이 있다.

    테두리 스타일의 기본값은 none이라 스타일을 지정하지 않으면 테두리가 표시되지 않음

 

    * border-style 속성

none 테두리 X
hidden

테두리 X,

border-collapse:collapse일 경우 다른 테두리도 보이지 X

dotted 점선 ex) . . . . . .
dashed 짧은 선 ex) ㅡ ㅡ ㅡ
solid 실선
double

이중선(겹선)
두 선 사이의 간격이 border-width가 된다.


  # border 속성

    : 테두리 스타일을 합쳐서 한 번에 표시할 수 있다.

 

 

 

CSS3 박스 관련 속성들

  1. border-radius

    : 박스 모서리 둥글게 만들기

    값이 생략되어 있을 경우 서로 마주 보는 대각선의 값을 따라간다.
    (top-left 와 bottom-right /  top-right 와 bottom-left) 값을 넣을 경우 해당 값을 반지름으로 한 원이 있는 것처럼 모서리가 둥글어진다.)

     ex) border-radius:20px; : 모서리 부분의 반지름 20px

 

    * border-radius 속성

크기 둥글게 처리할 반지름 크기를 px나 em같은 단위의 수치로 표시
백분율(%) 현재 요소의 크기를 기준으로 둥글게 처리할 반지름의 크기를 %로 지정한다.

 

  2. border-*-radius

    : 박스 모서리 다르게 지정하기

    사용하면 각 모서리의 radius크기를 다르게 설정할 수 있다. 속성으로는 border-top-left-radius(왼쪽 위), border-top-right-radius(오른쪽 위), border-bottom-left-radius(왼쪽 아래), border-bottom-right-radius(오른쪽 아래)가 있다.

 

  3. box-shadow

    : 그림자 효과 내기

    box-shadow:수평거리값 수직거리값 blur값 확장거리값 색상값 inset;

 

    * box-shadow 속성

수평거리 (필수)

그림자가 수평으로 얼마나 떨어져 있는지 지정.
양수는 오른쪽, 음수는 왼쪽에 그림자 표시

수직거리 (필수)

그림자가 수직으로 얼마나 떨어져 있는지 지정.
양수는 오른쪽, 음수는 왼쪽에 그림자 표시

blur

흐림 정도 (생략하면 0이 기본값으로 진한 그림자)
값이 커질수록 부드러운 그림자(음수 사용 불가)

확장거리

그림자가 얼마나 번질지 설정(기본값 0)

양수 값 : 모든 방향으로 그림자가 퍼져나간다.
음수 값 : 모든 방향으로 그림자가 축소된다.

그림자 색상 그림자 색(기본값 검은색)
inset

사용하면 박스 안쪽에 그림자를 표시
(사용하지 않으면 박스 바깥쪽에 그림자를 표시)

 

 

 

block-level / inline-level

  •  block-level  : 한 줄을 차지하는 요소, 양 옆에 다른 요소가 올 수 없다.
  •  inline-level  : 줄을 차지하지 X, 컨텐츠의 크기만큼 공간을 차지한다. 

block-level tag <hn>, <ul>, <ol>, <p>, <div>, <blockquote>, <form>, <hr>, <table>, <fieldset>, <address>
inline-level tag <br>, <input>, <textarea>, <span>, <label>, <button>, <img>, <object>, <sub>, <sup>

 

 

  ■ display 속성 

    : 화면에 어떻게 보일지 설정

    * display 속성

block block-level 박스
inline inline-level 박스
inline-block block-level이지만 inline-level 박스처럼 배치
none 박스 X, 시각적으로 표시하지도 X
inherit 상위 요소의 display 속성을 상속
table block-level 표
inline-table inline-level의 표로 만듦.(html의 table에 해당)
table-row 표의 행으로 만듦.(html의 tr에 해당)
table-row-group 표의 본체 행 그룹으로 만듦.(html에서 tbody에 해당)
table-header-group 헤더 행 그룹으로 만듦.(html에서 thead에 해당)
table-footer-group 푸터 행 그룹으로 만듦.(html에서 tfoot에 해당)
table-column 표의 열로 만듦.(html에서 col에 해당)
table-column-group 표의 열 그룹으로 만듦.(html에서 colgroup에 해당)
table-cell 표에서 하나의 셀로 만듦.(html에서 td나 th에 해당)
table-caption 표의 캡션을 만듦.(html에서 caption에 해당)
list-item 목록의 항목을 표시할 수 있도록 기본적인 블록박스(항목의 내용이 표시되는 부분)와 표시자 박스(불릿이 표시되는 박스)를 만듦(html에서 li에 해당.)

 

 

 

여러 요소를 배치하는 경우

  1. position

    : 원하는 형태로 배치

 

    * position 속성

static 문서의 흐름에 맞춰 배치
relative 이전 요소에 연결해서 배치
absolute 원하는 위치를 지정하여 배치
fixed 지정한 위치에 고정해서 배치(화면이 잘릴 수도 O)

 

  2. visibility

    : 보이거나 보이지 않게 함 

 

    * visibility 속성

visible (기본값) 요소를 화면에 표시
hidden 요소를 화면에서 감춤.(크기는 그대로 차지)
collapse 표의 행이나 열, 행 그룹, 열 그룹등에서 지정하면 서로 겹치도록 조절
inherit 부모 요소의 visibility 속성을 상속

 

    3. float

    : 요소를 떠 있게 하기

    "떠있다"는 것은 왼쪽 구석이나 오른쪽 구석에 요소가 배치된다는 의미이다. 화면의 크기가 달라져 문서의 배치가 바뀌면 떠 있는 요소들의 위치에도 영향을 받게 된다. 문서의 레이아웃을 조절하려고 할 때 많이 사용되는데, 요소가 떠 있으려면 위치가 고정되면 안 되기 때문에 position속성에서 absolute를 사용해서는 안된다. 

 

  4. clear

    : float 속성을 무효로 만듦

    float속성을 이용하여 웹 페이지의 요소를 왼쪽이나 오른쪽에 배치하면 그다음에 넣는 다른 요소들에도 똑같은 속성이 전달된다

 

    * clear 속성

left 왼쪽으로 떠 있지 않게 한다.
right 오른쪽으로 떠 있지 않게 한다.
both 양 옆 어디에도 떠 있지 않도록 한다.
none (기본값) 왼쪽 오른쪽 모두에 뜰 수 있다.

 

  5. z-index

    : 쌓는 순서 지정

    0~999 사이의 값으로 지정할 수 있다.  999 가 제일 앞에 표시,  0 이 제일 뒤에 표시된다.

 

 

 

'Front end > HTML , CSS' 카테고리의 다른 글

[CSS] 반응형 웹과 미디어 쿼리, 가변 레이아웃  (0) 2019.05.14
[CSS] Style 정리  (0) 2019.05.13
[CSS] CSS의 정의와 선택자(Selector)  (0) 2019.05.12
[CSS] WEB2 CSS 정리  (0) 2019.05.12
[HTML] form 관련 tag  (0) 2019.05.11

 

 

공부했던 자료 정리하는 용도입니다.

재배포, 수정하지 마세요.

 

 

 

 

텍스트 관련 스타일

 

    스타일 종류 

  • 글꼴 스타일
  • 텍스트 스타일
  • 텍스트 간격 조절 스타일

 

  ■ 글꼴 스타일

  1. font-family

    : 글꼴

 

  2. font-size

    : 글자 크기  

      크기로는 상대크기와 크기 값, 백분율(%)을 사용할 수 있다.

 

    * 상대크기

xx-small < x-small < small < medium(기본값) < large < x-large < xx-large

 

    * 크기 값 (음수는 안됨)

단위 설명
em 해당 글꼴의 대문자 M의 너비가 기준
ex x-height, 해당 글꼴의 소문자 x의 높이가 기준
px 픽셀, 모니터에 따라 상대적인 크기가 된다.
pt 포인트, 문서에서 많이 사용하는 단위

 

  3. font-style

    : 이탤릭체

    normal은 기본 글꼴, italic을 선택하면 이탤릭체로 표시한다.

 

  4. font-variant

    : 작은 대문자

    영문 소문자를 작은 대문자로 표시한다. 원래 대문자와는 크기가 더 작고 비율이 다르다.

    normal이 기본 글꼴, small-caps하면 작은 대문자로 표시한다.

 

  5. font-weight

    : 글자 굵기

 

    * font-weight 속성

normal 기본 글꼴
bold 진하게
lighter 원래 굵기보다 연하게
bolder 원래 굵기보다 진하게
100~900 사이 값 400은 보통, 700은 진하게가 기준

 

  # font

    : 글꼴 속성을 합쳐서 한꺼번에  표시

    일일이 속성을 쓸 필요 없이 띄어쓰기로 구분해서 나열해도 된다.

    font-sizeline-height만 12pt/14px처럼  / (대시)로 연결해서 표현하면 된다.

 

 

 

  ■ 텍스트 스타일

  1. direction

    : 쓰기 방향

    기본값은 ltr(left-to-right)로 왼쪽에서 오른쪽으로 표시한다. rtl은 반대. 

    한글이나 영어는 속성을 바꿔도 표시순서가 바뀌지 X, 오른쪽 정렬만 된다.

 

  2. text-align

    : 텍스트 정렬

    left, right, center, justify(양쪽 정렬)가 있다. 기본값은 left이고 부모 요소의 값을 상속받는다.

 

  3. text-decoration

    : 텍스트에 줄 긋기

    텍스트 위에 줄을 그을 수 있다. 원래 있던 선들도 설정을 이용해서 없앨 수 있다.

 

    * text-decoration 속성

none 밑줄을 표시하지 않는다.
underline 밑줄을 표시
overline 영역 위에 선
line-through 영역을 가로지르는 선

 

  4. text-overflow

    : 영역을 넘어가는 텍스트 표기하기

    박스 모델 요소 안에 텍스트를 표시할 때 줄을 바꾸지 못하도록 지정하고 넘치는 텍스트는 화면에 보이지 않게 처리하는 경우가 있다. 이때 잘려버린 텍스트가 있다는 것을 표시할 것인지 지정하는 속성이다.

    clip은 넘치는 텍스트를 잘라버리고, ellipsis는 텍스트가 잘리면 말줄임표로 표시한다.

 

  5. text-indent

    : 들여 쓰기

    문단의 첫 글자를 얼마나 들여 쓸지 정할 수 있다. 크기 값이나 백분율(%)을 사용할 수 있다.

 

  6. text-transform

    : 대/소문자 변환

    한글에는 영향을 주지 않고 영문자에만 적용된다.

 

    * text-transform 속성

capitalize 첫 번째 글자를 대문자로 변환
uppercase 모든 글자를 대문자로 변환
lowercase 모든 글자를 소문자로 변환
none 변환하지 X

 

  7. text-shadow

    : 그림자 효과

 

 

 

  ■ 텍스트 간격 조절 스타일

  1. letter-spacing / word-spacing

    : 텍스트 간격

    letter-spacing은 글자와 글자 사이 간격, word-spacing은 단어와 단어 사이 간격을 조절한다. normal과 크기 값을 조절.

 

  2. line-height

    : 줄 간격

    숫자나 단위가 붙은 크기 값, 백분율(%)을 사용할 수 있다. 숫자와 크기 값의 경우 글자 크기를 기준으로 줄 간격을 계산한다.

 

  3. white-space

    : 공백 처리

 

    * white-space 속성

normal(기본값) 여러개의 공백을 하나로 처리
nowrap 여러개의 공백을 하나로 처리하고 줄바꿈을 하지 X
pre 공백을 원본 그대로 표시
pre-line 여러 개의 공백을 하나로 처리하고 줄바꿈 O
pre-wrap 여러 개의 공백을 원본 그대로 표시하고 줄바꿈 O

 

 

 

 

'

리스트 스타일

  1. list-style-type

    : list의 불릿과 번호 스타일

    <ol><ul>을 통틀어서 지정할 수 있다.

 

    * <ol>에서 사용하는 불릿 유형 

decimal 1로 시작하는 십진수 ex) 1, 2, 3 …
decimal-leading-zero 0이 붙는 십진수 ex) 01, 02, 03 …
upper-roman 대문자 로마 숫자 ex) I, II, III, IV …
lower-roman 소문자 로마 숫자 ex) i, ii, iii, iv …
lower-greek 소문자 그리수 문자 ex) α, β, γ, δ …
upper-alpha / upper-latin 대문자 알파벳 ex) A, B, C, D …
lower-alpha / lower-latin 소문자 알파벳 ex) a, b, c, d …
hiragana 히라가나 ex) a, i, u, e, o, ka, ki …
hiragana-iroha 히라가나 번호 붙이기 ex) i, ro, han, ni, ho, he …
katakana 가타가나 ex) A, I, U, E, O, KA, KI …
katakana-iroha 가타가나 번호 붙이기 ex) I, RO, HAN, NI, HO, HE …

 

    * <ul>에서 사용하는 불릿 유형

disc ( ● ) 까만 원
circle ( ○ ) 빈 원
square ( ■ ) 까만 사각형

 

  2. list-style-position

    : 목록에 들여 쓰는 효과

    outsideinside 속성이 있다. 속성을 따로 지정하지 않은 경우(outside)에는 불릿이나 번호가 실제 내용 바깥쪽에 표시되는 반면, inside속성은 실제 내용이 시작되는 위치에 불릿이나 번호를 표시하기 때문에 결과적으로 들여 써진 효과가 난다.

 

  3. list-style-image

    : 불릿에 이미지 삽입

 

  # list-style

    : 리스트 속성을 합쳐서 한꺼번에 표시하기

 

 

 

색상 관련 스타일

  ■ 색상 표기 방법

  1) RGB

    : R(Red). G(Green), B(blue)를 의미한다.

    색이 없으면 0, 최대면 255(16진수에서 ff는 십진수로 255)

    ex) rgb(0,0,0) : 검은색 / rgb(255,255,255) : 흰색

 

  2) 16진수 ( #RRGGBB )

    : 색이 없으면 0, 최대면 ff

    ex) 000000 : 검은색 / ffffff : 흰색

 

  3) HSL

    : H(Hue, 색상), S(Saturation 채도). L(light, 밝기)을 의미한다.

    색상은 각도로 표시(0,360도 : red, 120도 : green, 240도 : blue 등)

    채도는 %로 표시(0%면 회색, 100%면 순색)

    밝기도 %로 표시(0%가 가장 어둡고 100%가 가장 밝음)

 

  4) rgba / hsla

    :  a (alpha)값을 추가해서 투명도 값을 조절해 줄 수 있다. 0 ~ 1 사이의 값으로 조절 가능한다.

    1(가장 불투명), 0(가장 투명)

 

  5) 색이름 표기법

    : 잘 알려진 색상은 이름으로 표시

    ex) red, yellow, black 

 

 

 

  ■ 색상/배경 관련 스타일

  1. color

    : 글자색

 

  2. background-color

    : 배경색

 

  3. background-image

    : 배경 이미지 삽입

    배경 이미지가 요소의 크기보다 작을 경우 이미지가 가로와 세로로 반복되며 채워지게 된다.
    반복하고 싶지 않다면 background-repeat 속성을 이용하여 제어하면 된다.

    background-image:url(파일경로);

 

  4. background-size

    : 배경 이미지 크기

  

    * background-size 속성

auto 이미지의 원래 크기만큼 표시
크기 값 너비와 높이를 지정. (너비만 지정할 경우 너비에 맞게 높이 자동계산)
백분율 원래 이미지를 기준으로 확대/축소
contain

이미지의 너비/높이 비율을 유지하면서 확대/축소
너비나 높이 중 큰 값을 배경 이미지가 삽입되는 요소에 맞춘다.

cover

이미지의 너비/높이 비율을 유지하면서 확대/축소
너비나 높이 중 작은 값을 배경 이미지가 삽입되는 요소에 맞춘다.

 

  5. background-position

    : 배경 이미지 위치 조절, 여러 가지 방법으로 표시한다.

 

     background-position 표시 방법 

  1. 백분율(%) 표시
    : 왼쪽 위부터 너비와 높이값을 넣어주면 된다.

    background-position:위치(%) 위치(%)
  2. 길이(px) 표시
    background-position:길이(px) 길이(px);
  3. 키워드 표시
    수평 위치 : left. right, center
    수직 위치 : top. bottom. center
    background-position:키워드 키워드;

 

  6. background-repeat

    : 배경 이미지 반복

 

    * background-repeat 속성

repeat 브라우저 화면에 가득 찰 때까지 가로와 세로로 반복
repeat-x 브라우저 창의 가로 너비까지 가로로 반복
repeat-y 브라우저 창의 높이까지 세로로 반복
no-repeat 반복 X (한 번만 표시함)

 

  7. background-attachment

    : 배경 이미지 고정, fixedscroll을 사용한다.

 

  8. background-clip / background-origin

  • background-clip :  배경 적용 범위
  • background-origin : 배경 이미지 위치 기준 조절
    둘이 기능은 다르지만 사용하는 속성이 같아서 묶어놨다.  

 

    * background-clip / background-origin 속성

border-box 박스 모델의 가장 외곽인 테두리(border) 까지 적용 / 기준
padding-box 박스 모델에서 테두리를 뺀 패딩(padding)까지 적용 / 기준
centent-box 박스 모델에서 내용(content) 부분에만 적용 / 기준

 

  9. background-origin

    : 배경 이미지 위치 기준 조절

 

  # background 속성

    : 배경 속성을 합쳐서 한꺼번에 사용하기

 

 

 

'Front end > HTML , CSS' 카테고리의 다른 글

[CSS] 반응형 웹과 미디어 쿼리, 가변 레이아웃  (0) 2019.05.14
[CSS] 박스모델 정리  (0) 2019.05.13
[CSS] CSS의 정의와 선택자(Selector)  (0) 2019.05.12
[CSS] WEB2 CSS 정리  (0) 2019.05.12
[HTML] form 관련 tag  (0) 2019.05.11

 

 

공부했던 자료 정리하는 용도입니다.

재배포, 수정하지 마세요.

 

 

 

 

CSS(Cascading Style Sheet)

  : 스타일이 적용되는 방식이 Cacading(단계적으로) 된다고 해서 붙여진 이름.

 

   스타일(Style)  : html 문서의 글꼴이나 색상, 정렬, 배치 등의 겉모습을 결정짓는 내용들을 의미한다.

   스타일 시트(Style Sheet) 

    : 스타일을 관리하기 쉽도록 한 군데 모아놓은 것을 의미.

      Style을 사용하면 웸 페이지의 내용과 디자인을 분리해서 관리할 수 있어서 편리하기 때문에 사용한다.

 

 

  ■ style 특징

  1. 상속된다
    : 태그들은 부모 요소와 자식 요소로 구성되어 있는데 포함하는 태그를 부모 요소, 포함된 태그를 자식 요소라고 한다.

     스타일 시트에서는 부모 요소에 있는 속성들이 자식 요소에 똑같이 적용된다. (그러나 모든 요소들이 상속되지는 X)
  2. 단계적으로 적용된다
    : 여러 스타일이 동시에 있을 경우 우선순위에 따라 적용된다.
      같은 우선순위의 스타일이라면 가장 마지막에 정의된 스타일을 적용한다. (! important등으로 순위를 조정할 수도 O)
      선택자의 우선순위 :  id  >  class >  tag 

 

 

  ■ style의 형식

 

선택자{

   속성:속성 값;}

p{

   color:blue;}

 

 

  ■ style의 위치

  • 내부 스타일시트 : <head></head>사이
  • 외부 스타일시트 : <link>를 사용
     <link href="외부 css파일 경로" rel="stylesheet" type="text/css">
     rel="stylesheet" <link>로 연결하는 파일이 스타일시트 파일이라는 의미
     type="text/css" 스타일 시트 코드가 텍스트 파일로 된 css 유형이라는 의미 

 

 

 

선택자(Selector)

  : 속성이 어디에 적용되는지 표시

 

  ■ 선택자의 종류

  1) 전체 선택자 ( * )

    : 모든 요소에 스타일 적용

    ex) * {font-size:12px;} : 페이지의 모든 글자를 12px로 설정

 

  2) 태그 선택자

    : 특정 태그에 스타일 적용 

    ex) p { font-family:"돋움"; } : 웹 페이지의 모든 <p>안에 있는 글꼴을 돋움으로 설정

 

  3) 클래스 선택자 ( . )

    : 특정 클래스에 스타일 적용

    클래스 선택자를 사용하기 전에 미리 태그에서 클래스의 이름을 지정해줘야 한다.

    만약 클래스 선택자를 부분에만 이용하고 싶다면 <span>을 이용한다.

     ex) <p class="name"> : 이름 붙일 때는. 사용하지 X

          .name { color:red; } : 클래스 이름이 name인 태그의 글자색을 빨간색으로 설정(앞에 점(.)을 붙여야 한다.)

   

  4) id 선택자 ( # )

    : 특정 id에 스타일 적용

     클래스 선택자는 문서 안에서 여러 번 반복해서 사용할 수 있지만 id 선택자는 요소의 크기나 위치 등 레이아웃을 지정할 때 주로 사용하기 때문에 클래스 선택자와 달리 문서 안에서 한 번만 사용해야 한다.

     ex) <p id="id 선택자 이름"> : <p>의 id를 지정

     #id 선택자 이름 { 속성 : 속성 값; }  

 

    * 클래스 선택자와 id 선택자의 차이점 

  • 클래스 선택자 : 페이지 안에서 여러 번 사용 가능
  • id 선택자 : 페이지 안에서 한 번만 사용해야 함.

 

  5) 하위 선택자

    : 모든 하위 요소에 스타일 적용

     적용대상을 한정시킬 때 사용하는 선택자이다.

    ex) section p { color:red; } : <section>안의 모든 <p>안의 글자색을 빨간색으로 설정.

 

  6) 자식 선택자

    : 자식 요소에만 스타일 적용

    ex) section > p { color:red } : <section>안의 <p>중 자식 요소인 <p>의 글자색만 빨간색으로 설정

 

    * 하위 선택자와 자식 선택자의 차이점

  • 하위 선택자 : 자식 요소뿐만 아니라 그 밑의 자식 요소까지 계속 적용됨.
  • 자식 선택자 : 바로 밑의 자식 요소까지만 스타일이 적용됨.

 

  7) 인접 형제 선택자

    : 첫 번째 동생 요소에 스타일 적용

      같은 부모를 가진 형제 요소 중 첫 번째로 나오는 동생 요소에만 스타일을 적용한다.
     (
같은 부모를 가진 요소들을 형제 요소라고 하는데 먼저 나오는 요소를 형 요소, 나중에 나오는 요소를 동생 요소라고 한다.)

    ex) h1 + p { text-decoration:underline; } : <h1> 다음에 오는 <p>중 첫 번째 <p>에만 밑줄.

 

  8) 형제 선택자

    : 형제 요소에 스타일 적용

      인접 형제 선택자와 달리 모든 형제 요소에 다 적용된다.

    ex) h1 - p { text-decoration:underline; } : <h1> 다음에 오는 모든 형제 <p>에 밑줄.

 

  9) 그룹 선택자

    : 스타일 한꺼번에 정의

     여러 선택자를 묶어 한번에 스타일을 설정할 때 사용한다.

    ex) a, p { color:red; } : <a> <p>안의 글자색을 빨간색으로 설정.

 

 

 

속성 선택자(Attribute Selector)

  : [ ]안에 스타일을 적용하려는 속성을 지정하면 된다. 

   [속성] { 속성:속성 값; }

 

1) [속성 = 값]

  : 일치하는 요소에 적용

   주어진 속성과 값이 일치하는 요소를 찾아 스타일을 적용한다.

    ex) a [ target="_blank"] { background-color:blue; }

          : 링크 중에서 target="_blank"(새 탭으로 열리는)인 태그의 글자를 파란색으로 지정

  

2) [속성 ~= 값]

  : 하나만 일치해도 적용

   ~ (틸드)를 사용하면 속성과 값이 일치하는 요소를 찾아서 적용하는데, 이때 비교할 값이 여러 개일 경우 그중 하나만 일치해도 스타일을 적용한다.

   ex) [ class="button"] { border-radius:10px; }

       : class="button"처럼 값이 정확하게 일치하거나 class="flat button"처럼 여러 속성일 경우에도 적용된다.

         그러나 class="flat-button"이나 class="buttons"처럼 요소의 값이 정확하게 일치하지 않을 때는 적용 X

  

3) [속성 ^= 값]

  : 지정한 문자로 시작하는 속성에 적용

   ^ (캐럿)이 붙으면 지정한 문자로 시작하는 속성 값에 대해서만 스타일을 적용한다.

  ex) a [ href^="http://" ] { font-style:italic; } : href 속성 값이 http://로 시작하면 기울임 꼴을 적용

 

4) [속성 $= 값]

  : 지정한 문자로 끝나는 속성에 적용

  ex) a [ href$=".zip" ] {background:url(zip_icon.gif) } : 압축파일이면 링크에 스타일을 적용

 

5) [속성 |= 값]

  : 지정한으로 시작하면 적용

  ex) a [ class|="red" ] { background:url(red.jpg); } : <a>중 class이름이 red로 시작하는 모든 요소에 배경그림 삽입.

 

6) [속성 *= 값]

  : 위치와 상관없이 해당 값이 포함되어 있으면 적용

  ex) p [ class*="accent" ] { font-style:italic; } : <p>중에 class이름에 accent가 들어가 있다면 기울임 꼴 적용   

 

 

 

가상 클래스(Pseudo Class)

  : 코드에는 실제로 존재하지 않지만 임의로 가상의 선택자를 지정하여 사용하는 것을 말한다.

 

   가상 클래스 선택자의 종류 

  1. 링크와 관련된 가상 클래스 선택자
  2. 위치를 기준으로 하는 가상 클래스 선택자
  3. 그 외의 가상 클래스

 

1. 링크와 관련된 가상 클래스 선택자

  1) :link

    : 아직 방문하지 않은 링크에 적용

     페이지의 하이퍼링크 중에서 사용자가 아직 방문하지 않은 링크에 대한 스타일을 적용한다.

      ex) a:link { color:black; text-decoration:none; } : <a>중 텍스트 링크를 밑줄 없이 검은색으로 설정

 

  2) :visited

    : 한 번 이상 방문한 링크에 적용

    페이지의 링크 중에서 한 번 이상 방문한 링크에 대한 스타일을 적용한다.

    방문한 페이지는 기본적으로 자주색(purple)으로 표시된다.

    ex) a:visited { color:black; } : 방문했던 링크를 검은색으로 표시 

 

  3) :active

    : 활성화되었을 때의 스타일

     해당 요소가 활성화되었을 때 스타일을 지정. 만약 링크라면 링크를 클릭했을 때 스타일

     ex) a:active { color:black; } : 클릭하는 순간 검은색이 되도록 설정

 

  4) :hover

    : 마우스 포인터를 올려놓았을 때의 스타일

    해당 요소 위로 마우스 포인터를 올려놓았을 때의 스타일을 지정한다. 롤오버(rollover)를 만드는 선택자이다.

    ex) a:hover { color:red; text-decoration:underline; }

     : 링크 위로 마우스 포인터를 올려놓으면 밑줄과 함께 글자색을 빨간색이 되도록 설정

 

  5) :focus

    : 초점이 맞춰졌을 때의 스타일

    커서를 갖다 놓는다거나 Tab을 눌러 초점을 이동했을 때의 스타일

    ex) p:focus { background-color:yellow; } : <p>의 텍스트 단락 위로 커서를 올려놓거나 키보드의 Tab을 눌러 텍스트 단락까지 왔을 때(초점이 맞춰졌을 때) 텍스트 단락의 배경색을 노란색으로 보이도록 설정

 

 

 

2. 위치를 기준으로 하는 가상 클래스 선택자

  1) :root

    : root요소에 스타일 적용

    html 페이지의 경우 root요소는 html이다. 문서 안에 전체적으로 똑같이 적용할 스타일이 있을 경우 사용한다.

 

  2) :nth-child(n) / :nth-last-child(n)

    : 자식 요소가 여러 개 있는 경우에 사용.

    여러 개의 항목이 일렬(가로나 세로) 나열되어 있는 경우, class나 id를 사용하지 않고 스타일을 지정할 항목이 몇 번째에 있는지 따져서 스타일을 적용하고 싶을 때 사용한다. 주로 메뉴 항목에 사용한다. nth-child(n)은 n번째 자식 요소에 스타일을 적용하고, nth-last-child(n)은 끝에서부터 n번째인 자식 요소에 스타일을 적용한다.

  •  div p:nth-child(3) : <div>안에서 3번째 자식 요소인 <p>요소에 적용
  •  div p:nth-child(odd), div p:nth-child(2n+1) : <div>안에서 홀수 번째의 자식 요소인  <p>요소에 적용 
  •  div p:nth-child(even), div p:nth-child(2n+0), p:nth-child(2n) : <div>안에서 짝수 번째의 자식 요소인 <p>요소에 적용 

 

  3) nth-of-type(n), nth-last-of-type(n)

    : 같은 태그가 여러 개 나열되어 있는 경우 사용

    같은 태그가 여러 개 나열되어 있고 class나 id를 사용하지 않았을 때, 몇 번째의 태그인지 지정해서 스타일을 적용할 수 있다.

  •  :nth-of-type(n)  : 앞에서 n번째 요소에 스타일 적용
  •  :nth-last-of(n)  : 끝에서부터 n번째 요소에 스타일을 적용

 

  4) :first-child, :last-child

    :  :first-child 는 첫 번째 자식 요소에 적용,  :last-child 는 마지막 자식 요소에 적용한다.

    ex) ul li:first-child { color:red; } : <ul>의 첫 번째 <li>자식 요소의 글자색을 빨간색으로 지정

 

  5) :first-of-type, :last-of-type

    : 형제관계에 있는 요소 중에서  first-of-type 은 첫 번째 요소에,  last-of-type 은 마지막 요소에 스타일을 적용한다.

 

  6) :only-child, :only-of-type

    : 요소가 하나뿐일 때 적용

     only-child 는 부모 요소 안의 자식 요소가 하나밖에 없을 때 스타일을 적용하며,  only-of-type  only-child 와 비슷하게 해당 요소가 유일한 요소일 때 스타일을 적용한다.

 

  7) :target

    : 앵커의 목적지가 되는 부분의 스타일

    ex)  #name:target { background-color:blue; } : #name인 곳으로 링크하게 될 경우 #name의 배경색을 파란색으로 설정.

 

  8) :enabled, :disabled, :checked

    : 예를 들면 사용자가 입력하게 해야 하거나 할 때는 텍스트 필드가 enabled 상태지만, 입력을 못하게 하고 보여주기만 해야 할 때는 disabled 상태이다.  이때 각각의 상태일 때 스타일을 :enabled:disabled를 사용해서 적용할 수 있다.

    :checked는 radio button이나 checkbox가 체크되었을 때 적용할 스타일을 지정한다.

    ex) textarea:disabled { cursor:pointer; } : 텍스트 영역 필드가 disabled상태일 경우 커서를 갖다 댔을때 내용을 입력할 수 있는 커서로 변하지 않고 포인터 형태로 표시되도록 설정.

 

 

 

3. 그 외의 가상 클래스

  : 실제로 존재하지 않지만 존재하는 것처럼 스타일을 지정할 수 있는 선택자

 

  1) ::before, ::after

    : 특정한 요소 앞, 뒤에 내용 생성

    특정한 요소의 내용 앞(::before)이나 뒤(::after)에 텍스트나 이미지를 추가하는 등의 내용을 만들 수 있다.

    ex) p::before { content:"내용 :"; } : 모든 <p>의 텍스트 단락 맨 앞에 "내용 :"이라는 내용을 추가

 

  2) ::selection

    : 드래그됐을 때 선택되는 영역의 스타일

    사용자가 마우스로 선택했을 때 커서가 드래그되어 선택되는 영역의 스타일을 지정할 수 있다.

    ex) ::selection { color:yellow; } : 마우스로 텍스트 부분을 드래그했을 때 노란색이 되도록 설정

 

  3) :not

    : 제외하고 적용

    ex) :not(h1) { color:blue; } : h1요소가 아닌 모든 요소의 글자색을 파란색으로 지정

 

 

 

'Front end > HTML , CSS' 카테고리의 다른 글

[CSS] 박스모델 정리  (0) 2019.05.13
[CSS] Style 정리  (0) 2019.05.13
[CSS] WEB2 CSS 정리  (0) 2019.05.12
[HTML] form 관련 tag  (0) 2019.05.11
[HTML] html 태그 정리  (8) 2019.05.10

+ Recent posts