如何用 CSS 绘制各种形状

html-css023

如何用 CSS 绘制各种形状,第1张

制作圆形:

要使用CSS来制作一个圆形,我们需要一个div,被给它设置一个ID

<div id="circle"></div>

圆形在设置CSS时要设置宽度和高度相等,然后设置border-radius属性为宽度或高度的一半即可:

#circle {

width: 120px

height: 120px

background: #7fee1d

-moz-border-radius: 60px

-webkit-border-radius: 60px

border-radius: 60px

}

2

制作椭圆形:

椭圆形是正圆形的一个变体,同样使用一个带ID的div来制作

<div id="oval"></div>

设置椭圆形的CSS时,高度要设置为宽度的一半,border-radius属性也要做相应的改变:

#oval {

width: 200px

height: 100px

background: #e9337c

-webkit-border-radius: 100px / 50px

-moz-border-radius: 100px / 50px

border-radius: 100px / 50px

}

3

制作三角形:

要创建一个CSS三角形,需要使用border,通过设置不同边的透明效果,我们可以制作出三角形的现状。另外,在制作三角形时,宽度和高度要设置为0。

<div id="triangle"></div>

#triangle {

width: 0

height: 0

border-bottom: 140px solid #fcf921

border-left: 70px solid transparent

border-right: 70px solid transparent

}

4

制作倒三角形:

与正三角形不同的是,倒三角形要设置的是border-top、border-left和border-right三条边的属性:

#triangle {

width: 0

height: 0

border-top: 140px solid #20a3bf

border-left: 70px solid transparent

border-right: 70px solid transparent

}

5

制作左三角形:

左三角形操作的是border-top、border-left和border-right三条边的属性,其中上边和下边要设置透明属性。

#triangle_left {

width: 0

height: 0

border-top: 70px solid transparent

border-right: 140px solid #6bbf20

border-bottom: 70px solid transparent

}

制作菱形

制作菱形的方法有很多种。这里使用的是transform属性和rotate相结合,使两个正反三角形上下显示。

#diamond {

width: 120px

height: 120px

background: #1eff00

/* Rotate */

-webkit-transform: rotate(-45deg)

-moz-transform: rotate(-45deg)

-ms-transform: rotate(-45deg)

-o-transform: rotate(-45deg)

transform: rotate(-45deg)

/* Rotate Origin */

-webkit-transform-origin: 0 100%

-moz-transform-origin: 0 100%

-ms-transform-origin: 0 100%

-o-transform-origin: 0 100%

transform-origin: 0 100%

margin: 60px 0 10px 310px

}

制作梯形:

梯形是三角形的一个变体,设置CSS梯形时,左右两条边设置为相等,并且给它设置一个宽度。

#trapezium {

height: 0

width: 120px

border-bottom: 120px solid #ec3504

border-left: 60px solid transparent

border-right: 60px solid transparent

}

制作平行四边形:

平行四边形的制作方式是使用transform属性使长方形倾斜一个角度。

#parallelogram {

width: 160px

height: 100px

background: #8734f7

-webkit-transform: skew(30deg)

-moz-transform: skew(30deg)

-o-transform: skew(30deg)

transform: skew(30deg)

}

星形:

星形的HTML结构同样使用一个带ID的空div。星形的实现方式比较复杂,主要是使用transform属性来旋转不同的边。仔细体会下面的代码。

#star {

width: 0

height: 0

margin: 50px 0

color: #fc2e5a

position: relative

display: block

border-right: 100px solid transparent

border-bottom: 70px solid #fc2e5a

border-left: 100px solid transparent

-moz-transform: rotate(35deg)

-webkit-transform: rotate(35deg)

-ms-transform: rotate(35deg)

-o-transform: rotate(35deg)

}

#star:before {

height: 0

width: 0

position: absolute

display: block

top: -45px

left: -65px

border-bottom: 80px solid #fc2e5a

border-left: 30px solid transparent

border-right: 30px solid transparent

content: ''

-webkit-transform: rotate(-35deg)

-moz-transform: rotate(-35deg)

-ms-transform: rotate(-35deg)

-o-transform: rotate(-35deg)

}

#star:after {

content: ''

width: 0

height: 0

position: absolute

display: block

top: 3px

left: -105px

color: #fc2e5a

