首页 > 其他分享 >【面试题】不使用canvas, 绘制出一个 三角形,以及 等腰三角形

【面试题】不使用canvas, 绘制出一个 三角形,以及 等腰三角形

时间:2022-10-11 21:56:57浏览次数:41  
标签:面试题 transform color 100px canvas 等腰三角 height width background

面试遇到的,面试题
面试时只回答出,rotate+hidden的方式
自己想出了两种,rotate+hidden和linear-gradient
border和clip-path的方式借鉴自网络,

border
image

点击查看代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .triangle {
            width: 0;
            height: 0;
            border-top: 50px solid skyblue;
            border-right: 50px solid transparent;
            border-left: 50px solid transparent;
        }
    </style>
</head>
<body>
    <div class="triangle">
        
    </div>
</body>
</html>

linear-gradient
image

点击查看代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .triangle {
            width: 100px;
            height: 100px;
            background: linear-gradient( 45deg,skyblue 0% ,skyblue 50% , transparent 50% , transparent 100%);
        }
    </style>
</head>
<body>
    <div class="triangle">

    </div>
</body>
</html>

rotate+hidden
image

点击查看代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        body{
            letter-spacing: -1em;
        }
        .container {
            display: inline-block;
            width: 100px;
            height: 100px;
            overflow: hidden;
        }
        .triangle {
            background-color: red;
            transform-origin: 0 0;
            transform: rotateZ(45deg) scale(0.71); /* (3+4)/5 */
            width: 100px;
            height: 100px;
            /* border: skyblue solid 4px; */
        }
        .leftDiv{
            display: inline-block;
            width: 100px;
            height: 100px;
            background-color: skyblue;
        }
    </style>
</head>
<body>
    <div class="leftDiv">

    </div>
    <div class="container">
        <div class="triangle">
        
        </div>
    </div>
    
</body>
</html>

等边三角clip-path (也可以是非等边的)
image

点击查看代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>等边三角Clip-path</title>
    <style>
        .triangle {
            width: 80px;
            height: 100px;
            background-color: skyblue;
            clip-path: polygon(0 0,100% 50%,0 100%);
        }
    </style>
</head>
<body>
    <div class="triangle">

    </div>
</body>
</html>

等边三角rotate+hidden
image

点击查看代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>等边三角rotate+hidden</title>
    <style>
        body {
            letter-spacing: -1em;
        }
        .leftDiv {
            display: inline-block;
            width: 100px;
            height: 100px;
            background-color: skyblue;
        }
        .container {
            display: inline-block;
            overflow: hidden;
            width: 100px;
            transform-origin: 0 0;
            background-color: pink;
            transform: scale(1.25,1);
        }
        .triangle {
            letter-spacing: -1em;
            width: 100px;
            height: 100px;
            background-color: blue;
            background-color: white;
            transform-origin: 100% 0;
            transform: translate(-50%,0)  rotateZ(30deg) scale(1);

        }
        .triangle::before {
            display: block;
            content: ' ';
            width: 100px;
            height: 100px;
            background-color: red;
            background-color: white;
            transform-origin: 100% 0;
            transform:  rotateZ(-150deg) scale(1);

        }
        .triangle::after {
            display: block;
            content: ' ';
            width: 100px;
            height: 100px;
            background-color: green;
            background-color: white;
            transform-origin: 100% 0;
            transform:  rotateZ(-120deg) scale(1); 

        }
    </style>
</head>
<body>
    <div class="leftDiv">

    </div>
    <div class="container">
        <div class="triangle">

        </div>
    </div>
</body>
</html>

标签:面试题,transform,color,100px,canvas,等腰三角,height,width,background
From: https://www.cnblogs.com/justin999/p/16782686.html

相关文章

  • Canvas 画三角形 画个脸
    1.视图<canvasid="myCan"width="500px"height="500px"style="border:1pxsolid#3e2e40;"></canvas>2.JS<script>//拿到当前canvas画布节点letcanvas......
  • Canvas (画一个矩形)
    1.视图<canvasid="myCan"width="500px"height="500px"style="border:1pxsolid#3e2e40;"></canvas>2.JS<script>//拿到当前canvas画布节点letcanvas......
  • Canvas的 一点点记录
    <!--在试图中创建--><canvasid="myCan"width="500px"height="500px"style="border:1pxsolid#3e2e40;"></canvas>---------------------------<script>......
  • 看似简单的一道SQL面试题,你是否能够很快写出答案?
    如果觉得文章写得好,如果你想要博客文章中的数据,请关注公众号:【数据分析与统计学之美】,进群和作者交流!  近期在群里面看到了如下这样一个面试题目,这个题目其实难度不大,但......
  • 没有窗口函数,你能很快做出这道MySQL面试题吗?
      这是另外一个面试题目,相对难说有点难度,由于MySQL8.0以前没有“窗口函数”,当你碰到了这个题目,你是否能够很快写出这个答案来呢?请使用上述数据,完成如下效果:建表语句creat......
  • ××教育Excel数据分析面试题
    如果觉得文章写得好,如果你想要博客文章中的数据,请关注公众号:【数据分析与统计学之美】,进群和作者交流!目录  ​​1、用颜色标记重复值​​​ ​​2、用颜色标记出姓名中......
  • 「Java 数据结构」:手撕单链表的增删改查及大厂面试题。
    目录​​一、单链表的增删改查​​​​1、创建结点     ​​​​2、单链表的添加操作​​​​3、单链表的删除操作​​​​4、单链表的有效结点的个数​​​​二、......
  • 年底前端面试题总结(上)
    对keep-alive的理解HTTP1.0中默认是在每次请求/应答,客户端和服务器都要新建一个连接,完成之后立即断开连接,这就是短连接。当使用Keep-Alive模式时,Keep-Alive功能使客户端......
  • 10.5面试题
    请你说说ArrayList和LinkedList的区别ArrayList底层是数组实现的,数组是一组连续的内存单元,读取快(使用索引),插入删除慢(需要重新计算大小或是更新索引)LinkedList底层基于......
  • Nginx面试题
    1、请解释一下什么是Nginx?Nginx是一个web服务器和反向代理服务器,用于HTTP、HTTPS、SMTP、POP3和IMAP协议。2、请列举Nginx的一些特性。Nginx服务器的特性包括:反......