经典面试题:如何使用CSS画一个三角形?

简介: 经典面试题:如何使用CSS画一个三角形?

一、前言

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

通常情况下,我们会使用图片或者svg去完成三角形效果图,但如果单纯使用css如何完成一个三角形呢?

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

二、如何实现?

1.实现简易三角形

前置小知识:当块级元素宽高都为0,且只设置边框的时候,则会构成正方体。具体实现如下

            div {
                width: 0;
                height: 0;
                border: 50px solid red;
            }

效果如下

实质上上下左右的边框都是一个三角形,所以我们 显示我们想要的三角形,隐藏其他三个方向的三角形即可。

假如我们想留下上边的三角形

            div {
                width: 0;
                height: 0;
                /* 排他思想,给全部的边框设置为透明 */
                border: 50px solid transparent;
                /* 单独给你想要的三角形设置样式 */
                border-top: 100px solid red;
            }

效果如下

2.实现空心三角形

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

(1).当为div添加伪类利用绝对定位 初始定位left:0 right:0,后面再进行调整

            div {
                width: 0;
                height: 0;
                border: 50px solid transparent;
                border-bottom: 50px solid red;
                position: relative;
            }
            div::after {
                content: '';
                border: 40px solid transparent;
                border-bottom: 40px solid green;
                position: absolute;
                top: 0px;
                left: 0px;
            }

现在初始的效果如下

(2).随后再对伪类元素(绿色三角形)进行位置的调整和设置 border-bottom颜色为white,达到中间空心的效果

代码如下

            div {
                width: 0;
                height: 0;
                border: 50px solid transparent;
                border-bottom: 50px solid red;
                position: relative;
            }
            div::after {
                content: '';
                border: 40px solid transparent;
                /* 将伪类元素的三角形设置为白色,达到空心的效果 */
                border-bottom: 40px solid white;
                position: absolute;
                /* 调整伪类元素的位置 */
                top: -34px;
                left: -39px;
            }

达到的最终效果如下

三。小结

以上我们实现了用css绘制三角形的两种方法,再实际开发中应该也会遇到,我们不仅仅可以使用字体图标库实现需求,我们自己也可以通过原生的css实现需求。

目录
相关文章
|
前端开发
如何使用css写三角形
如何使用css写三角形
94 4
|
前端开发
用纯 CSS 创建一个三角形
使用纯 CSS 可以通过边框技巧创建三角形。例如,要创建一个指向下方的等边三角形,可以将 `width` 和 `height` 设为 `0`,并通过透明的左右边框和有颜色的底边来形成三角形。
|
前端开发
CSS制作小三角形
CSS制作小三角形
79 1
|
前端开发
CSS绘制三角形的方法
CSS绘制三角形的方法
|
前端开发 容器
前端面试热门问题--浮动和清除浮动(CSS)
前端面试热门问题--浮动和清除浮动(CSS)
|
前端开发
如何使用css写三角形
如何使用css写三角形
106 1
|
Web App开发 前端开发 JavaScript
「offer来了」1张思维导图,6大知识板块,带你梳理面试中CSS的知识点!
该文章通过一张思维导图和六大知识板块系统梳理了前端面试中涉及的CSS核心知识点,包括CSS框架、基础样式问题、布局技巧、动画处理、浏览器兼容性及性能优化等方面的内容。
|
前端开发 容器
分享一些我在面试时所遇到的CSS问题 (五)
分享一些我在面试时所遇到的CSS问题 (五)
|
前端开发 容器
分享一些我在面试时所遇到的CSS问题 (四)
分享一些我在面试时所遇到的CSS问题 (四)
|
前端开发 JavaScript
分享一些我在面试时所遇到的CSS问题 (三)
分享一些我在面试时所遇到的CSS问题 (三)

热门文章

最新文章

  • 1
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
  • 4
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
  • 5
    React 中如何安装与使用 Tailwind CSS
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
  • 9
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation