目錄
一、基礎知識儲備
#二、實戰
2.1 四邊形
2.1.1 正方形
2.1.2 矩形
2.1.3 平行四邊形
2.2 三角形
2.2.1 銳角三角形
2.2.2 直角三角形
2.3 五边形
2.4 六边形
首頁 web前端 css教學 css常見問題:如何畫多邊形(三角形~六邊形)

css常見問題:如何畫多邊形(三角形~六邊形)

Sep 16, 2021 am 10:57 AM
css 三角形 六邊形 多邊形

利用純CSS如何畫出多邊形?本篇文章就來跟大家介紹一下從純CSS畫三角形開始,介紹一下畫四邊形、五邊形、六邊形的方法,更高的實現方式也可以此類推畫出來,希望對大家有所幫助!

css常見問題:如何畫多邊形(三角形~六邊形)

今天要學習一下面試中常考的一個css題目,用css畫出多邊形。這次以三角形、四邊形、五邊形、六邊形為例,在先開始之前需要了解一些必要的知識。

一、基礎知識儲備

本次將利用純CSS知識來繪製一些形狀,為了繪製這些形狀,首先補習一下所需的CSS基礎知識點——css盒模型。 【相關推薦:《css影片教學》】

css常見問題:如何畫多邊形(三角形~六邊形)

#由上圖可以看出標準的盒子模型是由content ,padding,border,margin組成的,我們用程式碼看一下具體情況吧。

<!--HTML部分,此部分代码若是不变,后面将复用不在赘述-->
<div id="main"></div>
登入後複製
/*css部分*/ 
#main { 
  width: 100px;
  height: 100px;
  border: 200px solid red; 
}
登入後複製

效果圖如下:

css常見問題:如何畫多邊形(三角形~六邊形)

#二、實戰

光說不練假把式,現在就由利用這些基本的CSS屬性來繪製常見的三角形、四邊形、五邊形…

2.1 四邊形

若是不能用直接使用background-color屬性來畫一個四邊形,由上圖我們可以看出若是讓content的寬高全部設為0,並設定border的寬高,那麼我們就可以得到一個僅由border構成的四邊形了,四邊形又分為正方形、平行四邊形、矩形等等,這裡就讓我們使用border來實現上述的三種圖形。

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;
}
登入後複製
登入後複製

效果如下圖所示:

css常見問題:如何畫多邊形(三角形~六邊形)

2.1.2 矩形

在2.1.1中我們已經實作了透過使用border來實現正方形,那麼我們接下來實現一下矩形吧,根據所學過的數學知識我們只需用將正方形的調整正方形的長寬使其長≠寬即可,接下來讓我們來實現一下吧。

#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;
}
登入後複製

效果如下圖所示:

css常見問題:如何畫多邊形(三角形~六邊形)

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;
}
登入後複製

效果如下圖所示:

css常見問題:如何畫多邊形(三角形~六邊形)

2.2 三角形

目前為止,最簡單的四邊形已完成,那麼此時是不是已經有感覺了!我們接著往下走,既然border可以實現四邊形,那麼三角形按道理應該也不在話下,當然三角形裡面也有很多很多種類,按照角劃分,可分為銳角三角形、直角三角形、鈍角三角形;下面分別來實現一下。

2.2.1 銳角三角形

首先我們來看看在content的寬高都是0的情況下,border的left,right,top,bottom四個所佔據的情況吧。

#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;
}
登入後複製
登入後複製

效果圖如下:

css常見問題:如何畫多邊形(三角形~六邊形)

從圖可以看出left,right,top,bottom都是佔一個三角形的情況,那麼當我們需要某個三角形時我們只需要讓其他三個三角形隱藏起來不就可以了,我們可以用transparent屬性值來隱藏border,那麼來實現一下吧。

#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;
}
登入後複製

效果如圖所示:

css常見問題:如何畫多邊形(三角形~六邊形)

2.2.2 直角三角形

到此我們可以畫出銳角三角形了,直角三角形我們根據上上圖可以得到,只要顯示兩個border邊即可,程式碼試試看

#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;
}
登入後複製

效果如圖所示:

