AD JB Toolbox 01

CSS / Tutorial / 삼각형 만드는 방법

CSS의 border 속성으로 삼각형을 만들 수 있습니다. 여러 형태의 삼각형을 만들고, 그 삼각형을 회전하는 방법을 알아봅니다.

삼각형 만들기

기본

  • HTML 문서에 다음과 같이 내용이 없는 요소를 하나 만듭니다.
<div class="triangle"></div>
  • 가로와 세로의 크기를 0으로 만듭니다.
  • 아래쪽, 왼쪽, 오른쪽에 테두리를 추가하면 사각형을 만들 수 있습니다.
.triangle {
  width: 0px;
  height: 0px;
  border-bottom: 360px solid #666666;
  border-left: 180px solid #666666;
  border-right: 180px solid #666666;
}

  • 왼쪽 테두리의 색을 투명으로 하고...
.triangle {
  width: 0px;
  height: 0px;
  border-bottom: 360px solid #666666;
  border-left: 180px solid transparent;
  border-right: 180px solid #666666;
}

  • 오른쪽 테두리의 색을 투명으로 하면 삼각형이 만들어집니다.
.triangle {
  width: 0px;
  height: 0px;
  border-bottom: 360px solid #666666;
  border-left: 180px solid transparent;
  border-right: 180px solid transparent;
}

  • 테두리의 두께를 적절히 변경하면 여러 형태의 삼각형을 만들 수 있습니다.
.triangle {
  width: 0px;
  height: 0px;
  border-bottom: 360px solid #666666;
  border-left: 180px solid transparent;
  border-right: 480px solid transparent;
}

정삼각형

  • 정삼각형의 높이는 밑변 길이의 반의 1.732배입니다.
  • 직접 계산하거나, calc 속성으로 적절히 높이를 정해주면 정삼각형이 만들어집니다.
.triangle {
  width: 0px;
  height: 0px;
  border-bottom: calc( 180px * 1.732 ) solid #666666;
  border-left: 180px solid transparent;
  border-right: 180px solid transparent;
}

직각삼각형

  • 왼쪽 테두리의 크기를 0으로 하면 직각삼각형이 만들어집니다.
.triangle {
  width: 0px;
  height: 0px;
  border-bottom: 360px solid #666666;
  border-left: 0px solid transparent;
  border-right: 240px solid transparent;
}

삼각형 회전하기

방법 1

  • 테두리에 적용되는 값을 변경하면 삼각형을 회전 시킬 수 있습니다.
  • 이 방법의 단점은 90도씩만 회전 가능하다는 것입니다.
.triangle {
  width: 0px;
  height: 0px;
  border-bottom: 360px solid #666666;
  border-left: 180px solid transparent;
  border-right: 180px solid transparent;
}

.triangle {
  width: 0px;
  height: 0px;
  border-left: 360px solid #666666;
  border-top: 180px solid transparent;
  border-bottom: 180px solid transparent;
}

.triangle {
  width: 0px;
  height: 0px;
  border-top: 360px solid #666666;
  border-left: 180px solid transparent;
  border-right: 180px solid transparent;
}

.triangle {
  width: 0px;
  height: 0px;
  border-right: 360px solid #666666;
  border-top: 180px solid transparent;
  border-bottom: 180px solid transparent;
}

방법 2

  • 원하는 만큼 회전 시키려면 transform 속성의 rotate를 사용합니다.
  • 각도를 입력하면 자유롭게 회전 시킬 수 있습니다.
.triangle {
  width: 0px;
  height: 0px;
  border-bottom: 360px solid #666666;
  border-left: 180px solid transparent;
  border-right: 180px solid transparent;
  transform: rotate( 45deg );
}

같은 카테고리의 다른 글
CSS 강좌 / 유동적인 크기로 반응형 레이아웃 시작하기

CSS 강좌 / 유동적인 크기로 반응형 레이아웃 시작하기

본문의 최대 폭, min()·clamp(), 카드와 이미지의 유동 크기를 비교합니다. 전체 예제와 긴 문자열 실습으로 좁은 공간에서도 내용을 유지하는 방법을 배웁니다.

CSS 강좌 / 폼 상태와 키보드 초점 꾸미기

CSS 강좌 / 폼 상태와 키보드 초점 꾸미기

폼의 필수·유효성·비활성·읽기 전용 상태와 키보드 초점을 구분합니다. 실제 제출 항목을 확인하고 작은 화면·큰 글자에 대응하는 전체 예제를 제공합니다.

CSS 강좌 / Grid로 행과 열 만들기

CSS 강좌 / Grid로 행과 열 만들기

Grid의 격자선·트랙·셀과 fr 단위를 이해하고 명시적 행, 자동 행, 열을 가로지르는 배치를 전체 예제로 익힙니다. 긴 콘텐츠와 모바일에서 생기는 넘침도 비교합니다.

CSS 강좌 / @keyframes 애니메이션과 움직임 줄이기

CSS 강좌 / @keyframes 애니메이션과 움직임 줄이기

키프레임의 중간 상태와 재생 시간·지연·방향·횟수·종료 상태를 비교합니다. 일시 정지와 움직임 감소 설정까지 전체 예제로 확인합니다.

CSS 강좌 / CSS란 무엇이고 HTML과 어떻게 다를까?

CSS 강좌 / CSS란 무엇이고 HTML과 어떻게 다를까?

HTML과 CSS의 역할을 구분하고, 같은 작은 정원 문서에 색상·배경·여백을 적용합니다. 실행 가능한 예제와 세 가지 변형 실습으로 스타일이 바뀌는 범위를 확인할 수 있습니다.

CSS 강좌 / 글꼴, 글자 크기, 굵기, 줄 간격 설정하기

CSS 강좌 / 글꼴, 글자 크기, 굵기, 줄 간격 설정하기

글꼴·글자 크기·굵기·줄 간격을 설정하고 실제 사용된 글꼴을 확인하는 방법을 설명합니다. 단위 없는 line-height와 em 값의 상속 차이를 실행 가능한 예제로 비교합니다.

CSS 강좌 / display와 기본 배치 흐름 이해하기

CSS 강좌 / display와 기본 배치 흐름 이해하기

block·inline·inline-block의 줄바꿈과 크기 적용을 같은 요소로 비교합니다. display: none과 visibility: hidden의 공간 차이, 인라인 이미지의 크기 예외를 실행하며 확인합니다.

CSS 강좌 / transform과 transition으로 상태 변화 표현하기

CSS 강좌 / transform과 transition으로 상태 변화 표현하기

transform의 이동·회전·확대와 transition의 시간·곡선·지연을 비교합니다. 문서 흐름, 키보드 초점과 움직임 감소 설정을 전체 예제로 확인할 수 있습니다.

CSS 강좌 / 문단과 목록의 간격, 정렬, 목록 표시 설정하기

CSS 강좌 / 문단과 목록의 간격, 정렬, 목록 표시 설정하기

문단 안의 줄 간격, 문단 사이 여백, 첫 줄 들여쓰기를 구분합니다. 긴 목록을 이용해 outside·inside 표시 위치와 항목 간격을 비교하고 정렬 문제를 확인할 수 있습니다.

CSS / Tutorial / 마우스 호버 효과 / 다른 이미지 보여주는 방법

CSS / Tutorial / 마우스 호버 효과 / 다른 이미지 보여주는 방법

이미지에 마우스를 올렸을 때 다른 이미지가 나타나는 효과를 CSS로 만들어보겠습니다. 다음과 같이 이미지 두 개를 넣고 div로 감쌉니다.