一、三角形

  如下图,通过设置 border 的大小和颜色可以形成四个三角形:

  

  上图对应的代码为:

/* 三角形 */
.triangle {
    width: 0;
    height: 0;
    border-top: 100px solid green;
    border-right: 100px solid red;
    border-bottom: 100px solid blue;
    border-left: 100px solid yellow;
}

  而要想实现绘制三角形,只需要将其他三个方向的 border 设置成“transparent”,如下图:

  

  若要绘制直角三角形,则将其中两个方向的 border 设置成“transparent”,例如把 border-top 和 border-right 设置成透明的,得到的直角三角形如下图:

  

二、梯形

  梯形的绘制和三角形类似,如下图:

  

  而若要绘制某个方向的梯形,只需要将其他三个方向设置成“transparent”,如下图:

  

  上图对应的代码为:

/* 梯形 */
.trapezoidal {
    width: 50px;
    height: 50px;
    border-top: 50px solid transparent;
    border-right: 100px solid transparent;
    border-bottom: 50px solid blue;
    border-left: 100px solid transparent;
}

三、平行四边形

  平行四边形可以通过使用 skewX 或者 skewY 将矩形扭曲形变得到,如下图:

  

  上图对应的代码为:

/* 平行四边形 */
.parallelogram {
    width: 200px;
    height: 80px;
    background: green;
    transform: skewX(-45deg);
}

四、菱形

  菱形可以通过使用 rotate 将正方形进行旋转得到,如下图:

  

  上图对应的代码为:

/* 菱形 */
.diamond {
    width: 100px;
    height: 100px;
    background: blue;
    transform: rotate(45deg);
}

  除此之外,还可以将两个三角形拼起来形成一个菱形,如下图:

  

  上图对应的代码为:

/* 菱形 */
.diamond {
    width: 0;
    height: 0;
    border-top: 100px solid transparent;
    border-right: 100px solid blue;
    border-bottom: 100px solid transparent;
    border-left: 100px solid transparent;
}
.diamond::after {
    content: "";
    position: absolute;
    left: 208px;
    top: 7px;
    width: 0;
    height: 0;
    border-top: 100px solid transparent;
    border-right: 100px solid transparent;
    border-bottom: 100px solid transparent;
    border-left: 100px solid green;
}

五、扇形

  90度的扇形好绘制的,如下图:

  

  上图对应的代码为:

/* 扇形 */
.sector {
    width: 100px;
    height: 100px;
    border-radius: 100px 0 0;
    background: green;
}

六、椭圆

  绘制椭圆时需要设置两个 border-radius,分别是对应矩形长和宽的一半,如下图:

  

  上图对应的代码为:

/* 椭圆 */
.ellipse {
    width: 200px;
    height: 100px;
    border-radius: 100px / 50px;
    background: blue;
}

七、圆环

  圆环可以看作一个由一个大圆形和一个小圆形构成的,通过改变小圆的颜色就能形成圆环的效果,如下图:

  

  上图对应的代码为:

/* 圆环 */
.ring {
    width: 100px;
    height: 100px;
    border-radius: 50px;
    background: yellow;
}
.ring::after {
    content: "";
    position: absolute;
    left: 23px;
    top: 23px;
    width: 70px;
    height: 70px;
    border-radius: 35px;
    background: darkgray;
}

八、心形

  绘制出来的心形如下图:

  

  上图对应的代码为:

/* 心形 */
.heart {
    width: 0;
    height: 0;
}
.heart::before,
.heart::after {
    position: absolute;
    left: 50px;
    content: "";
    top: 10px;
    width: 50px;
    height: 80px;
    background: red;
    border-radius: 50px 50px 0 0;
    transform: rotate(-45deg);
    transform-origin: 0 100%;
}
.heart::after {
    left: 0;
    transform: rotate(45deg);
    transform-origin: 100% 100%;
}
 

