본문 바로가기
HTML&CSS

CSS 속성

by 융디's 2024. 4. 19.
728x90
CSS 속성

CSS 속성

@2024.03.29

단위

절대 길이 단위

  • px(픽셀) : 화면 해상도에 상대적인 크기를 정의
  • in(인치) : 인치 단위를 사용하여 크기 정의
  • cm(센티미터) : 센티미터 단위를 사용하여 크기 정의
  • mm(밀리미터) : 밀리미터 단위를 사용하여 크기 정의
  • pt(포인트) : 포인트 단위를 사용하여 크기 정의
  • pc(피카) : 피카 단위를 사용하여 크기 정의

상대 길이 단위

  • %(퍼센트) : 부모 요소에 상대적인 크기를 정의
  • em : 폰트 크기의 배수로 크기를 정의
  • rem : 루트 요소의 폰트 크기의 배수로 크기를 정의
  • vw(Viewport Width) : 뷰포트 너비의 백분율로 크기를 정의
  • vh(Viewport Height) : 뷰포트 높이의 백분율로 크기를 정의

상대 시간 단위

  • s(초) : 시간
  • ms(밀리초) : 시간
    • 1s = 1000ms

기타 단위

  • auto : 브라우저가 자동으로 크기 조절
  • inherit : 부모 요소에서 상속된 값을 사용
  • inital : 속성의 초깃 값으로 설정
  • unset : 상속된 값을 제거하고 초깃값을 설정

색상

  • #000000 : HEX 코드 단위
  • rgb(red, green, blue) : RGB 색상 단위
  • rgba(red, green, blue, 반투명) : RGBA 색상 단위
  • hsl(hue, saturation, lightness) : HSL 색상 단위
  • hsla(hue, saturation, lightness, alpha) : HSLA 색상 단위

URL

💡
이미지나, 파일을 불러올 때 URL 단위를 사용
  • background-image : 배경으로 이미지 출력
    • CSS3부터는 여러 개의 배경 이미지 적용이 가능
    • 여러 배경 사용 시 왼쪽에 위치한 이미지가 앞으로 나오게 됨.
    • 이미지가 층을 이루어 출력
    /* 단일 배경 이미지 설정 */
    background-image: url("image.jpg");
    
    /* 여러 개의 배경 이미지 설정 */
    background-image: url("image1.jpg"), url("image2.jpg"), url("image3.jpg");
  • background-size : 1개 또는 2개의 크기 단위(너비, 높이)를 적용하며 그림의 크기 조절
    /* 배경 이미지의 크기를 지정하지 않음 */
    background-size: auto;
    
    /* 배경 이미지의 너비를 100px로, 높이는 자동으로 설정 */
    background-size: 100px auto;
    
    /* 배경 이미지의 너비와 높이를 50%로 설정 */
    background-size: 50%;
    
    /* 배경 이미지의 너비와 높이를 각각 200px와 100px로 설정 */
    background-size: 200px 100px;
    
    /* 배경 이미지의 너비를 100px로, 높이는 브라우저의 높이에 맞춰 설정 */
    background-size: 100px 100vh;
    
    /* 배경 이미지를 커버하도록 확대하여 크기를 조정 */
    background-size: cover;
    
    /* 배경 이미지를 요소에 맞게 축소하여 크기를 조정 */
    background-size: contain;
  • background-repeat : 그림이 패턴을 이루게 여러개 출력
    /* 이미지를 수평으로 반복하지 않습니다. */
    background-repeat: no-repeat;
    
    /* 이미지를 수평으로 반복합니다. */
    background-repeat: repeat-x;
    
    /* 이미지를 수직으로 반복합니다. */
    background-repeat: repeat-y;
    
    /* 이미지를 수평 및 수직으로 반복합니다. (디폴트 값) */
    background-repeat: repeat;
    
    /* 이미지를 수평 및 수직으로 반복하지 않고, 한 번만 표시합니다. */
    background-repeat: space;
    
    /* 이미지를 수평 및 수직으로 반복하지 않고, 원본 크기로 중앙에 위치시킵니다. */
    background-repeat: round;
  • background-attachment : 배경 이미지를 어떠한 방식으로 화면에 붙일 것인지 지정하는 속성
    /* 이미지를 수평으로 반복하지 않습니다. */
    background-repeat: no-repeat;
    
    /* 이미지를 수평으로 반복합니다. */
    background-repeat: repeat-x;
    
    /* 이미지를 수직으로 반복합니다. */
    background-repeat: repeat-y;
    
    /* 이미지를 수평 및 수직으로 반복합니다. (디폴트 값) */
    background-repeat: repeat;
    
    /* 이미지를 수평 및 수직으로 반복하지 않고, 한 번만 표시합니다. */
    background-repeat: space;
    
    /* 이미지를 수평 및 수직으로 반복하지 않고, 원본 크기로 중앙에 위치시킵니다. */
    background-repeat: round;
  • background-position : 요소의 배경 이미지의 위치를 지정하는 속성
    /* 배경 이미지를 왼쪽 상단으로 배치합니다. */
    background-position: left top;
    
    /* 배경 이미지를 오른쪽 하단으로 배치합니다. */
    background-position: right bottom;
    
    /* 배경 이미지를 가운데로 배치합니다. */
    background-position: center;
    
    /* 배경 이미지를 수평으로는 가운데, 수직으로는 위쪽으로 20px만큼 이동하여 배치합니다. */
    background-position: center top 20px;
    
    /* 배경 이미지를 수평으로는 50%, 수직으로는 30% 위치에 배치합니다. */
    background-position: 50% 30%;
    
    /* 배경 이미지를 오른쪽으로 10px, 아래로 20px 이동하여 배치합니다. */
    background-position: right 10px bottom 20px;

