본문 바로가기

Web/CSS

[CSS] CSS로 삼각형 그리기

각 div에 대한 결과값

 

CSS에서 삼각형을 만들기 위해서는 사각형을 활용한다. 단계를 거쳐 살펴보자.

위에 있는 이미지가 아래에 첨부되어있는 코드에 대한 결과 화면이다.

1. <div class="rectangle" />

가로 100px, 세로 100px인 사각형이 있다. 각 테두리의 색상을 다르게 해놨는데, 각 모서리를 잘 보면 하나의 테두리의 범위가 대각선 모양으로 끝나는 것을 확인할 수 있다. 이 점을 이용해서 삼각형을 만드는 것이다.

2. <div class="rectangle-bottom" />

우선 높이를 0으로 만들어서 사각형의 밑면만 남긴다. 그리고 아래쪽 테두리를 제외한 나머지 테두리의 색상을 투명색으로 지정한다. 그럼 1번에서 봤던 사각형의 4가지 테두리 중에 아래쪽 테두리만 남은 것을 확인할 수 있다. 역시 테두리의 양 끝은 대각선으로 잘려있는 모습니다.

3. <div class="triangle" />

이제 2번에서 가로 길이를 0으로 줄인다. 그러면 2번의 모습에서 길이가 점점점 줄어들다가 결국 양 끝에 있는 모서리가 만난 모양을 확인할 수 있다. 여기서 삼각형이 완성된다.

4. <div class="large-triangle" />

이제 사각형의 크기를 조절하는게 아닌, 테두리의 너비를 조절해서 삼각형의 크기를 조절한다. 여기서는 border-left, border-right, border-bottom을 각각 50px, 50px, 100px로 설정해보았다.

 

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <style>
      body {
        padding: 20px;
        background-color: white;
      }

      .rectangle {
        width: 100px;
        height: 100px;
        border-top: 10px solid green;
        border-right: 10px solid blue;
        border-left: 10px solid red;
        border-bottom: 10px solid goldenrod;
        margin-bottom: 30px;
      }

      .rectangle-bottom {
        width: 100px;
        height: 0px;
        border-top: 10px solid transparent;
        border-right: 10px solid transparent;
        border-left: 10px solid transparent;
        border-bottom: 10px solid goldenrod;
        margin-bottom: 30px;
      }

      .triangle {
        width: 0;
        height: 0;
        border-top: 10px solid transparent;
        border-right: 10px solid transparent;
        border-left: 10px solid transparent;
        border-bottom: 10px solid goldenrod;
        margin-bottom: 30px;
      }

      .large-triangle {
        width: 0;
        height: 0;
        border-left: 50px solid transparent;
        border-right: 50px solid transparent;
        border-bottom: 100px solid goldenrod;
      }
    </style>
  </head>
  <body>
    <div class="rectangle" />
    <div class="rectangle-bottom" />
    <div class="triangle" />
    <div class="large-triangle" />
  </body>
</html>

'Web > CSS' 카테고리의 다른 글

[CSS] shadow로 후광 효과 주기  (0) 2024.10.17