border-right: 100px solid transparent

border-bottom: 70px solid #fc2e5a

border-left: 100px solid transparent

-webkit-transform: rotate(-70deg)

-moz-transform: rotate(-70deg)

-ms-transform: rotate(-70deg)

-o-transform: rotate(-70deg)

}

六角星形:

和五角星的制作方法不同,六角星形状的制作方法是操纵border属性来制作两半图形,然后合并它们。

#star_six_points {

width: 0

height: 0

display: block

position: absolute

border-left: 50px solid transparent

border-right: 50px solid transparent

border-bottom: 100px solid #de34f7

margin: 10px auto

}

#star_six_points:after {

content: ""

width: 0

height: 0

position: absolute

border-left: 50px solid transparent

border-right: 50px solid transparent

border-top: 100px solid #de34f7

margin: 30px 0 0 -50px

}

六边形:

六边形的制作方法可以有很多种,可以像五边形一样,先制作一个长方形,然后在它的上面和下面各放置一个三角形。

#hexagon {

width: 100px

height: 55px

background: #fc5e5e

position: relative

margin: 10px auto

}

#hexagon:before {

content: ""

width: 0

height: 0

position: absolute

top: -25px

left: 0

border-left: 50px solid transparent

border-right: 50px solid transparent

border-bottom: 25px solid #fc5e5e

}

#hexagon:after {

content: ""

width: 0

height: 0

position: absolute

bottom: -25px

left: 0

border-left: 50px solid transparent

border-right: 50px solid transparent

border-top: 25px solid #fc5e5e

}

心形:

心形的制作是非常复杂的,可以使用伪元素来制作,分别将伪元素旋转不同的角度,并修改transform-origin属性来元素的旋转中心点。

#heart {

position: relative

}

#heart:before,#heart:after {

content: ""

width: 70px

height: 115px

position: absolute

background: red

left: 70px

top: 0

-webkit-border-radius: 50px 50px 0 0

-moz-border-radius: 50px 50px 0 0

border-radius: 50px 50px 0 0

-webkit-transform: rotate(-45deg)

-moz-transform: rotate(-45deg)

-ms-transform: rotate(-45deg)

-o-transform: rotate(-45deg)

transform: rotate(-45deg)

-webkit-transform-origin: 0 100%

-moz-transform-origin: 0 100%

-ms-transform-origin: 0 100%

-o-transform-origin: 0 100%

transform-origin: 0 100%

}

#heart:after {

left: 0

-webkit-transform: rotate(45deg)

-moz-transform: rotate(45deg)

-ms-transform: rotate(45deg)

-o-transform: rotate(45deg)

transform: rotate(45deg)

-webkit-transform-origin: 100% 100%

-moz-transform-origin: 100% 100%

-ms-transform-origin: 100% 100%

-o-transform-origin: 100% 100%

transform-origin: 100% 100%

}

蛋形:

蛋形时椭圆形的一个变体,它的高度要比宽度稍大,并且设置正确的border-radius属性即可以制作出一个蛋形。

#egg {

width: 136px

height: 190px

background: #ffc000

display: block

-webkit-border-radius: 63px 63px 63px 63px / 108px 108px 72px 72px

border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%

}

无穷符号:

无穷符号可以通过border属性和设置伪元素的角度来实现。

#infinity {

width: 220px

height: 100px

position: relative

}

#infinity:before,#infinity:after {

content: ""

width: 60px

height: 60px

position: absolute

top: 0

left: 0

border: 20px solid #06c999

-moz-border-radius: 50px 50px 0

border-radius: 50px 50px 0 50px

-webkit-transform: rotate(-45deg)

-moz-transform: rotate(-45deg)

-ms-transform: rotate(-45deg)

-o-transform: rotate(-45deg)

transform: rotate(-45deg)

}

#infinity:after {

left: auto

right: 0

-moz-border-radius: 50px 50px 50px 0

border-radius: 50px 50px 50px 0

-webkit-transform: rotate(45deg)

-moz-transform: rotate(45deg)

-ms-transform: rotate(45deg)

-o-transform: rotate(45deg)

transform: rotate(45deg)

}

消息提示框:

消息提示框可以先制作一个圆角矩形,然后在需要的地方放置一个三角形。

#comment_bubble {

