CSS - 다각형(삼각형/오각형/팔각형/별/하트) 만들기
2024. 6. 7.
목차

border
HTML 요소의 테두리를 설정하는 속성. border-width, border-style, border-color의 속성이 있고 각각 테두리의 두께, 모양, 색상을 조절한다. border-left, border-top, border-right, border-bottom 속성들을 이용하면 각각의 테두리 면을 개별적으로 설정할 수 있기 때문에 border-top-width와 같은 세부속성도 설정할 수 있다. 축약해서 사용시 border: width style color 순으로 입력한다. border-radius 속성은 요소의 모서리를 둥글게 한다.
border-width | 테두리의 두께 | 단위가 있는 수치(px, em, rem 등)이나, 키워드(thin, medium, thick) |
---|---|---|
border-style | 테두리의 모양 |
|
border-color | 테두리의 색상 | 색상 이름, HEX, RGB, RGBA, HSL, HSLA 등 |
border-radius | 모서리의 둥근 정도 | px, % (축약 X) |
삼각형
위
#triangle-up { width: 0; height: 0; border-left: 50px solid transparent; border-right: 50px solid transparent; border-bottom: 100px solid red; }
아래
#triangle-up { width: 0; height: 0; border-left: 50px solid transparent; border-right: 50px solid transparent; border-top: 100px solid red; }
왼쪽
#triangle-up { width: 0; height: 0; border-top: 50px solid transparent; border-bottom: 50px solid transparent; border-right: 100px solid red; }
오른쪽
#triangle-up { width: 0; height: 0; border-top: 50px solid transparent; border-bottom: 50px solid transparent; border-left: 100px solid red; }
가상요소(::before, ::after)
::before와 ::after는 특정 요소의 콘텐츠 앞이나 뒤에 콘텐츠를 삽입할 수 있게 해주는 요소. 이 가상 요소들은 실제 HTML 구조를 변경하지 않고도 시각적 효과를 추가할 수 있어 스타일링을 유연하게 할 수 있다.
check_circle Check
::before, ::after 요소를 사용하려면 content 속성을 필수로 사용해야 한다.
오각형
#pentagon { position: relative; width: 54px; box-sizing: content-box; border-width: 50px 18px 0; border-style: solid; border-color: red transparent; margin-top: 2.5em 0 -1.5em; } #pentagon:before { content: ""; position: absolute; top: -63px; border-width: 0 45px 35px; border-style: solid; border-color: transparent transparent red; }
육각형
#hexagon { width: 100px; height: 55px; background: red; position: relative; margin: 2em 0; } #hexagon::before { content: ""; position: absolute; top: calc(-3em - 10px); border-left: 50px solid transparent; border-right: 50px solid transparent; border-bottom: 30px solid red; } #hexagon::after { content: ""; position: absolute; bottom: calc(-3em - 10px); border-left: 50px solid transparent; border-right: 50px solid transparent; border-top: 30px solid red; }
별
6각성
#star-six { width: 0; height: 0; border-left: 50px solid transparent; border-right: 50px solid transparent; border-bottom: 80px solid red; position: relative; margin-bottom: 1.5em; } #star-six:after { content: ""; position: absolute; width: 0; height: 0; border-left: 50px solid transparent; border-right: 50px solid transparent; border-top: 80px solid red; top: 25px; }
5각성
#star-five { margin: 50px 0; position: relative; width: 0px; height: 0px; border-right: 100px solid transparent; border-bottom: 70px solid red; border-left: 100px solid transparent; transform: rotate(35deg); } #star-five:before { content: ''; position: absolute; border-bottom: 80px solid red; border-left: 30px solid transparent; border-right: 30px solid transparent; top: -79px; left: 25px; transform: rotate(-35deg); } #star-five:after { content: ''; position: absolute; top: -17px; left: -17px; border-right: 100px solid transparent; border-bottom: 70px solid red; border-left: 100px solid transparent; transform: rotate(-70deg); }