Display

💡
요소를 표시하는 방법을 지정하는 데 사용
  • none : 태그를 화면에서 숨긴다.
  • block : 태그를 블록 수준 요소로 표시
    • 블록 요소는 항상 새로운 줄에서 시작하며, 너비는 부모 요소의 100% 차지하고, 수직으로 쌓인다.
  • inline : 태그를 인라인 수준 요소로 표시
    • 줄의 일부로 처리되며, 요소의 너비와 높이는 해당 요소의 콘텐츠에 따라 결정
  • inline-block : 태그를 인라인-블록 수준 요소로 표시
    • 줄의 일부로 처리되나, 블록 요소처럼 너비와 높이를 가질 수 있다.
/* 요소를 블록 수준 요소로 표시 */
display: block;

/* 요소를 인라인 수준 요소로 표시 */
display: inline;

/* 요소를 인라인-블록 수준 요소로 표시 */
display: inline-block;

/* 요소를 화면에서 숨김 */
display: none;

Oipacity

💡
태그의 투명도를 조절하는 스타일 속성으로 0.0~1.0사이의 숫자를 입력하며, 숫자가 클수록 불투명해진다.
  • 모든 자식 요소에도 영향을 미친다
    ⇒ 요소에 적용된 투명도는 해당 요소의 모든 자식에게도 동일하게 적용
    • 일부의 요소에만 주고 싶다면 자식 요소 일부에게도 따로 지정해야 한다..
    .container {
      opacity: 0.5; /* 부모 요소의 투명도를 50%로 설정 */
    }
    
    .inner {
      opacity: 1; /* 자식 요소의 투명도를 100%로 설정 */
    }

박스

div는 너비와 높이가 기본적으로 100픽셀
  • width : 박스의 너비
  • height : 박스의 높이