width: 140px

height: 100px

background: #088cb7

position: relative

-moz-border-radius: 12px

-webkit-border-radius: 12px

border-radius: 12px

}

#comment_bubble:before {

content: ""

width: 0

height: 0

right: 100%

top: 38px

position: absolute

border-top: 13px solid transparent

border-right: 26px solid #088cb7

border-bottom: 13px solid transparent

}

步骤阅读

HTML(超文本标记语言)和CSS(级联样式表)是用于构建Web页面的两项核心技术。HTML为各种设备提供页面的结构,为CSS提供(视觉和听觉的)布局。与图形和脚本一起,HTML和CSS是构建网页和 Web应用程序的基础。

HTML称为超文本标签语言,是一种标识性的语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等。

超文本是一种组织信息的方式,它通过超级链接方法将文本中的文字、图表与其他信息媒体相关联。这些相互关联的信息媒体可能在同一文本中,也可能是其他文件,或是地理位置相距遥远的某台计算机上的文件。这种组织信息方式将分布在不同位置的信息资源用随机方式进行连接,为人们查找,检索信息提供方便。

层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。

CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。

扩展资料:

CSS具有以下特点:

1、丰富的样式定义

CSS提供了丰富的文档样式外观,以及设置文本和背景属性的能力;允许为任何元素创建边框,以及元素边框与其他元素间的距离,以及元素边框与元素内容间的距离;允许随意改变文本的大小写方式、修饰方式以及其他页面效果。

2、易于使用和修改

CSS可以将样式定义在HTML元素的style属性中,也可以将其定义在HTML文档的header部分,也可以将样式声明在一个专门的CSS文件中,以供HTML页面引用。总之,CSS样式表可以将所有的样式声明统一存放,进行统一管理。

另外,可以将相同样式的元素进行归类,使用同一个样式进行定义,也可以将某个样式应用到所有同名的HTML标签中,也可以将一个CSS样式指定到某个页面元素中。如果要修改样式,我们只需要在样式列表中找到相应的样式声明进行修改。

3、多页面应用

CSS样式表可以单独存放在一个CSS文件中,这样我们就可以在多个页面中使用同一个CSS样式表。CSS样式表理论上不属于任何页面文件,在任何页面文件中都可以将其引用。这样就可以实现多个页面风格的统一。

参考资料:百度百科——HTML

百度百科——css

css是个神奇的东西,在学习的过程中你会发现绘画和艺术的美,金字塔是世界八大奇迹之一,设计精巧,计算精密,令世人赞叹。那么如何用CSS画一个金字塔呢?

人丑话不多,先看一下效果

金字塔是由5个面组成的,即4个侧面和1个底面。我们可以把它看作是一个童年时期玩过的元宝,或者端午节戴在身上的福字。为什么这么说呢?

“横看成岭侧成峰”,我们看金字塔的俯视图是不是会看到这样一个图形,如下图所示

这是一个平面图形,如果让这个平面图形具有立体的效果不就是一个金字塔了么。即将上图的(0,0)沿着x轴旋转一定角度即可实现。

接下来就是绘制“元宝”的形状,侧面是4个三角形,底面是一个正方形。实现三角形可以采用 clip-path 的属性对可视区域进行裁剪。

由上图可知: clip-path 的只能兼容 高版本浏览器 。polygon代表多边形,所以利用该属性可以绘制多如下图形:

有了上述的图形之后,我们需要进行特殊的处理,才能得到我们想要的形状。因为我们要搭建金字塔,所有我们塔边的高度或者宽度需要大于底部的宽度和长度,不然的话无法搭成塔尖而形成如下图形:

故需设置大于底部宽和高,我们这里选取为高度为200px,宽度为100px,宽度需要和底部宽度保持一致。

假设我们现在已经有一个金字塔,我们可以取它的一个横截面如下图:

通过sin函数

解上面反三角函数求得A大约为75deg,以此类推我们可以算出其他图形旋转角度。

将上述的两种三角形通过适当的平移和旋转,得到如下图形:

合并之后得到如下图形

通过使用css3中的3D转化属性,将上图进行转化即可:

由上图可知:transform-style:preserve-3d兼容是支持高版本浏览器,支持部分ie浏览器

以上就是本文的全部内容,全部都是由css实现包括: