CSS实现圆角,三角,五角星,五边形,爱心,12角星,8角星,圆,椭圆,圆圈,八卦等
需积分: 0 20 浏览量
更新于2016-06-12
1
收藏 115KB DOC 举报
### CSS 实现几何图形
#### 一、概述
在网页设计与开发中,利用 CSS 来绘制各种形状是非常常见的需求之一。通过简单的 CSS 属性设置,可以轻松地创建出多种多样的几何图形,如圆角矩形、三角形、圆形等。本文将详细介绍如何用 CSS 实现圆角、三角形、五角星、五边形、爱心、十二角星、八角星、圆形、椭圆形、圆圈以及八卦等图形,并提供具体的代码示例。
#### 二、基础几何图形
##### 1. 长方形
```css
#Rectangle {
width: 200px;
height: 50px;
background-color: red;
color: white;
text-align: center;
}
```
- **属性解析**:
- `width` 和 `height` 设置了长方形的宽度和高度。
- `background-color` 设定了背景颜色为红色。
- `color` 指定了文字的颜色。
- `text-align` 使文本居中显示。
##### 2. 正方形
```css
#square {
width: 200px;
height: 200px;
background-color: red;
color: white;
text-align: center;
}
```
- **属性解析**:与长方形类似,这里设置了相同的宽度和高度来创建一个正方形。
##### 3. 实心圆
```css
#perfect-circle {
width: 200px;
height: 200px;
background-color: red;
color: white;
text-align: center;
border-radius: 100%;
/*-webkit-border-radius: 100%;*/
/*-moz-border-radius: 100%;*/
}
```
- **属性解析**:
- 使用 `border-radius: 100%;` 可以将正方形变为圆形。
- `-webkit-` 和 `-moz-` 前缀是为了兼容不同的浏览器引擎。
##### 4. 圆圈(空心)
```css
#circle {
width: 200px;
height: 200px;
background-color: white;
color: black;
text-align: center;
border-radius: 100%;
/*-webkit-border-radius: 100%;*/
/*-moz-border-radius: 100%;*/
border: 3px solid red;
}
```
- **属性解析**:与实心圆相似,但增加了 `border` 属性以创建一个空心圆。
##### 5. 椭圆
```css
#ellipse {
width: 200px;
height: 100px;
background-color: red;
color: white;
text-align: center;
border-radius: 100px / 50px;
/*-webkit-border-radius: 100px / 50px;*/
/*-moz-border-radius: 100px / 50px;*/
}
```
- **属性解析**:
- 使用 `border-radius: 100px / 50px;` 可以创建一个椭圆形,这里的数值代表了水平半径和垂直半径的比例。
##### 6. 上三角形
```css
#triangle-up {
width: 0px;
height: 0px;
color: white;
text-align: center;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 100px solid red;
/*-webkit-border-top-left-radius: 50px solid transparent;*/
/*-webkit-border-top-right-radius: 50px solid transparent;*/
/*-webkit-border-bottom-left-radius: 100px solid red;*/
/*-webkit-border-bottom-right-radius: 100px solid red;*/
}
```
- **属性解析**:
- 通过设置 `border` 的不同部分为透明和红色,可以创建出一个向上指的三角形。
##### 7. 下三角形
```css
#triangle-down {
width: 0px;
height: 0px;
color: white;
text-align: center;
border-top: 100px solid red;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
}
```
- **属性解析**:与上三角形类似,只是通过改变 `border` 的设置方向来创建一个向下指的三角形。
##### 8. 左三角形
```css
#triangle-left {
width: 0px;
height: 0px;
color: white;
text-align: center;
border-top: 50px solid transparent;
border-left: 100px solid red;
border-bottom: 50px solid transparent;
}
```
- **属性解析**:通过改变 `border` 的设置来创建一个向左指的三角形。
##### 9. 右三角形
```css
#triangle-right {
width: 0px;
height: 0px;
color: white;
text-align: center;
border-top: 50px solid transparent;
border-right: 100px solid red;
border-bottom: 50px solid transparent;
}
```
- **属性解析**:类似于左三角形,但是改变了 `border` 的设置以创建一个向右指的三角形。
#### 三、复杂图形
接下来我们将进一步探索如何使用 CSS 创建更加复杂的图形,如五角星、爱心、多角星等。
##### 10. 五角星
创建一个五角星较为复杂,可以通过组合多个三角形来实现,也可以使用伪元素来简化代码:
```css
.star {
position: relative;
display: inline-block;
color: #f00;
font-size: 40px;
width: 0;
height: 0;
margin: 20px;
}
.star:before,
.star:after {
position: absolute;
content: '';
display: block;
width: 0;
height: 0;
border-left: 15px solid transparent;
border-right: 15px solid transparent;
}
.star:before {
border-bottom: 80px solid #f00;
top: -40px;
}
.star:after {
width: 30px;
border-top: 50px solid #f00;
border-left: 15px solid transparent;
border-right: 15px solid transparent;
top: 10px;
left: -15px;
}
```
- **属性解析**:
- 使用伪元素 `:before` 和 `:after` 来创建五角星的不同部分。
- 通过调整边框的宽度和位置来形成完整的五角星形状。
##### 11. 爱心
爱心的绘制可以通过两个叠加的圆形和一个底部的三角形来完成:
```css
.heart {
position: relative;
width: 100px;
height: 90px;
}
.heart::before,
.heart::after {
content: "";
position: absolute;
top: 40px;
width: 52px;
height: 80px;
background: red;
border-radius: 50px 50px 0 0;
}
.heart::before {
left: 50px;
transform: rotate(-45deg);
transform-origin: 0 100%;
}
.heart::after {
left: 0;
transform: rotate(45deg);
transform-origin: 100% 100%;
}
.heart::after {
bottom: 0;
left: 25px;
width: 0;
height: 0;
border-style: solid;
border-width: 50px 30px 0 30px;
border-color: red transparent transparent transparent;
}
```
- **属性解析**:
- 使用伪元素 `::before` 和 `::after` 来创建爱心的两个圆形部分。
- 通过旋转和定位来形成爱心的形状。
- 底部的三角形通过设置 `border` 来完成。
##### 12. 八卦
八卦图可以视为两个叠加的圆形和其中的阴鱼和阳鱼。可以通过 SVG 或者 CSS 来实现,这里给出一个简单的 CSS 示例:
```css
.guabao {
width: 100px;
height: 100px;
position: relative;
}
.guabao .yin {
position: absolute;
width: 100%;
height: 100%;
clip: rect(0, 50px, 100px, 0);
background: #000;
border-radius: 50%;
}
.guabao .yang {
position: absolute;
width: 100%;
height: 100%;
clip: rect(0, 100px, 100px, 50px);
background: #fff;
border-radius: 50%;
}
.guabao .yin-circle {
position: absolute;
width: 30px;
height: 30px;
top: 35px;
left: 35px;
background: #fff;
border-radius: 50%;
}
.guabao .yang-circle {
position: absolute;
width: 30px;
height: 30px;
top: 35px;
right: 35px;
background: #000;
border-radius: 50%;
}
```
- **属性解析**:
- 通过设置 `clip` 属性来裁剪出半圆形状。
- 通过定位和圆形元素的叠加来形成八卦图。
#### 四、总结
以上就是利用 CSS 实现圆角、三角形、五角星、五边形、爱心、多角星、圆形、椭圆形、圆圈以及八卦等图形的方法。这些基本形状的创建为更复杂的网页布局提供了强大的支持,同时也为网页设计师提供了无限的创意空间。通过掌握这些基本技巧,你可以轻松地为你的网站添加各种视觉效果。