요소의 크기

  • padding : 콘텐츠 주위 글자 (내부 여백) ⇒ 요소의 콘텐츠와 테두리 사이의 공간
    /* 위, 오른쪽, 아래, 왼쪽 순서로 패딩을 지정 */
    padding: 10px 20px 15px 30px; 
    
    /* 위쪽 패딩을 10픽셀로 설정 */
    padding-top: 10px; 
    
    /* 오른쪽 패딩을 20픽셀로 설정 */
    padding-right: 20px; 
    
    /* 아래쪽 패딩을 15픽셀로 설정 */
    padding-bottom: 15px;
    
    /* 왼쪽 패딩을 30픽셀로 설정 */ 
    padding-left: 30px;
    
    /* 위, 아래, 왼쪽, 오른쪽 모두 동일한 패딩을 적용 */ 
    padding: 10px; 
  • border : padding의 바깥쪽에 놓인 실선 ⇒ 요소의 가장자리
    /* 테두리 색상, 스타일, 굵기를 함께 지정 */
    border: 1px solid #000000;
    
    /* 위, 오른쪽, 아래, 왼쪽 */
    border: 1px solid #000000 2px dashed #ff0000 3px dotted #00ff00 4px double #0000ff;
    
    /* 위쪽 테두리 설정 */
    border-top: 1px solid #000000;
    
    /* 오른쪽 테두리 설정 */
    border-right: 2px dashed #ff0000;
    
    /* 아래쪽 테두리 설정 */
    border-bottom: 3px dotted #00ff00;
    
    /* 왼쪽 테두리 설정 */
    border-left: 4px double #0000ff;
  • margin : 요소의 바깥쪽을 둘러싼 공간 ⇒ [ 요소 <—> 요소 ] 요소와 요소 사이 공간
      /* 위, 오른쪽, 아래, 왼쪽 */
      margin: 10px 20px 15px 30px;
      
      /* 위쪽 마진을 10픽셀로 설정 */
      margin-top: 10px;
      
      /* 오른쪽 마진을 20픽셀로 설정 */
      margin-right: 20px;
      
      /* 아래쪽 마진을 15픽셀로 설정 */
      margin-bottom: 15px;
      
      /* 왼쪽 마진을 30픽셀로 설정 */
      margin-left: 30px;

테두리

  • border-width : 테두리의 너비를 지정
    border-width: 2px;
    
    /* 위, 오른쪽, 아래, 왼쪽 */
    border-width: 1px 2px 3px 4px;
    
    /* 위쪽 테두리의 너비를 1픽셀로 설정 */
    border-top-width: 1px;
    
    /* 오른쪽 테두리의 너비를 2픽셀로 설정 */
    border-right-width: 2px;
    
    /* 아래쪽 테두리의 너비를 3픽셀로 설정 */
    border-bottom-width: 3px;
    
    /* 왼쪽 테두리의 너비를 4픽셀로 설정 */
    border-left-width: 4px;
  • border-style : 테두리의 형태 지정
    /* 위쪽 테두리의 스타일을 실선으로 설정 */
    border-top-style: solid;
    
    /* 오른쪽 테두리의 스타일을 점선으로 설정 */
    border-right-style: dotted;
    
    /* 아래쪽 테두리의 스타일을 대시선으로 설정 */
    border-bottom-style: dashed;
    
    /* 왼쪽 테두리의 스타일을 이중선으로 설정 */
    border-left-style: double;
    
    /* 위쪽 테두리의 스타일을 홈이 파여 있는 효과로 설정 */
    border-top-style: groove;
    
    /* 오른쪽 테두리의 스타일을 돌출된 효과로 설정 */
    border-right-style: ridge;
    
    /* 아래쪽 테두리의 스타일을 요소의 내부로 들어간 효과로 설정 */
    border-bottom-style: inset;
    
    /* 왼쪽 테두리의 스타일을 요소의 외부로 나온 효과로 설정 */
    border-left-style: outset;
  • border-color : 테두리 색상 지정
    border-color: #000000;
    
    /* 위, 오른쪽, 아래, 왼쪽 */
    border-color: #ff0000 #00ff00 #0000ff #ffff00;
    
    /* 위쪽 테두리 색상을 빨간색(#ff0000)으로 설정 */
    border-top-color: #ff0000;
    
    /* 오른쪽 테두리 색상을 녹색(#00ff00)으로 설정 */
    border-right-color: #00ff00;
    
    /* 아래쪽 테두리 색상을 파란색(#0000ff)으로 설정 */
    border-bottom-color: #0000ff;
    
    /* 왼쪽 테두리 색상을 노란색(#ffff00)으로 설정 */
    border-left-color: #ffff00;
  • border-raduis : 테두리가 둥근 사격형 또는 원을 만들 수 있다.
    border-radius: 10px;
    
    /* 왼쪽 상단, 오른쪽 상단, 오른쪽 하단 , 왼쪽 하단 */
    border-radius: 10px 20px 30px 40px;
    
    /* 왼쪽 상단 코너의 반지름을 10픽셀로 설정 */
    border-top-left-radius: 10px;
    
    /* 오른쪽 상단 코너의 반지름을 20픽셀로 설정 */
    border-top-right-radius: 20px;
    
    /* 오른쪽 하단 코너의 반지름을 30픽셀로 설정 */
    border-bottom-right-radius: 30px;
    
    /* 왼쪽 하단 코너의 반지름을 40픽셀로 설정 */
    border-bottom-left-radius: 40px;

