CSS画三角形、圆形、椭圆形总结

html-css028

CSS画三角形、圆形、椭圆形总结,第1张

CSS画正方形长方形很简单,本文就不说了。

一、三角形

1、CSS画等腰三角形

2、画直角三角形:

二、画圆形

注意:border-radius是width/height的一半(50%)。

画半圆:

半圆的画法是把高度设为宽度的一半,并且也只设置左上角和右上角的半径,且半径为宽度的一半。

画四分之一圆:是把高度和宽度设置为相等,只设置一个圆角,其半径等于高度或宽度。

三、画椭圆

斜杠前面的一组四个值分别表示四个角的水平半径;斜杠后面的一组四个值分别表示四个角的垂直半径。

四、平行四边形

margin-left是为了使得平行四边形可以全部在浏览器中显示出来

五、梯形

高度为0。有宽度没高度。

六、五边形、六边形

我在另一个问题里面涉及到了这个,你可以参考一下。网页链接

伪类你也可以理解为一个容器,不过为了展示顺利需要添加   content: ''和display:block;为了能够准确定位,需要结合其容器设置定位,这都是基础不需要多介绍。

使用伪类做左右的箭头主要是需要了解 边框的构成

{

 border: 20px solid #333

   border-top-color: #369

   border-bottom-color: red

   border-left-color: green

   border-radius: 0

}

如图,我用四个颜色分别给四条边上色,可以看出来每一个边在宽度大于1的时候表现出的样子就倾向于一个梯形。

而我们可以理解为三角形其实就是梯形的一条底边长度为零。

那么为了得到一个三角形那么我们只需要容器的宽高都为零就可以了,如图:

 {

   border: 20px solid #333

   border-top-color: #369

   border-bottom-color: red

   border-left-color: green

   border-radius: 0

   font-size: 0

   width: 0

   height: 0

   padding: 0

}

下一步我们只留下一个三角形。

只要让不需要展示的边颜色为透明就可以了

{

   border: 20px solid transparent

   /* border-top-color: #369 */

   /* border-bottom-color: red */

   border-left-color: green

   border-radius: 0

   font-size: 0

   width: 0

   height: 0

   padding: 0

}

这样你拿到的是上下左右四个方向的三角形,同样的 你如果需要的是斜向右上角的或者其他角度的,只要自己凑出这个方向就可以,类似于七巧板。

如果希望三角形呈现的不是直角三角形可以修改各个边的宽度。。

{

   border: 20px solid transparent

   border-top-color: #369

   /* border-bottom-color: red */

   border-left-color: green

   border-radius: 0

   font-size: 0

   width: 0

   height: 0

   padding: 0

}

<div class="arrow-up"><!--向上的三角--></div>

<div class="arrow-down"><!--向下的三角--></div>

<div class="arrow-left"><!--向左的三角--></div>

<div class="arrow-right"><!--向右的三角--></div>

CSS

/*向上的三角*/

.arrow-up {

width:0

height:0

border-left:30px solid transparent

border-right:30px solid transparent

border-bottom:30px solid #fff

}

/*箭头向下*/

.arrow-down {

width:0

height:0

border-left:20px solid transparent

border-right:20px solid transparent

border-top:20px solid #0066cc

}

/*箭头向左*/

.arrow-left {

width:0

height:0

border-top:30px solid transparent

border-bottom:30px solid transparent

border-right:30px solid yellow

}

/*箭头向右*/

.arrow-right {

width:0

height:0

border-top:50px solid transparent

border-bottom: 50px solid transparent

border-left: 50px solid green

}