学习CSS之用CSS绘制一些基本图形的更多相关文章

  1. 学习使用html与css,并尝试写php

    这两天看了一点php,本想着实践一下,发现自己的服务器还没弄好,php的代码只写了两三行嵌在html中,还运行不了,同时还发现自己这几天学的html和css还不够,总是频频出现问题,学习的样式和布局都 ...

  2. CSS权威指南学习笔记系列(1)CSS和文档

    题外话:HTML是一种结构化语言,而CSS是它的补充:这是一种样式语言.CSS是前端三板斧之一,因此学习CSS很重要.而我还是菜鸟,所以需要加强学习CSS.这个是我学习CSS权威指南的笔记,如有不对, ...

  3. [CSS3] 学习笔记-HTML与CSS简单页面效果实例

    一个简单的首页的设计: html文件: <!doctype html> <html> <head> <meta charset="UTF-8&quo ...

  4. 2017年值得学习的3个CSS特性

    原文:https://bitsofco.de/3-new-css-features-to-learn-in-2017/译文:http://caibaojian.com/3-new-css-featur ...

  5. 李洪强和你一起学习前端之(6)css行高,盒模型,外边距

    李洪强和你一起学习前端之(6)css行高,盒模型,外边距 复习昨天的知识 1.1css书写位置: 内嵌式写法 外联式写法 <link href = "1.css" rel = ...

  6. 前端学习之路之CSS (四)

    Infi-chu: http://www.cnblogs.com/Infi-chu/ CSS盒子模型    概念:CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际 ...

  7. 李洪强和你一起学习前端之(3)Css基础和选择器

    大家好! 经过了前面的学习,是不是对前端的学习有了初步的了解.虽然我之前有iOS开发的经验,现在接触一门新的语言,对我来说 有一定的优势,但是一门技术对于谁来说都是公平的,我承认,我在接触新知识的时候 ...

  8. CSS 技巧一则 -- 在 CSS 中使用三角函数绘制曲线图形及展示动画

    最近一直在使用 css-doodle 实现一些 CSS 效果. css-doodle 是一个基于 Web-Component 的库.允许我们快速的创建基于 CSS Grid 布局的页面,以实现各种 C ...

  9. web前端学习(三)css学习笔记部分(1)-- css入门基础知识+基本样式

    1.介绍及语法 1.1CSS概述: CSS指层叠样式表 CSS样式表极大地提高了工作效率 如果值大于一个单词,需要加上引号(意思是值只有一个的时候可以不加引号) 1.2CSS高级语法 1.选择器分组 ...

  10. python 学习笔记十二 CSS基础(进阶篇)

    1.CSS 简介 CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通常存储在样式表中 把样式添加到 HTML 4.0 中,是为了解决内容与 ...

随机推荐

  1. 对 Redux 一头雾水?看完这篇就懂了

    首先,学习 Redux 可能会很困难 当你终于学会了如何使用 React,也有了自己去构建一些应用的信心,那会是一种非常棒的感觉.你学会了管理状态,一切看起来井井有条.但是,很有可能这就到了你该学习 ...

  2. Anaconda----Python的计算环境

    由于要用到opencv中的cv2这个module,我会在Anaconda这个Python的计算环境中安装加入opencv. 打开一个终端,输入: conda install opencv 显示: 选择 ...

  3. KMP 和 扩展KMP

    KMP:在主串S中找子串T的位置KMP算法的时间复杂度O(|S|+|T|). #define maxn 1000 char s[maxn],t[maxn];//s为主串,t为子串 int net[ma ...

  4. 【转】8 个效果惊人的 WebGL/JavaScript 演示

    英文原文:9 IMPRESSIVE WEBGL JAVASCRIPT EFFECT SHOWCASE,翻译:iteye WebGL 是一种 3D 绘图标准,这种绘图技术标准允许把 JavaScript ...

  5. Java 用集合实现简单的斗地主发牌

    创建数组.集合,存放数据 public class FightAgainstLandlords { /** * poker集合,存储54张牌 */ private ArrayList<Strin ...

  6. Spring Boot2 系列教程 (十五) | 服务端参数校验之一

    估计很多朋友都认为参数校验是客户端的职责,不关服务端的事.其实这是错误的,学过 Web 安全的都知道,客户端的验证只是第一道关卡.它的参数验证并不是安全的,一旦被有心人抓到可乘之机,他就可以有各种方法 ...

  7. cogs 1176. [郑州101中学] 月考 Map做法

    1176. [郑州101中学] 月考 ★★☆   输入文件:mtest.in   输出文件:mtest.out   简单对比时间限制:1 s   内存限制:128 MB [题目描述] 在上次的月考中B ...

  8. 通过核心API启动单个或多个scrapy爬虫

    1. 可以使用API从脚本运行Scrapy,而不是运行Scrapy的典型方法scrapy crawl:Scrapy是基于Twisted异步网络库构建的,因此需要在Twisted容器内运行它,可以通过两 ...

  9. 洛谷 P1658 购物

    题目链接 题目描述 你就要去购物了,现在你手上有N种不同面值的硬币,每种硬币有无限多个.为了方便购物,你希望带尽量少的硬币,但要能组合出1到X之间的任意值. 题目分析 题目要求组合出1到X之间的任意值 ...

  10. [洛谷P4617] [COCI2017-2018#5] Planinarenje

    Description \(Mirko\) 和 \(Slavko\) 喜欢一起去远足. \(Mirko\) 偏好攀登山峰,而 \(Slavko\) 偏爱山谷.因此每次他们登上一座山峰后,\(Slavk ...