폰트

h1 태그의 기본 크기는 32픽셀, p 태그의 기본 크기는 16픽셀

일반 폰트의 두께는 400, 두꺼운 폰트의 두께는 700
  • font-size : 글자의 크기를 지정하는 스타일 속성
  • font-family : 폰트를 지정하는 스타일 속성
    • 보통 한 단어로 이루어진 폰트는 따옴표를 사용하지 않으나, 그 이상은 꼭 사용해야 한다.
    • 사용자에게 폰트가 설치되어 있지 않은 경우를 대비해 여러 개의 폰트를 작성
    • 글로벌한 애플리케이션의 경우 가장 마지막 폰트에는 Serif 폰트(명조체), Sans-serif 폰트(고딕체), Mono space 폰트를 적용
    /* 기본 세리프 글꼴을 사용합니다. */
    font-family: serif;
    
    /* 기본 세리프 글꼴 또는 Arial 세리프 글꼴을 사용합니다. */
    font-family: serif, Arial;
    
    /* Arial 세리프 글꼴 또는 기본 세리프 글꼴을 사용합니다. */
    font-family: Arial, serif;
    
    /* 모든 문자가 동일한 너비를 갖는 고정폭 글꼴을 사용합니다. */
    font-family: monospace;
    
    /* Fantasy 글꼴 또는 Comic Sans MS 글꼴을 사용합니다. */
    font-family: fantasy, "Comic Sans MS";
  • font-weight : 폰트의 두께를 지정하는 스타일 속성
    /* 기본 글꼴 두께를 사용합니다. */
    font-weight: normal;
    
    /* 굵은 글꼴 두께를 사용합니다. */
    font-weight: bold;
    
    /* 현재 요소의 상위 요소보다 더 굵게 표시됩니다. */
    font-weight: bolder;
    
    /* 현재 요소의 상위 요소보다 더 얇게 표시됩니다. */
    font-weight: lighter;
    
    /* 700단위로 굵게 표시됩니다. */
    font-weight: 700;
  • line-height : 글자의 높이를 지정하는 스타일 속성
    /* 픽셀 값으로 줄 간격을 지정합니다. */
    line-height: 24px;
    
    /* em 값으로 줄 간격을 지정합니다. */
    line-height: 1.5em;
    
    /* 현재 글꼴 크기의 1.2배로 줄 간격을 지정합니다. */
    line-height: 1.2;
    
    /* 브라우저의 기본 줄 간격을 사용합니다. */
    line-height: normal;

텍스트

  • text-align : 글자 정렬과 관련된 스타일 속성
    /* 텍스트를 왼쪽으로 정렬합니다. */
    text-align: left;
    
    /* 텍스트를 오른쪽으로 정렬합니다. */
    text-align: right;
    
    /* 텍스트를 가운데로 정렬합니다. */
    text-align: center;
    
    /* 텍스트를 양쪽 맞춤으로 정렬합니다. */
    text-align: justify;
  • text-decoration : a 태그의 밑줄을 제거하는 속성
    /* 텍스트에 어떠한 장식도 적용하지 않습니다. */
    text-decoration: none;
    
    /* 텍스트에 밑줄을 추가합니다. */
    text-decoration: underline;
    
    /* 텍스트 위에 줄을 추가합니다. */
    text-decoration: overline;
    
    /* 텍스트 중앙에 취소선을 추가합니다. */
    text-decoration: line-through;
    
    /* 텍스트를 깜빡이도록 표시합니다. */
    text-decoration: blink;

Postion

  • static : 요소의 기본 위치
    • 설정이 없으면 문서 흐름에 따라 배치
  • relative : 문서 흐름에 따라 배치하고, 상대적으로 이동 가능
    • 이동 시에는 자신의 원래 위치를 기준으로 한다.
    • 상대적 위치를 가진 요소의 기준점은 자기 자신의 좌측 상단 모서리
  • absolute : 문서의 상대적으로 위치한 부모 요소에 배치
    • 부모 요소 중 가장 가까운 relative, absolute, fixed 중 하나가 해당 요소의 기준점
    • 만약 부모 요소가 없다면, 문서 전체를 기준으로 위치를 지정
  • fixed : 뷰포트에 대해 고정시킨다.
    • 스크롤을 해도 항상 같은 위치에 있다.
  • sticky : relatice + fixed의 혼합
    • 스크롤이 특정 위치에 도달하면 relative 한 위치로 변경
    • 그전까지는 문서의 스크롤 흐름에 따라 배치된다.
