css基础知识十八:CSS如何画一个三角形?原理是什么?

这篇具有很好参考价值的文章主要介绍了css基础知识十八:CSS如何画一个三角形?原理是什么?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

css基础知识十八:CSS如何画一个三角形?原理是什么?,css,前端
一、前言

在前端开发的时候,我们有时候会需要用到一个三角形的形状,比如地址选择或者播放器里面播放按钮

css基础知识十八:CSS如何画一个三角形?原理是什么?,css,前端
通常情况下,我们会使用图片或者svg去完成三角形效果图,但如果单纯使用css如何完成一个三角形呢?

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

二、实现过程

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

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

效果如下图所示:
css基础知识十八:CSS如何画一个三角形?原理是什么?,css,前端
将border设置50px,效果图如下所示:
css基础知识十八:CSS如何画一个三角形?原理是什么?,css,前端
白色区域则为width、height,这时候只需要你将白色区域部分宽高逐渐变小,最终变为0,则变成如下图所示:
css基础知识十八:CSS如何画一个三角形?原理是什么?,css,前端
这时候就已经能够看到4个不同颜色的三角形,如果需要下方三角形,只需要将上、左、右边框设置为透明就可以得到下方的红色三角形
css基础知识十八:CSS如何画一个三角形?原理是什么?,css,前端
但这种方式,虽然视觉上是实现了三角形,但实际上,隐藏的部分任然占据部分高度,需要将上方的宽度去掉

最终实现代码如下:

.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;
}

效果图如下所示:
css基础知识十八:CSS如何画一个三角形?原理是什么?,css,前端
伪类元素定位参照对象的内容区域宽高都为0,则内容区域即可以理解成中心一点,所以伪元素相对中心这点定位

将元素定位进行微调以及改变颜色,就能够完成下方效果图:
css基础知识十八:CSS如何画一个三角形?原理是什么?,css,前端
最终代码如下:

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

三、原理分析

可以看到,边框是实现三角形的部分,边框实际上并不是一个直线,如果我们将四条边设置不同的颜色,将边框逐渐放大,可以得到每条边框都是一个梯形

css基础知识十八:CSS如何画一个三角形?原理是什么?,css,前端
当分别取消边框的时候,发现下面几种情况:

  • 取消一条边的时候,与这条边相邻的两条边的接触部分会变成直的
  • 当仅有邻边时, 两个边会变成对分的三角
  • 当保留边没有其他接触时,极限情况所有东西都会消失
    css基础知识十八:CSS如何画一个三角形?原理是什么?,css,前端
    通过上图的变化规则,利用旋转、隐藏,以及设置内容宽高等属性,就能够实现其他类型的三角形

如设置直角三角形,如上图倒数第三行实现过程,我们就能知道整个实现原理

实现代码如下:文章来源地址https://www.toymoban.com/news/detail-540019.html

.box {
    /* 内部大小 */
    width: 0px;
    height: 0px;
    /* 边框大小 只设置两条边*/
    border-top: #4285f4 solid;
    border-right: transparent solid;
    border-width: 85px; 
    /* 其他设置 */
    margin: 50px;
}

到了这里,关于css基础知识十八:CSS如何画一个三角形?原理是什么?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于CSS的基础知识

    CSS的基本介绍 css(Cascading style sheets):层叠样式表 作用:给页面中的html标签设置样式 css标签写在style标签中,style标签一般写在head标签里面,title标签下面 css常见引入方式 title引入方式一(内嵌式)/title 内嵌式:css写在style里,作用在当前页面(小案例) 外联式:css写在

    2024年01月19日
    浏览(44)
  • CSS——基础知识及使用

    CSS是层叠样式表 (Cascading Style Sheets)的简写. CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结构分离。 选择器 + { 一条/N条声明 } 选择器决定针对谁修改 (找谁) 声明决定修改啥. (干啥) 声明的属性是键值对. (使用 ; 区分键值对

    2024年02月16日
    浏览(33)
  • CSS基础知识,必须掌握!!!

    CSS背景属性用于定义HTML元素的背景 CSS属性定义背景效果: background-color - 定义背景颜色 background-image - 定义背景图片 background-repeat - 是否平铺,水平平铺(repeat-x)、垂直平铺(repeat-y)、不平铺(no-repeat) background-attachment - 是否固定背景图片,不随滚动而发生位置改变 bac

    2023年04月09日
    浏览(53)
  • 【JavaEE】CSS基础知识

    CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结构分离;简单的说就是,没用CSS之前就相当于原照片,使用CSS之后,照片就相当于被p了,被美颜了。 选择器 + {一条/N条声明} 选择器决定针对谁修改 (找谁) 声明决定修改啥

    2024年02月02日
    浏览(37)
  • CSS的基础知识讲解

    一般来说我们CSS就是我们对浏览器的第二个操作,就是给网页穿衣服.让网页变得更好看. 在CSS中,选择器用于选择HTML文档中的元素,从而将样式应用于这些元素。选择器通常基于元素的标签名、类名、ID、属性值或父子关系等特征来进行匹配。 标签选择器:选择某个 HTML 标签

    2024年02月05日
    浏览(37)
  • CSS基础知识点

    目录 ​编辑一、基本语法规范 二、CSS 选择器 1、简单选择器  (1)标签选择器 (2)类选择器 (3)ID 选择器 2、复合选择器 (1)后代选择器 (2)子选择器 (3)并集选择器 三、CSS常用属性值 1、设置字体家族 2、设置字体大小 3、设置字体的粗细 4、文字倾斜设置 5、文字

    2024年02月11日
    浏览(50)
  • css 动画基础知识和案例

      想要更好的掌握知识,可以常识将知识教授出来。这就是写这篇文章的目的。     animation:创建动画的意思;其中的属性有:animation:属性,执行时间 显示方式 执行次数。    animation: 执行动画名称 执行时间(50s 代表50s执行一个循环) 执行速度(linear 代表匀速) 重复次数

    2024年04月25日
    浏览(39)
  • css基础知识十一:CSS3新增了哪些新特性?

    一、是什么 css,即层叠样式表(Cascading Style Sheets)的简称,是一种标记语言,由浏览器解释执行用来使页面变得更为美观 css3是css的最新标准,是向后兼容的,CSS1/2的特性在CSS3 里都是可以使用的 CSS3 也增加了很多新特性,为开发者带来了更佳的开发体验 从几个维度列举一些

    2024年02月11日
    浏览(34)
  • CSS 基础拾遗(核心知识、常见需求)

    本篇文章围绕了 CSS 的核心知识点和项目中常见的需求来展开。虽然行文偏长,但较基础,适合初级中级前端阅读,阅读的时候请适当跳过已经掌握的部分。 这篇文章断断续续写了比较久,也参考了许多优秀的文章,但或许文章里还是存在不好或不对的地方,请多多指教,可

    2023年04月21日
    浏览(73)
  • Html基础知识学习——css精灵(十五)

    将网页用到的图片放在一张图片上,进行定位展示 优点:防止网页http请求次数过多,从而提高页面性能 缺点:降低开发效率。维护难度加大 使用图 网页制作图 用到图片 网页制作

    2024年02月16日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包