【前端基础面试题】如何用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%宽度属性。

相关文章
|
7月前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
125 6
|
9月前
|
前端开发
前端基础(五)_CSS文本文字属性、背景颜色属性
本文详细介绍了CSS中关于文本和背景颜色的样式属性。包括字体大小、字体族、字体加粗、字体样式、文本行高、`font`属性、文本颜色、文本对齐方式、文本装饰线、首行缩进等文本属性,以及背景颜色、背景图片、背景重复、背景位置等背景属性。文章通过示例代码展示了这些属性的具体应用和效果。
331 3
前端基础(五)_CSS文本文字属性、背景颜色属性
|
8月前
|
前端开发 JavaScript
CSS样式穿透技巧:利用scoped与deep实现前端组件样式隔离与穿透
CSS样式穿透技巧:利用scoped与deep实现前端组件样式隔离与穿透
738 1
|
8月前
|
前端开发 容器
前端技术分享:利用CSS Grid布局实现响应式设计
【10月更文挑战第1天】前端技术分享:利用CSS Grid布局实现响应式设计
|
8月前
|
前端开发 UED 容器
前端技术分享:利用 CSS Grid 实现响应式布局
【10月更文挑战第1天】前端技术分享:利用 CSS Grid 实现响应式布局
160 2
|
9月前
|
Web App开发 前端开发 JavaScript
「offer来了」1张思维导图,6大知识板块,带你梳理面试中CSS的知识点!
该文章通过一张思维导图和六大知识板块系统梳理了前端面试中涉及的CSS核心知识点,包括CSS框架、基础样式问题、布局技巧、动画处理、浏览器兼容性及性能优化等方面的内容。
|
8月前
|
存储 人工智能 前端开发
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
631 14
|
8月前
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
136 0
|
8月前
|
人工智能 自然语言处理 运维
前端大模型应用笔记(一):两个指令反过来说大模型就理解不了啦?或许该让第三者插足啦 -通过引入中间LLM预处理用户输入以提高多任务处理能力
本文探讨了在多任务处理场景下,自然语言指令解析的困境及解决方案。通过增加一个LLM解析层,将复杂的指令拆解为多个明确的步骤,明确操作类型与对象识别,处理任务依赖关系,并将自然语言转化为具体的工具命令,从而提高指令解析的准确性和执行效率。
236 6
|
8月前
|
存储 弹性计算 算法
前端大模型应用笔记(四):如何在资源受限例如1核和1G内存的端侧或ECS上运行一个合适的向量存储库及如何优化
本文探讨了在资源受限的嵌入式设备(如1核处理器和1GB内存)上实现高效向量存储和检索的方法,旨在支持端侧大模型应用。文章分析了Annoy、HNSWLib、NMSLib、FLANN、VP-Trees和Lshbox等向量存储库的特点与适用场景,推荐Annoy作为多数情况下的首选方案,并提出了数据预处理、索引优化、查询优化等策略以提升性能。通过这些方法,即使在资源受限的环境中也能实现高效的向量检索。
292 1