CSS绘制常见的几何图形

题外话

在写网页的过程,必不可免的会碰到网站需要装饰一些几何图形;
实现的方式无非四种:

  1. 图片
  2. CSS2.1&3
  3. SVG
  4. Canvas

就我个人而言,对于一些常见的几何图形.

  • 图片是不推荐的[太占资源,也不利于维护]
  • CSS是比较推荐的,精简且方便维护
  • SVG也是一个很好的选择[学习成本高一点点]
  • Canvas看情况使用

效果图

CSS绘制常见的几何图形_第1张图片

CSS绘制常见的几何图形_第2张图片

代码


<html lang="en">

    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
        <title>CSS制作几何图形title>
        <style type="text/css" media="screen">
        .wrapper {
            width: 25%;
            padding: 10x;
            float: left;
            height: 300px;
            text-align: center;
        }
        /*方形没啥好讲的*/
        
        .square {
            width: 200px;
            height: 200px;
            background: #fed3ca;
            box-sizing: border-box;
        }
        /*长方形也没啥好讲的*/
        
        .retangle {
            width: 200px;
            height: 100px;
            background: #2eb7ed;
        }
        /*圆形就用了css3的border-radius*/
        
        .circle {
            height: 200px;
            width: 200px;
            background: #11309B;
            border-radius: 100%;
            /*或者是宽高的一半,因为此处的值是半径*/
        }
        /*半圆这个很简单*/
        
        .semicircle {
            height: 100px;
            width: 200px;
            background: #D65E2A;
            border-radius: 100px 100px 0 0;
        }
        /*
		椭圆形也是用了border-radius,但是细化到XY轴的半径;
		最简单的椭圆就是X轴的半径为Y轴的一半,反之亦然
		*/
        
        .oval {
            width: 200px;
            height: 100px;
            background: #1C951A;
            border-radius: 100px/50px;
            /*X:100px , Y:50px;*/
        }
        /*
		三角形也挺简单的,利用的是边框实现的
		  - 宽高为0,因为只需要用到border
		  - transparent是用来透明化的,border-color是顺时针方向,你想产生什么方向的三角形都可以控制
		*/
        
        .triangle {
            width: 0;
            height: 0;
            border-width: 50px;
            border-style: solid;
            border-color: #8D0EEE transparent transparent transparent;
        }
        /*梯形的原理其实和三角形大同小异,方向同样可控制
		*/
        
        .trapezoid {
            width: 200px;
            height: 0;
            border-width: 100px;
            border-style: solid;
            border-color: transparent transparent #6ACFEE transparent;
        }
        /*菱形主要用了CSS3的transform的旋转参数,支持正反方向旋转*/
        
        .diamond {
            width: 100px;
            height: 100px;
            -webkit-transform: rotate(45deg);
                    transform: rotate(45deg);
            background: #0CCEf2;
            margin-left: 90px;
            margin-top: 30px;
        }
        /*月牙这个图形也不难,也只是微调圆的半径和阴影组合而成*/
        
        .moon {
            width: 200px;
            height: 200px;
            border-radius: 50%;
            box-shadow: 15px 15px 0 0 #0F93AA;
        }
        /*叶子这个说白了还是半径的处理*/
        
        .leaf {
            width: 200px;
            height: 200px;
            background: rgba(0, 255, 0, .5);
            box-shadow: 2px 1px 1px rgba(0, 0, 0, .1);
            border-radius: 3px 200px;
            /*两个是参数是代表对角线, X 这个字母的样子*/
        }
        /*书签这个是三角的写法的小小转换*/
        
        .bookmark {
            width: 0;
            height: 200px;
            border-left: 50px solid #A26D14;
            border-right: 50px solid #A26D14;
            border-bottom: 40px solid transparent;
        }


        /*平行四边形*/

        .parallelogram{
        	height:100px;
        	width:200px;
        	background:#13AD6D;
        	-webkit-transform:skew(-20deg);
        	        transform:skew(-20deg);
        }
        style>
    head>

    <body>
        <div class="wrapper">
            <p>正方形p>
            <div class="square">div>
        div>
        <div class="wrapper">
            <p>长方形p>
            <div class="retangle">div>
        div>
        <div class="wrapper">
            <p>圆形p>
            <div class="circle">div>
        div>
        <div class="wrapper">
            <p>半圆p>
            <div class="semicircle">div>
        div>
        <div class="wrapper">
            <p>椭圆形p>
            <div class="oval">div>
        div>
        <div class="wrapper">
            <p>三角形p>
            <div class="triangle">div>
        div>
        <div class="wrapper">
            <p>梯形p>
            <div class="trapezoid">div>
        div>
        <div class="wrapper">
            <p>菱形p>
            <div class="diamond">div>
        div>
        <div class="wrapper">
            <p>月牙p>
            <div class="moon">div>
        div>
        <div class="wrapper">
            <p>叶子p>
            <div class="leaf">div>
        div>
        <div class="wrapper">
            <p>书签p>
            <div class="bookmark">div>
        div>
        <div class="wrapper">
        	<p>平行四边形p>
        	<div class="parallelogram">div>
        div>

    body>

html>

总结

其实还有一些几何图形可以画出来.变一个边或者一个圆角,又是另一个图案;

也可以用CSS3的transform这些来做一些奇形怪状的,比如五角星,六边形等等;

你可能感兴趣的:(CSS绘制常见的几何图形)