CSS FAQ: 다각형 그리는 방법(삼각형 ~ 육각형)
순수한 CSS를 사용하여 다각형을 그리는 방법은 무엇입니까? 이번 글에서는 순수 CSS를 시작으로 삼각형을 그리는 방법을 소개하고, 사각형, 오각형, 육각형을 그리는 방법도 비유적으로 그려볼 수 있으니 많은 분들께 도움이 되었으면 좋겠습니다!
오늘은 인터뷰에서 자주 테스트되는 CSS 질문을 CSS를 사용해 다각형을 그리는 방법으로 공부해보겠습니다. 이번에는 삼각형, 사각형, 오각형, 육각형을 예로 들어 시작하기 전에 몇 가지 필요한 지식을 이해해야 합니다.
1. 기본 지식 보유
이번에는 이러한 도형을 그리기 위해 순수한 CSS 지식을 사용하여 먼저 필요한 기본 CSS 지식 포인트인 CSS 상자 모델을 배웁니다. [관련 추천: "css 영상 튜토리얼"]
위 그림에서 볼 수 있듯이 표준 박스 모델은 content, padding, border, margin으로 구성되어 있습니다. 코드를 사용하는 특정 상황.
<!--HTML部分,此部分代码若是不变,后面将复用不在赘述--> <div id="main"></div>
/*css部分*/ #main { width: 100px; height: 100px; border: 200px solid red; }
렌더링은 다음과 같습니다.
2. 실전 전투
말로만 하고 연습하지 않고 이제 기본 CSS 속성을 사용하여 일반적인 삼각형, 사각형, 오각형을 그려 보겠습니다...
2.1 사변형
background-color 속성을 사용하여 사각형을 직접 그릴 수 없는 경우 위 그림을 보면 내용의 너비와 높이를 0으로 설정하고 테두리의 너비와 높이를 설정하면 다음과 같은 결과를 얻을 수 있음을 알 수 있습니다. 사각형은 테두리로 구성됩니다. 사각형은 정사각형, 평행사변형, 직사각형 등으로 구분됩니다. 여기서는 테두리를 사용하여 위의 세 가지 모양을 구현해 보겠습니다.
2.1.1 정사각형
먼저 가장 간단한 정사각형을 구현해 보겠습니다.
#main { width: 0px; height: 0px; border-bottom: 200px solid red; border-left: 200px solid black; border-right: 200px solid blue; border-top: 200px solid pink; }
효과는 아래와 같습니다:
2.1.2 Rectangle
2.1.1에서는 이미 테두리를 사용하여 사각형을 구현했으므로 다음에는 배운 내용을 바탕으로 사각형을 구현해 보겠습니다. 지식을 바탕으로 길이 ≠ 너비가 되도록 정사각형의 길이와 너비만 조정하면 됩니다.
#main { width: 0px; height: 0px; border-bottom: 200px solid red; border-left: 100px solid red; border-right: 100px solid red; border-top: 200px solid red; }
효과는 아래 그림과 같습니다.
2.1.3 평행사변형
PS: 평행사변형을 구현하려면 두 개의 삼각형을 사용해야 하므로 여기서는 건너뛰는 것이 좋습니다. 2.2 먼저 삼각형 구현을 본 다음 다시 돌아가서 여기에서 평행사변형 방법을 살펴보세요.
여기에서는 2.2의 내용을 모두 읽었다고 가정합니다. 다음으로 평행사변형을 구현해 보세요.
<div id="wrapper"> <div class="public"></div> <div class="public move"></div> </div>
*{ margin: 0; } #wrapper { position: relative; } .public { width: 0px; height: 0px; border-bottom: 200px solid red; border-left: 200px solid transparent; border-right: 200px solid transparent; border-top: 200px solid transparent; position: absolute; } .move { transform: rotate(180deg); top: 200px; left: 200px; }
효과는 아래 사진과 같습니다.
2.2 삼각형
지금까지 가장 간단한 사각형이 완성되었으니 이때 벌써 느낌이 오시나요? 계속해서, 테두리는 사각형을 구현할 수 있으므로 삼각형은 문제가 되지 않습니다. 물론 각도에 따라 예각삼각형, 직각삼각형, 둔각삼각형으로 나눌 수 있습니다. 일회.
2.2.1 예각삼각형
먼저 콘텐츠의 너비와 높이가 모두 0일 때 테두리의 왼쪽, 오른쪽, 위쪽, 아래쪽이 차지하는 상황을 살펴보겠습니다.
#main { width: 0px; height: 0px; border-bottom: 200px solid red; border-left: 200px solid black; border-right: 200px solid blue; border-top: 200px solid pink; }
렌더링은 다음과 같습니다.
그림에서 볼 수 있듯이 왼쪽, 오른쪽, 위쪽, 아래쪽이 모두 삼각형을 차지하므로 특정 삼각형이 필요할 때 다른 삼각형만 숨기면 됩니다. 세 개의 삼각형 그게 다입니다. 투명 속성 값을 사용하여 테두리를 숨길 수 있으므로 구현해 보겠습니다.
#main { width: 0px; height: 0px; border-bottom: 200px solid red; border-left: 200px solid transparent; border-right: 200px solid transparent; border-top: 200px solid transparent; }
효과는 그림과 같습니다.
2.2.2 직각삼각형
이제 위 그림을 바탕으로 예각삼각형을 그릴 수 있습니다. 두 개의 테두리 면을 보여주세요. 코드를 사용해 보겠습니다
#main { width: 0px; height: 0px; border-bottom: 200px solid red; border-left: 200px solid red; border-right: 200px solid transparent; border-top: 200px solid transparent; }
효과는 그림과 같습니다.
2.2.3 둔각 삼각형
위 그림은 이전 아이디어의 타당성을 확인합니다. 그럼 둔각삼각형을 어떻게 구현하는지 생각해 볼까요? 이전의 생각은 불가능하기 때문에 생각을 바꿔야 합니다.
我们可以用两个直角三角形,将小的直角三角形覆盖在大的上面,让我们试一下吧!!
<div id="main1"></div> <div id="main2"></div>
#main1 { width: 0px; height: 0px; border-bottom: 200px solid red; border-left: 200px solid transparent; } #main2 { width: 0px; height: 0px; border-bottom: 200px solid black; border-left: 150px solid transparent; position: absolute; /*这里8px是浏览器中的margin自带的间距,之前没有处理*/ top: 8px; left: 58px; }
效果图如下所示:
这次通过绝对定位来控制小的直角三角形,那么我们可以通过控制黑色三角形的颜色来显示钝角三角形。
2.3 五边形
三角形都已经学会了,那么很多图形都可以通过三角形拼凑得来,就以五边形为例,这里将以多个三角形来画出五边形。
<div id="wrapper"> <div class="main1 tool"></div> <div class="main2 tool"></div> <div class="main3 tool"></div> <div class="main4 tool"></div> <div class="main5 tool"></div> </div>
*{ margin: 0; } #wrapper { position: relative; top: 300px; margin-left: 300px; } .main2 { transform: rotate(72deg); } .main3 { transform: rotate(144deg); } .main4 { transform: rotate(216deg); } .main5 { transform: rotate(288deg); } .tool{ width: 0px; height: 0px; border-right: 58px solid transparent; border-left: 58px solid transparent; border-bottom: 160px solid red; position: absolute; top: 0; left: 0; }
效果如下图所示:
实现五边形的主要难点在于border的三个边的取值,以及旋转的角度。
2.4 六边形
到目前为止三角行、四、五边形的三种形式都实现了一遍,他们均是通过border来实现的,那么让我们来想一下怎么画出一个六边形,有条件的可以在纸上画画,我们可以把一个五边形分成6个等边三角形,让我们通过上面所学知识来实现一下六边形吧!
<div id="wrapper"> <div class="main1 tool"></div> <div class="main2 tool"></div> <div class="main3 tool"></div> <div class="main4 tool"></div> <div class="main5 tool"></div> <div class="main6 tool"></div> </div>
*{ margin: 0; } #wrapper { position: relative; top: 300px; margin-left: 300px; } .main2 { transform: rotate(60deg); } .main3 { transform: rotate(120deg); } .main4 { transform: rotate(180deg); } .main5 { transform: rotate(240deg); } .main6 { transform: rotate(300deg); } .tool{ width: 0px; height: 0px; border-right: calc(60px / 1.732) solid transparent; border-left: calc(60px / 1.732) solid transparent; border-bottom: 60px solid red; transform-origin: top; position: absolute; top: 0; left: 0; }
通过上面的方法实现五边形,这边难点主要是画出等边三角形。
上面的方法已经实现了,让我们想想其他的方法实现一下吧,这里我们将通过三个四边形实现五边形,让我们一下实验一下吧!!
<div id="wrapper"> <div class="main1 tool"></div> <div class="main2 tool"></div> <div class="main3 tool"></div> </div>
*{ margin: 0; } #wrapper { position: relative; top: 300px; margin-left: 300px; } .main1 { width: calc(120px / 1.732); height: 120px; background-color: black; } .main2 { width: calc(120px / 1.732); height: 120px; transform: rotate(120deg); background-color: black; } .main3 { width: calc(120px / 1.732); height: 120px; transform: rotate(240deg); background-color: black; } .tool{ position: absolute; top: 0; left: 0; }
好了,目前已经讲述了三角形,四边形,五边形,六边形得到实现方式了,更高的实现方式就以此类推了。
原文地址:https://juejin.cn/post/7001772184498601991
作者:执鸢者
更多编程相关知识,请访问:编程入门!!
위 내용은 CSS FAQ: 다각형 그리는 방법(삼각형 ~ 육각형)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











vue.js에서 bootstrap 사용은 5 단계로 나뉩니다 : Bootstrap 설치. main.js.의 부트 스트랩 가져 오기 부트 스트랩 구성 요소를 템플릿에서 직접 사용하십시오. 선택 사항 : 사용자 정의 스타일. 선택 사항 : 플러그인을 사용하십시오.

HTML은 웹 구조를 정의하고 CSS는 스타일과 레이아웃을 담당하며 JavaScript는 동적 상호 작용을 제공합니다. 세 사람은 웹 개발에서 의무를 수행하고 화려한 웹 사이트를 공동으로 구축합니다.

부트 스트랩 분할 라인을 만드는 두 가지 방법이 있습니다 : 태그를 사용하여 수평 분할 라인이 생성됩니다. CSS 테두리 속성을 사용하여 사용자 정의 스타일 분할 라인을 만듭니다.

WebDevelopmentReliesonHtml, CSS 및 JavaScript : 1) HtmlStructuresContent, 2) CSSSTYLESIT, 및 3) JAVASCRIPTADDSINGINTERACTIVITY, BASISOFMODERNWEBEXPERIENCES를 형성합니다.

부트 스트랩 버튼을 사용하는 방법? 부트 스트랩 CSS를 소개하여 버튼 요소를 만들고 부트 스트랩 버튼 클래스를 추가하여 버튼 텍스트를 추가하십시오.

부트 스트랩 프레임 워크를 설정하려면 다음 단계를 따라야합니다. 1. CDN을 통해 부트 스트랩 파일 참조; 2. 자신의 서버에서 파일을 다운로드하여 호스팅하십시오. 3. HTML에 부트 스트랩 파일을 포함; 4. 필요에 따라 Sass/Less를 컴파일하십시오. 5. 사용자 정의 파일을 가져옵니다 (선택 사항). 설정이 완료되면 Bootstrap의 그리드 시스템, 구성 요소 및 스타일을 사용하여 반응 형 웹 사이트 및 응용 프로그램을 만들 수 있습니다.

Bootstrap에 이미지를 삽입하는 방법에는 여러 가지가 있습니다. HTML IMG 태그를 사용하여 이미지를 직접 삽입하십시오. 부트 스트랩 이미지 구성 요소를 사용하면 반응 형 이미지와 더 많은 스타일을 제공 할 수 있습니다. 이미지 크기를 설정하고 IMG-Fluid 클래스를 사용하여 이미지를 적응할 수 있도록하십시오. IMG 통과 클래스를 사용하여 테두리를 설정하십시오. 둥근 모서리를 설정하고 IMG 라운드 클래스를 사용하십시오. 그림자를 설정하고 그림자 클래스를 사용하십시오. CSS 스타일을 사용하여 이미지를 조정하고 배치하십시오. 배경 이미지를 사용하여 배경 이미지 CSS 속성을 사용하십시오.