css常見問題:如何畫多邊形(三角形~六邊形)

######################### 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;
}
登入後複製

效果图如下所示:

css常見問題:如何畫多邊形(三角形~六邊形)

这次通过绝对定位来控制小的直角三角形,那么我们可以通过控制黑色三角形的颜色来显示钝角三角形。

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;
}
登入後複製

效果如下图所示:

css常見問題:如何畫多邊形(三角形~六邊形)

实现五边形的主要难点在于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;
}
登入後複製

1css常見問題:如何畫多邊形(三角形~六邊形)

通过上面的方法实现五边形,这边难点主要是画出等边三角形。

上面的方法已经实现了,让我们想想其他的方法实现一下吧,这里我们将通过三个四边形实现五边形,让我们一下实验一下吧!!

<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;
}
登入後複製

1css常見問題:如何畫多邊形(三角形~六邊形)

好了,目前已经讲述了三角形,四边形,五边形,六边形得到实现方式了,更高的实现方式就以此类推了。

原文地址:https://juejin.cn/post/7001772184498601991

作者:执鸢者

更多编程相关知识,请访问:编程入门!!

以上是css常見問題:如何畫多邊形(三角形~六邊形)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1269
29
C# 教程
1248
24
vue中怎麼用bootstrap vue中怎麼用bootstrap Apr 07, 2025 pm 11:33 PM

在 Vue.js 中使用 Bootstrap 分為五個步驟:安裝 Bootstrap。在 main.js 中導入 Bootstrap。直接在模板中使用 Bootstrap 組件。可選:自定義樣式。可選:使用插件。

了解HTML,CSS和JavaScript:初學者指南 了解HTML,CSS和JavaScript:初學者指南 Apr 12, 2025 am 12:02 AM

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

HTML,CSS和JavaScript的角色:核心職責 HTML,CSS和JavaScript的角色:核心職責 Apr 08, 2025 pm 07:05 PM

HTML定義網頁結構,CSS負責樣式和佈局,JavaScript賦予動態交互。三者在網頁開發中各司其職,共同構建豐富多彩的網站。

bootstrap怎麼插入圖片 bootstrap怎麼插入圖片 Apr 07, 2025 pm 03:30 PM

在 Bootstrap 中插入圖片有以下幾種方法:直接插入圖片,使用 HTML 的 img 標籤。使用 Bootstrap 圖像組件,可以提供響應式圖片和更多樣式。設置圖片大小,使用 img-fluid 類可以使圖片自適應。設置邊框,使用 img-bordered 類。設置圓角,使用 img-rounded 類。設置陰影,使用 shadow 類。調整圖片大小和位置,使用 CSS 樣式。使用背景圖片,使用 background-image CSS 屬性。

bootstrap怎麼寫分割線 bootstrap怎麼寫分割線 Apr 07, 2025 pm 03:12 PM

創建 Bootstrap 分割線有兩種方法:使用 標籤,可創建水平分割線。使用 CSS border 屬性,可創建自定義樣式的分割線。

bootstrap怎麼設置框架 bootstrap怎麼設置框架 Apr 07, 2025 pm 03:27 PM

要設置 Bootstrap 框架,需要按照以下步驟:1. 通過 CDN 引用 Bootstrap 文件;2. 下載文件並將其託管在自己的服務器上;3. 在 HTML 中包含 Bootstrap 文件;4. 根據需要編譯 Sass/Less;5. 導入定製文件(可選)。設置完成後,即可使用 Bootstrap 的網格系統、組件和样式創建響應式網站和應用程序。

bootstrap怎麼調整大小 bootstrap怎麼調整大小 Apr 07, 2025 pm 03:18 PM

要調整 Bootstrap 中元素大小,可以使用尺寸類,具體包括:調整寬度:.col-、.w-、.mw-調整高度:.h-、.min-h-、.max-h-

bootstrap按鈕怎麼用 bootstrap按鈕怎麼用 Apr 07, 2025 pm 03:09 PM

如何使用 Bootstrap 按鈕?引入 Bootstrap CSS創建按鈕元素並添加 Bootstrap 按鈕類添加按鈕文本

See all articles