/* 요소를 문서 흐름에 따라 일반적인 위치에 배치합니다. */
position: static;

/* 요소를 자신의 원래 위치를 기준으로 배치합니다. */
position: relative;

/* 요소를 문서 상의 상대적인 위치가 아닌 가장 가까운 위치 지정 조상 요소를 기준으로 배치합니다. */
position: absolute;

/* 요소를 뷰포트를 기준으로 고정된 위치에 배치합니다. */
position: fixed;

/* 요소를 스크롤 영역 내에서 상대적인 위치로 지정하고, 스크롤이 특정 임계점을 넘어서면 고정 위치에 요소를 배치합니다. */
position: sticky;

x-index

💡
요소의 쌓임 순서를 지정하는 데 사용하며, 값이 높을수록 요소가 다른 요소 위에 쌓이게 된다.
  • position 속성이 static 이상인 요소에만 적용
  • 요소의 쌓임 순서를 조절하여, 필요에 따라 요소들을 겹치게 할 수 있다.
    • 레이어를 구성하거나, 팝업 창 등을 관리할 때 유용
    /* 기본 값 */
    z-index: auto;
    
    /* 요소를 다른 요소보다 낮게 쌓습니다. */
    z-index: -1;
    
    /* 요소를 다른 요소와 동일한 쌓임 순서를 가지게 합니다. */
    z-index: 0;
    
    /* 요소를 다른 요소 위에 쌓입니다. */
    z-index: 1;
    
    /* 요소를 다른 요소 위에 쌓입니다. */
    z-index: 2;

float

💡
요소를 왼쪽이나 오른쪽으로 띄어서 텍스트나 다른 인라인 요소가 그 주위를 감쌀 수 있도록 만든다
  • 일반적으로 텍스트 주변에 이미지를 둘 때나 다중 칼럼 레이아웃을 만들 때 유용
  • 주의! float 속성을 사용하면 요소는 떠다니는 상태이므로, 겹치는 상황이 발생

    부모 요소에 clear 속성을 사용하여, 부모 요소의 경계 내 부요된 요소를 클리어 가능
    /* 요소를 왼쪽으로 띄웁니다. */
    float: left; 
    
    /* 요소를 오른쪽으로 띄웁니다. */
    float: right; 
    
    /* 요소를 띄우지 않습니다. */
    float: none; 
    
    /* 요소를 부모 요소의 왼쪽에 띄웁니다. */
    float: inherit; 
    ------------------------------------------------------------------------------
    /* 왼쪽으로 띄워진 요소들의 영향을 제거합니다. */
    clear: left;
    
    /* 오른쪽으로 띄워진 요소들의 영향을 제거합니다. */
    clear: right;
    
    /* 요소를 띄우지 않습니다. */
    clear: none;
    
    /* 부모 요소의 왼쪽에 띄워진 요소들의 영향을 제거합니다. */
    clear: inherit;
    각각 float : left, right을 주고 텍스트는 clear:both 준 결과
    clear 속성을 뺀 결과 ⇒ 요소 겹침

그림자

  • box-shadow : 요소 주위에 그림자 효과 추가
    /* 가로 위치 | 세로 위치 | 흐림 정도 | 그림자 색상 */
    text-shadow: 1px 1px 2px #000000;
  • text-shadow : 텍스트에 그림자 효과를 추가
    /* 가로 위치 | 세로 위치 | 흐림 정도 | 그림자 색상 */
    text-shadow: 1px 1px 2px #000000;

728x90

'HTML&CSS' 카테고리의 다른 글

웹 페이지 레이아웃  (1) 2024.04.19
CSS 선택자  (1) 2024.04.19
CSS  (1) 2024.04.19
시맨틱 구조  (1) 2024.04.19
TAG  (1) 2024.04.19