CSS三角形绘制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSS三角形绘制相关的知识,希望对你有一定的参考价值。

参考技术A 当div宽度为0,高度为0的时候,只设置border的大小和四边不同颜色可看到下图,只保留一边的颜色,另外三边的颜色设置为transparent可得到一个方向的三角形。因此,可延伸出设置一边的border的颜色,相邻两边的border设置为transparent可得到一个方向的三角形。

border的大小的值为三角形底边上的高,三角形的底为相邻两边的border的高的和,如下图所示的红色锐角三角形

若想实现直角三角形的效果,如下图所示直角在左上的三角形,按原理可设置上border和左border的颜色,另外两条边的颜色为transparent,此样式可简写为只设置上border的颜色,另一条相邻的右border为transparent

你也许会遇到要画个奇怪三角形的时候,只要参考锐角三角形的方式,找到三角形底边和高,计算出三角形高和把相邻两条边的高相加作为底部,你可以画出各种各样的三角形,如果再加上角度旋转的css,你便啥三角形都能画!

此类三角形解决思路通常使用两个不同颜色的三角形做颜色叠加,比如做如上图所示的边框为1px的红色边框白色底三角形,就先画一个红色三角形,再画一个尺寸少2px的白色底三角形,然后设置两个三角形的position将三角形重叠,这里使用伪元素实现

1、向上正箭头

2、向下正箭头

3、向左正箭头

4、向右正箭头

5、向左上箭头

6、向右上箭头

7、向左下箭头

8、向右下箭头

CSS中使用border属性来绘制三角形

文章目录

CSS中使用border属性来绘制三角形

在网页设计中我们经常会看到如下这样的三角形,今天我们就来使用border属性来实现这些三角形的绘制

首先我们来学习一下CSS的border属性

border-style 属性

border-style 属性指定要显示的边框类型。

允许以下值:

  • dotted - 定义点线边框
  • dashed - 定义虚线边框
  • solid - 定义实线边框
  • double - 定义双边框
  • groove - 定义 3D 坡口边框。效果取决于 border-color 值
  • ridge - 定义 3D 脊线边框。效果取决于 border-color 值
  • inset - 定义 3D inset 边框。效果取决于 border-color 值
  • outset - 定义 3D outset 边框。效果取决于 border-color 值
  • none - 定义无边框
  • hidden - 定义隐藏边框

border-style 属性可以设置一到四个值(用于上边框、右边框、下边框和左边框)。

<!DOCTYPE html>
<html>
<head>
<style>
p.dotted border-style: dotted;
p.dashed border-style: dashed;
p.solid border-style: solid;
p.double border-style: double;
p.groove border-style: groove;
p.ridge border-style: ridge;
p.inset border-style: inset;
p.outset border-style: outset;
p.none border-style: none;
p.hidden border-style: hidden;
p.mix border-style: dotted dashed solid double;
</style>
</head>
<body>

<h1>border-style 属性</h1>

<p>此属性规定要显示的边框类型:</p>

<p class="dotted">点状边框。</p>
<p class="dashed">虚线边框。</p>
<p class="solid">实线边框。</p>
<p class="double">双线边框。</p>
<p class="groove">凹槽边框。</p>
<p class="ridge">垄状边框。</p>
<p class="inset">3D inset 边框。</p>
<p class="outset">3D outset 边框。</p>
<p class="none">无边框。</p>
<p class="hidden">隐藏边框。</p>
<p class="mix">混合边框。</p>

</body>
</html>

参考:CSS 边框

border-width 属性

border-width 属性指定四个边框的宽度。

可以将宽度设置为特定大小(以 px、pt、cm、em 计),也可以使用以下三个预定义值之一:thin、medium 或 thick

<!DOCTYPE html>
<html>
<head>
<style>
p.one 
  border-style: solid;
  border-width: 5px;


p.two 
  border-style: solid;
  border-width: medium;


p.three 
  border-style: dotted;
  border-width: 2px;


p.four 
  border-style: dotted;
  border-width: thick;


p.five 
  border-style: double;
  border-width: 15px;


p.six 
  border-style: double;
  border-width: thick;

</style>
</head>
<body>

<h1>border-width 属性</h1>

<p>此属性规定四条边框的宽度:</p>

<p class="one">一些文本。</p>
<p class="two">一些文本。</p>
<p class="three">一些文本。</p>
<p class="four">一些文本。</p>
<p class="five">一些文本。</p>
<p class="six">一些文本。</p>

<p><b>注释:</b>border-color 属性单独使用时不起作用。请首先使用 border-style 属性设置样式。</p>

</body>
</html>

border-width 属性可以设置一到四个值(用于上边框、右边框、下边框和左边框)

p.one 
  border-style: solid;
  border-width: 5px 20px; /* 上边框和下边框为 5px,其他边为 20px */


p.two 
  border-style: solid;
  border-width: 20px 5px; /* 上边框和下边框为 20px,其他边为 5px */


p.three 
  border-style: solid;
  border-width: 25px 10px 4px 35px; /* 上边框 25px,右边框 10px,下边框 4px,左边框 35px */

参考:CSS 边框宽度

border-color 属性

border-color 属性用于设置四个边框的颜色。

可以通过以下方式设置颜色:

  • name - 指定颜色名,比如 “red”
  • HEX - 指定十六进制值,比如 “#ff0000”
  • RGB - 指定 RGB 值,比如 “rgb(255,0,0)”
  • HSL - 指定 HSL 值,比如 “hsl(0, 100%, 50%)”
  • transparent

注释:如果未设置 border-color,则它将继承元素的颜色

border-color 属性可以设置一到四个值(用于上边框、右边框、下边框和左边框)

p.one 
  border-style: solid;
  border-color: red green blue yellow; /* 上红、右绿、下蓝、左黄 */

参考:CSS 边框颜色

CSS 边框各边

在 CSS 中,还有一些属性可用于指定每个边框(顶部、右侧、底部和左侧):

p 
  border-top-style: dotted;
  border-right-style: solid;
  border-bottom-style: dotted;
  border-left-style: solid;

参考:CSS 边框各边

CSS Border - 简写属性

为了缩减代码,也可以在一个属性中指定所有单独的边框属性。

border 属性是以下各个边框属性的简写属性:

  • border-width
  • border-style(必需)
  • border-color
p 
  border: 5px solid red;

参考:CSS 简写边框属性

使用border属性来绘制三角形

上面就简单介绍这么多,大概了解一下就可以了。接下来我们来讲一讲如何使用border属性来绘制三角形。

我们先来看下面一段样式和效果

.a1 
  width: 100px;
  height: 100px;
  background-color: yellow;
  border-top: 50px solid greenyellow;
  border-bottom: 50px solid deeppink;
  border-left: 50px solid bisque;
  border-right: 50px solid chocolate;


从上面的图我们可以看到,边框交界的地方是有一个三角形的。当我们把div的高度和宽度设置为0就能更加明显的看出来了

.a2 
  width: 0;
  height: 0;
  background-color: yellow;
  border-top: 50px solid greenyellow;
  border-bottom: 50px solid deeppink;
  border-left: 50px solid bisque;
  border-right: 50px solid chocolate;


可以看到当把高度和宽度都设置为0的时候,就变成一个由四个小三角形形成的正方形。

那我们可以其他部分设置成透明的,只显示一个三角形就能达到我们想要的效果

  1. 我们可以使用transparent属性来设置透明
.a3 
  width: 0;
  height: 0;
  background-color: transparent;
  border-top: 50px solid transparent;
  border-bottom: 50px solid transparent;
  border-left: 50px solid transparent;
  border-right: 50px solid chocolate;


.a4 
  width: 0;
  height: 0;
  background-color: transparent;
  border-top: 50px solid transparent;
  border-bottom: 50px solid transparent;
  border-left: 50px solid bisque;
  border-right: 50px solid transparent;


.a5 
  width: 0;
  height: 0;
  background-color: transparent;
  border-top: 50px solid transparent;
  border-bottom: 50px solid deeppink;
  border-left: 50px solid transparent;
  border-right: 50px solid transparent;


.a6 
  width: 0;
  height: 0;
  background-color: transparent;
  border-top: 50px solid greenyellow;
  border-bottom: 50px solid transparent;
  border-left: 50px solid transparent;
  border-right: 50px solid transparent;



我们还可以把两个三角形拼起来,构造更多不同方向的三角形

.triangle-topright 
    width: 0;
    height: 0;
    border-top: 50px solid red;
    border-left: 50px solid transparent; 


.triangle-bottomleft 
    width: 0;
    height: 0;
    border-bottom: 50px solid red;
    border-right: 50px solid transparent;


.triangle-bottomright 
    width: 0;
    height: 0;
    border-bottom: 50px solid red;
    border-left: 50px solid transparent;

  1. 使用颜色中的rgba实现即可。最后一个数值即是对象的不透明度属性。值为1,完全可视,值为零,完全不可视。半透明效果可设置为0到1的其中任意值,一般取0.5。
.a7 
  width: 0;
  height: 0;
  background-color: transparent;
  border-top: 50px solid red;
  border-bottom: 50px solid rgba(255, 255, 255, 0);
  border-left: 50px solid rgba(255, 255, 255, 0);
  border-right: 50px solid rgba(255, 255, 255, 0);


以上是关于CSS三角形绘制的主要内容,如果未能解决你的问题,请参考以下文章

css CSS绘制三角形

css CSS绘制三角形

CSS中使用border属性来绘制三角形

怎么利用CSS3绘制三角形

纯CSS绘制三角形(各种角度)

CSS 三角形绘制方法