首页 > 其他分享 >CSS画一个三角形

CSS画一个三角形

时间:2022-12-25 23:32:43浏览次数:66  
标签:40px 一个 50px width 三角形 border transparent CSS

前言

在前端开发的时候,我们有时候会需要用到一个三角形的形状,比如地址选择或者播放器里面播放按钮。 通常情况下,我们会使用图片或者svg去完成三角形效果图,但如果单纯使用css如何完成一个三角形呢?

实现过程似乎也并不困难,通过边框就可完成

#二、实现过程

在以前也讲过盒子模型,默认情况下是一个矩形,实现也很简单

<style>
    .border {
        width: 50px;
        height: 50px;
        border: 2px solid;
        border-color: #96ceb4 #ffeead #d9534f #ffad60;
    }
</style>
<div class="border"></div>

效果如下图所示:

border设置50px,效果图如下所示:

白色区域则为widthheight,这时候只需要你将白色区域部分宽高逐渐变小,最终变为0,则变成如下图所示:

这时候就已经能够看到4个不同颜色的三角形,如果需要下方三角形,只需要将上、左、右边框设置为0就可以得到下方的红色三角形

但这种方式,虽然视觉上是实现了三角形,但实际上,隐藏的部分任然占据部分高度,需要将上方的宽度去掉

最终实现代码如下:

.border {
    width: 0;
    height: 0;
    border-style:solid;
    border-width: 0 50px 50px;
    border-color: transparent transparent #d9534f;
}

如果想要实现一个只有边框是空心的三角形,由于这里不能再使用border属性,所以最直接的方法是利用伪类新建一个小一点的三角形定位上去

.border {
    width: 0;
    height: 0;
    border-style:solid;
    border-width: 0 50px 50px;
    border-color: transparent transparent #d9534f;
    position: relative;
}
.border:after{
    content: '';
    border-style:solid;
    border-width: 0 40px 40px;
    border-color: transparent transparent #96ceb4;
    position: absolute;
    top: 0;
    left: 0;
}

效果图如下所示:

i

伪类元素定位参照对象的内容区域宽高都为0,则内容区域即可以理解成中心一点,所以伪元素相对中心这点定位

将元素定位进行微调以及改变颜色,就能够完成下方效果图:

最终代码如下:

.border:after {
    content: '';
    border-style: solid;
    border-width: 0 40px 40px;
    border-color: transparent transparent #96ceb4;
    position: absolute;
    top: 6px;
    left: -40px;
}

结语

本文到此结束,谢谢大家的观看!

如有问题,欢迎各位指正!

标签:40px,一个,50px,width,三角形,border,transparent,CSS
From: https://blog.51cto.com/u_15718546/5968497

相关文章

  • 8款web设计的CSS 工具
    当涉及到简化 css 设计和开发相关的工作时,工具总能创造奇迹。值得指出的是,绝大多数的网页设计者和开发人员对不同的 css 工具都感到兴奋,这些工具能帮助他们更快的制作功......
  • 一个脚本文件的解析
    脚本的功能:(1)将脚本所在的当前路径名以“\”进行分隔(2)将分隔后的元素分别入到以a-j区间内10个字母为名的变量中,如果目录没有这么多层次,则相关变量的值为空(3)设置相关标志符,为......
  • CSS Flex 布局的 flex-direction 属性讲解
    flex-direction设置了主轴,从而定义了弹性项目放置在弹性容器中的方向。Flexbox是一种单向布局概念,可将弹性项目视为主要以水平行或垂直列布局。.container{flex-d......
  • CSS Flex 布局的引入背景
    Flexbox布局(FlexibleBox)模块(截至2017年10月的W3C候选推荐)旨在提供一种更有效的方式来布局、对齐和分配容器中item元素之间的空间,即使它们的大小未知和/或动态,这......
  • 使用Scanner类从控制台输入一个字符类型的数据
    java中用Scanner输入一个字符:Scanner类中没有直接接收字符的方法,我们可以用nextLine();和next();接收一个字符串类型的数据后,调用String类里面的charAt​(0);获取第......
  • 8种纯CSS实现的炫酷HOVER效果,你应该在网站中尝试使用
    英文| https://www.blog.duomly.com/html-button-hover-effects/作者| AnnaDanilec翻译|web前端开发按钮悬停效果简介​按钮是每个页面,Web应用程序或移动应用程序中......
  • 【开发小技巧】031—用CSS3如何实现钟摆动画的导航栏菜单效果
    编辑|web前端开发(web_qdkf)我们都知道,CSS3可以实现很多很酷的动画效果,而今天我们将与大家分享一期用CSS3制作的钟摆动画菜单效果,在这个动画中,我们主要采用CSS3来控制SVG图......
  • 【开发小技巧】030—用HTML与CSS如何实现可悬停的侧面导航效果?
    编辑|web前端开发(ID:web_qdkf)今天,我们将与大家分享一种带图标的可悬停侧边导航栏的制作方法,主要用到的还是HTML和CSS。想要实现在导航栏上附加图标,这个实现的方式有很多......
  • 多层嵌套的CSS 3D动画技术详解
    CSS动画是当前一种非常火爆的技术,我说的并不是一些简单的颜色变换或长短属性变换,我说的是3D变换技术;纯CSS实现的翻滚旋转立方体就是最典型的例子。网上能找到很多关于CSS动......
  • 如何把一个 Shell 脚本打包成一个 macOS 桌面 App All In One
    如何把一个Shell脚本打包成一个macOS桌面AppAllInOne如何把一个shell脚本可执行文件转换成一个macOS可以直接运行的App#!/bin/bash#执行Chrome.app#......