CSS3五角星效果詳解

admin發表於2018-12-31

分享一段程式碼例項,他利用CSS3實現了五角星效果。

程式碼例項如下:

[HTML] 純文字檢視 複製程式碼執行程式碼
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
/*三個小三角組成*/
.starFive {
  width: 0;
  height: 0;
  margin: 100px auto;
  position: relative;
  border-left: 60px solid transparent;
  border-right: 60px solid transparent;
  border-bottom: 36px solid #7abb15;
  transform: rotate(35deg);
}
.starFive:before {
  position: absolute;
  content: '';
  width: 0;
  height: 0;
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  border-bottom: 50px solid #7abb15;
  top: -26px;
  left: -38px;
  transform: rotate(-35deg);
}
.starFive:after {
  position: absolute;
  content: '';
  width: 0;
  height: 0;
  border-left: 60px solid transparent;
  border-right: 60px solid transparent;
  border-bottom: 36px solid #7abb15;
  top: 3px;
  left: -67px;
  transform: rotate(-70deg);
}
</style>
</head>
<body>
  <div class="starFive"></div>
</body>
</html>

上面程式碼實現了五角星效果,下面介紹一下它的實現過程。

一.程式碼註釋:

[CSS] 純文字檢視 複製程式碼
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

簡單的初始化處理。

首先將所有元素的內邊距和外邊距設定為0。

最後設定採用怪異盒模型來解析元素,其實在本例中並沒有什麼用處。

[CSS] 純文字檢視 複製程式碼
.starFive {
  width: 0;
  height: 0;
  margin: 100px auto;
  position: relative;
  border-left: 60px solid transparent;
  border-right: 60px solid transparent;
  border-bottom: 36px solid #7abb15;
  transform: rotate(35deg);
}

通過邊框生成一個三角形,具體參閱CSS三角形效果詳解一章節。

這個五角星效果,其實是三個三角形以恰當的位置重貼生成的,CSS程式碼修改如下:

[CSS] 純文字檢視 複製程式碼
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
/*三個小三角組成*/
.starFive {
  width: 0;
  height: 0;
  margin: 100px auto;
  position: relative;
  border-left: 60px solid red;
  border-right: 60px solid blue;
  border-bottom: 36px solid #7abb15;
  transform: rotate(35deg);
}

將其他CSS程式碼刪除,只保留上面這些,並且修改每一個邊框的顏色,效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201812/31/124545usnwks2keknwbv9n.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

紅和藍色部分在實際程式碼中被設定為透明。

知道了這個原理,那麼實現五角星效果就比較容易了,下面不多介紹。

二.相關閱讀:

(1).box-sizing參閱CSS3 box-sizing一章節。

(2).相對定位參閱CSS position:relative 相對定位一章節。

(3).transform參閱CSS3 transform一章節。

(4).:before參閱CSS E::before 偽物件選擇符一章節。

相關文章