【前端基础面试题】如何用CSS画一个三角形(详解)

简介: 【前端基础面试题】如何用CSS画一个三角形(详解)

教学

       思路

             加粗边框,设置一个宽高为0的中心点,通过对角线划分的切割法,就得到了四个三角形,然后三个透明就可以得到一个三角形 。

       答案

<style>
    div {
        width: 0px;
        height: 0px;
        border: 100px solid transparent;
        border-bottom-color: red;
    }
</style>
<body>
    <div></div>
</body>

image.gif

      image.gif编辑

       理解

                       

<style>
    #square {
        width: 200px;
        height: 200px;
        background-color: red;
        margin-bottom: 20px;
    }
    #square1 {
        width: 0px;
        height: 0px;
        border: 100px solid red;
    }
</style>
<body>
    <div id="square"></div>
    <div id="square1"></div>
</body>

image.gif

              image.gif编辑

               这段代码显示两个红色的正方形,第一个就是大小的红色正角形,第二个则是由边框构成的正方形,两个正方形大小一样,左右上下边框各一对,一个边框100px一对200px,两个正方形大小一样。

               我们分别改变一下边框的颜色,以便更好的观看,

               

#square1 {
        width: 0px;
        height: 0px;
        border-bottom: 100px solid red;
        border-right: 100px solid blue;
        border-left: 100px solid yellow;
        border-top: 100px solid green;
    }

image.gif

                       image.gif编辑

                由四个三角形边框组成的正方形,沿着对角形切割而成的四个三角形。

               我们只需要将另外三个三角形设置成透明(transparent),就变成了一个三角形。

               

#square1 {
        width: 0px;
        height: 0px;
        border-bottom: 100px solid red;
        border-right: 100px solid transparent;
        border-left: 100px solid transparent;
        border-top: 100px solid transparent;
    }
    /* 优化 */
    #square1 {
        width: 0px;
        height: 0px;
        border: 100px solid transparent;
        border-bottom-color: red;
    }

image.gif

               image.gif编辑

               这样就得到一个三角形了!

        疑问

               为什么不直接设置一个边框一个三角形

                               

<style>
    #square1 {
        width: 0px;
        height: 0px;
        border-bottom: 100px solid red;
    }
</style>
<body>
    <div id="square1"></div>
</body>

image.gif

              这样设置的话什么都不会显示,我就不截图了,设置的单条边框跟宽度一样没有。所以不会设置一条边框,就变成三角形。

              宽高为什么设置为0,和不设置宽高的区别

                       我们把宽度高度取消,单设置一条边框。

               

<style>
    #square1 {
        border-bottom: 100px solid red;
    }
</style>
<body>
    <div id="square1"></div>
</body>

image.gif

image.gif编辑

           结果就是一条高度100px的线条,宽度不知道是多少,div的默认宽度为父元素的100%,也就是占了body的宽度,

       image.gif编辑

这是不设置宽高 光设置边框的结果,所以为了得到任意四个三角形的一个  我们要设置 宽高,将宽高设置成0px,缩小中心点让它变成三角形而不是梯形,也改变了默认的100%宽度属性。

相关文章
|
16天前
|
前端开发 程序员
CSS前端学习(online tuorials)
CSS前端学习(online tuorials)
14 5
|
29天前
|
前端开发 数据安全/隐私保护
探秘CSS类型选择器:解码前端设计的神秘密码!
探秘CSS类型选择器:解码前端设计的神秘密码!
探秘CSS类型选择器:解码前端设计的神秘密码!
|
1月前
|
前端开发 JavaScript 程序员
后端程序员的前端基础-前端三剑客之CSS
后端程序员的前端基础-前端三剑客之CSS
32 8
|
1月前
|
前端开发
如何使用css写三角形
如何使用css写三角形
28 1
|
28天前
|
前端开发 容器
解锁CSS定位奥秘,从迷茫到精通,让你的网页布局“稳如老狗”,引领前端新潮流!
【8月更文挑战第23天】本文深入探讨了Web前端开发中CSS定位的三大基石:相对定位、绝对定位与固定定位。通过具体示例,展示了各种定位方式的特点及应用场景。相对定位可在不影响布局的情况下微调元素位置;绝对定位使元素完全脱离文档流,适用于精确控制位置的需求;固定定位则确保元素始终固定于浏览器窗口特定位置,不受页面滚动影响。这些技巧对于实现复杂网页布局至关重要。
34 0
|
29天前
|
前端开发
解锁CSS神秘面纱:深度剖析类选择器,掌握前端设计的绝密武器!
解锁CSS神秘面纱:深度剖析类选择器,掌握前端设计的绝密武器!
|
1月前
|
前端开发 容器
分享一些我在面试时所遇到的CSS问题 (五)
分享一些我在面试时所遇到的CSS问题 (五)
|
1月前
|
前端开发 容器
分享一些我在面试时所遇到的CSS问题 (四)
分享一些我在面试时所遇到的CSS问题 (四)
|
1月前
|
前端开发 JavaScript
分享一些我在面试时所遇到的CSS问题 (三)
分享一些我在面试时所遇到的CSS问题 (三)
|
1月前
|
前端开发 容器
分享一些我在面试时所遇到的CSS问题 (二)
分享一些我在面试时所遇到的CSS问题 (二)