css三角形样式,div三角形样式

如何用CSS写一个三角形

1.可以用css3的border-radius属性来实现,支持ie9+

创新互联建站成立以来不断整合自身及行业资源、不断突破观念以使企业策略得到完善和成熟,建立了一套“以技术为基点,以客户需求中心、市场为导向”的快速反应体系。对公司的主营项目,如中高端企业网站企划 / 设计、行业 / 企业门户设计推广、行业门户平台运营、成都app软件开发成都做手机网站、微信网站制作、软件开发、遂宁服务器托管等实行标准化操作,让客户可以直观的预知到从创新互联建站可以获得的服务效果。

div class="dm"

/div

div class="dm1"

/div

div class="dm2"

/div

div class="dm3"

/div

div class="dm4"

/div

div class="dm5"

/div

div class="dm6"

/div

div class="dm7"

/div

style

.dm {

width: 0;

height: 0;

border-left: 50px solid transparent;

border-right: 50px solid transparent;

border-bottom: 100px solid #00897B;

}

.dm1{

  width: 0;

height: 0;

border-left: 50px solid transparent;

border-right: 50px solid transparent;

border-top: 100px solid #00897B;margin-top: 20px;

}

.dm2{

width: 0;

height: 0;

border-top: 50px solid transparent;

border-right: 100px solid #00897B;

border-bottom: 50px solid transparent;margin-top: 20px;

}

.dm3{

  width: 0;

height: 0;

border-top: 50px solid transparent;

border-left: 100px solid #00897B;

border-bottom: 50px solid transparent;margin-top: 20px;

}

.dm4{

   width: 0;

height: 0;

border-top: 100px solid #00897B;

border-right: 100px solid transparent;margin-top: 20px;

}

.dm5{

 width: 0;

height: 0;

border-top: 100px solid #00897B;

border-left: 100px solid transparent; margin-top: 20px;

}

.dm6{

  width: 0;

height: 0;

border-bottom: 100px solid #00897B;

border-right: 100px solid transparent

}

.dm7{

  width: 0;

height: 0;

border-bottom: 100px solid #00897B;

border-left: 100px solid transparent;

}

/style

【CSS】三角形实现的方式

只要前端入了门的小伙伴们想必大家一定见过这种组件:

上面画圈圈的部分有个三角形,一般这种popup或者tooltip都会存在这么一个小三角形,下面来介绍两种实现方式

这种三角形常见的方式是通过 border 属性来实现。由于 border 有上下左右四个边,像上图我们可以:

根据各个边框宽度的不同可以实现不同的三角形,

并且一般我们写这种没有业务含义的装饰时推荐使用 :after 、 :before 伪类来实现,使dom保持整洁。

当然除了使用 border 来实现,我们也可以使用 clip-path 来实现;

简单介绍:

我们可以:

上面 polygon 中的参数是各个点的坐标(x轴坐标,y轴坐标),

以元素的Content+Padding的宽高作为百分比的基准,左上角作为坐标原点按点连线,图形出现在第四象限里;

当然我们不止可以用它来画三角形,其他任何的图形都可以拿它来实现。不知道大家用没用过ps,这个属性和ps中的‘钢笔’工具很相似。

我们也可以通过使用 path ,将svg路径传入:

综上所述,感觉这个 clip-path 功能很强大,能绘制出很多不同的形状。

但是但是但是!!!

border 属性兼容性极好基本不存在问题; clip-path 属性兼容性就差很多,如果是内部使用的B端项目还是很推荐的。还有其他常见的实现方式评论区见~~

另附上caniuse:

css绘制三角形原理-border

在css中可以使用border实现一个三角形,举个例子:

效果展示如下:

那么为什么将border的三个边设置为transparent透明以后能生产一个三角形呢?接下来我们一步步解析。

我们来看一个平时使用的border例子:

这是我们平常使用border最普遍的情况——往往只给border一个较小的宽度(通常为1-2px);然而这样的日常用法就会容易让大家对border的形成方式产生误解,即认为元素的border是由四个矩形边框拼接而成。

然而事实并不是这样。实际上,元素的border是由三角形(准确说也是等边梯形)组合而成,为了说明这个问题,我们可以增大border的宽度,并为各border边设置不同的颜色:

效果图:

我们可以看到明显的四条边不是长方形,而是梯形,很像相框的四条边。

梯形的底是div对应的height或者width,梯形的高是对应border的宽度,梯形的顶边长度取决于div的内部空间。

我们进一步把div的高宽都改为0,梯形的顶边宽度变成了0,则可以得到对应的三角形了。

效果图:

此时元素由上下左右4个三角形“拼接”而成;那么,为了实现最终的效果,即保留最s上方的三角形,还应该怎么做?很简单,我们只需要把其它border边的颜色设置为白色或透明色:

效果图:

最终的简单三角形就绘制出来了。同理,如果想要得到其它边上的三角形,只需要将剩余的border边颜色设置为白色或透明色即可。

不过,被“隐藏”的上border仍然占据着空间,要想使得绘制出的三角形尺寸最小化,还需要将上border的宽度设置为0(其它情况同理):

怎么用css写出三角形?

我们的思路是使用border边框来实现三角形的样式,因为border的边框是由四个三角形组成的。

请点击输入图片描述

首先我们创建一个带边框的div:

具体代码实现如下:

width: 40px;

height: 40px;

border-width: 40px;

border-style: solid;

border-color: red green blue brown;

请点击输入图片描述

然后我们将内部DIV的宽高设置为0:

width: 20px;

height: 20px;

border-width: 10px;

border-style: solid;

border-color: red green blue brown;

请点击输入图片描述

将其他的三个边框给取消点:

width: 0;

height: 0;

border-width: 40px;

border-style: solid;

border-color: red transparent transparent transparent;

请点击输入图片描述

利用更改border的边框,我们可以随意控制写出我们想要的三角形,通过控制边框的大小来实现三角形的大小,通过控制边框的位置来改变三角形的位置。

请点击输入图片描述

6

使用上面的方式实现三角形有一个问题就是,三角形的方位不太好控制,但是使用其他的方式依然会面临这样的问题。

请点击输入图片描述

使用CSS 绘制三角形的几种方法

三角形 可以用 边框 border 绘制 实心的

也可以 用 iconfont 实心空心的 都有

还有可以使用canvas 绘制 什么样子都行 随你喜欢

CSS实现三角形

通过设置 宽和高为0 ,改变 border-color 属性即可实现三角形效果。

在当前的三角形后面添加一个一个实心三角形,然后将这个三角形绝对定位到当前三角行的位置切割。


网站栏目:css三角形样式,div三角形样式
文章出自:http://azwzsj.com/article/dsscgio.html