前端CSS画图形

我以前一直很好奇,这些下拉菜单中的小箭头是怎么实现的,直到我看到了进阶的CSS。

OK,let me tell you hao to do.

 


想要实现这个效果,方法很多,我知道的就两个:

图片作弊法,CSS妙用法 

图片作弊法适合自己做着玩的,但不适合上线的网站——因为多一个图片意味着多一个HTTP请求,这对于服务器的压力可想而知。

SO,有没有更好的办法? 

那就是CSS妙用法。


我们都知道,每一个块元素都是有border属性的,那么我们为什么不尝试使用border去画一个三角形呢?

这个时候,聪明的小伙子就要:

???

那我要是告诉你,这个三角形就是使用边框做出来的,你敢信吗?

在没有学到之前,我也不信的,直到我学到了。

这个时候,就得先介绍一下border属性啦:

border-width、border-style、border-color


如果我们给一个div元素设置:

border-width: 30px;

border-style: solid;

border-color: #982053 #721394 #333 #897923;

就可以获得:

一条神奇的边框

 


如果我们再修改一下div的长度,就可以获得:

 

灰常地beautiful~

div是块级元素,块级元素有个最大的特点就是:

独占一行

所以,如果我们限制了块级元素的宽为0,就让内容区丢失了,这个时候,padding又没有,所以边框是全部“挤”在一起,就成了上面的模样。


我们知道,border-color有个参数,叫做透明shai。

如果我只保留一个边框有shai,那会发生什么事情?

就可以神奇地发现,原来能创造出这么多三角形。

而如果我们只需要保留向上的三角形,该怎么办?

很简单,直接去掉左上右这三个边框的颜色就OK了。


但是这还不够完美,我们的目的是获得一个三角形。

这个时候,我们再在div内部创建一个div,用同样的方法进行创建(注意border-width的属性值要小于父盒子的),就可以发现:

???儿子怎么骑到父亲的头上去了???

那接下来该怎么办?

使用定位,让子盒子移动到父盒子内部即可:

这是不是特别像个三角形了?

如果我们再把子盒子的颜色改为背景色一样的颜色,就可以获得:

是不是很简单呢?


全部代码:

    <style>.father{position: relative;width: 0px;border-width: 30px;border-style: solid;/* border-color: #982053 #721394 #333 #897923; */border-color: transparent transparent #333 transparent;}.son{position: absolute;top: -26px;left: -28px;width: 0px;border-width: 28px;border-style: solid;border-color: transparent transparent #fff transparent;}</style><body><div class="father"><div class="son"></div></div>
</body>

这里又是一个子绝父相的好例子。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/397900.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uni-app 开发App时调用uni-push 实现在线系统消息推送通知 保姆教程

一、引言 在开发App时避免不了需要推送系统通知&#xff0c;以提高用户的使用体验。在自己的一个工具型的小app上全流程接入了uni-push2.0的推送能力&#xff0c;做个记录&#xff0c;以防后期需要用到。在阅读本教程前最好先看看官方文档&#xff0c;结合官方文档使用&#xf…

下载免费设计素材,有这7个网站就够了

7个免费设计素材网站&#xff0c;这些网站提供了大量的免费资源&#xff0c;包括图片、字体、图标、模板等&#xff0c;涵盖了多种风格和主题&#xff0c;能够满足不同设计师和创作者的需求。无论是用于个人项目还是商业用途&#xff0c;这些网站都能给你提供丰富的选择&#x…

10步搞定Python爬虫从零到精通!

学习Python网络爬虫可以分为以下几个步骤&#xff0c;每一步都包括必要的细节和示例代码&#xff0c;以帮助你从零开始掌握这一技能。 第一步&#xff1a;理解网络爬虫基础 什么是网络爬虫&#xff1f; 网络爬虫是一种自动化程序,用来从互联网上收集数据.它通过发送 HTTP 请求…

【数据结构】五、树:7.哈夫曼树、哈夫曼编码

3.哈夫曼树和哈夫曼编码 文章目录 3.哈夫曼树和哈夫曼编码3.1带权路径长度3.2哈夫曼树的定义和原理3.3哈夫曼树的构造代码实现 3.4特点3.5哈夫曼编码压缩比代码实现 3.6哈夫曼树-C 3.1带权路径长度 #mermaid-svg-yeVKyVnDwvdIc5ML {font-family:"trebuchet ms",verda…

CSS 实现两边固定宽,中间自适应

0. **Flexbox 实现**&#xff1a; css复制代码.container { display: flex; } ​ .fixed { width: 200px; /* 两边固定宽度 */ } ​ .flexible { flex: 1; /* 中间自适应 */ } html复制代码<div class…

数据科学 - Sklearn库总结

1. 前言 通过上几章对数据预处理的理解&#xff0c;最后来到我们数据分析的核心之一&#xff0c;机器学习。 机器学习涵盖了许多方面&#xff0c;如若每一次处理都是通过手写代码的方式去处理我们的数据集是十分繁琐&#xff0c;复杂的。但在scikit-learn库中&#xff0c;提供…

带你彻底搞懂useLayoutEffect的使用场景

开篇第一句: useLayoutEffect 可能会影响性能。尽可能使用 useEffect。 useLayoutEffect 是 useEffect 的一个版本&#xff0c;在浏览器重新绘制屏幕之前触发。 使用方法 useLayoutEffect(setup, dependencies?)调用 useLayoutEffect 在浏览器重新绘制屏幕之前进行布局测量&…

lvs详解及实例配置

目录 1.什么是负载均衡 1.1为什么用负载均衡 1.2.负载均衡类型 1.2.1.四层负载均衡 1.2.2.七层负载均衡 1.3 四层和七层的区别 2.LVS介绍 2.1LVS 的优势与不足 2.2LVS 核心组件和专业术语 3.ipvsadm命令 4.LVS集群中的增删改 4.1.管理集群服务中的增删改 4.2.管理集…

用户态tcp协议栈四次挥手-服务端发送fin时,客户端不返回ac

问题&#xff1a; 四次挥手时&#xff0c;服务端发送fin后&#xff0c;客户端不发送ack&#xff0c;反而过了2min后发了个rst报文 62505是客户端&#xff0c;8889是服务端 解决&#xff1a; 服务端返回fin报文时带上ack标记

数据结构(邓俊辉)学习笔记】优先级队列 03——完全二叉堆:结构

文章目录 1.完全二叉树2.结构性3.形神具备4.堆序性 1.完全二叉树 在上一节我们看到&#xff0c;就优先级队列的实现方式而言&#xff0c;采用基本的向量结构并不足够&#xff0c;而采用更高级的树形结构&#xff0c;虽然完全可以高效率地实现优先级队列&#xff0c;但却有杀鸡…

Codeforces Round 961 【C. Squaring】

C. Squaring 题目大意&#xff1a; 给你一个长度为n的数组&#xff0c;求最少次操作&#xff0c;使得数组&#xff08;非严格&#xff09;递增。一次操作&#xff1a;Ai 变为 Ai^2。 不可能实现输出-1。 关键思路&#xff1a; 分子分母同时取对数&#xff0c;比值不变。 …

流量日志分析

流量分析 [陇剑杯 2021]jwt&#xff08;问1&#xff09; 要求是通过流量分析判断网站使用的认证方式 在筛选http之后&#xff0c;发现有get请求&#xff0c;要认证方式就需要看请求流量包中的token 然后查看token tokeneyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTAwOD…

动手学深度学习7.3 网络中的网络(NiN)-笔记练习(PyTorch)

以下内容为结合李沐老师的课程和教材补充的学习笔记&#xff0c;以及对课后练习的一些思考&#xff0c;自留回顾&#xff0c;也供同学之人交流参考。 本节课程地址&#xff1a;26 网络中的网络 NiN【动手学深度学习v2】_哔哩哔哩_bilibili 本节教材地址&#xff1a;7.3. 网络…

三层架构与解耦——IoCDI机制【后端 7】

三层架构与解耦——IoC&DI机制 在软件开发领域&#xff0c;三层架构&#xff08;Controller、Service、Dao&#xff09;是一种广泛采用的架构模式&#xff0c;它通过将应用程序分为三个主要层次来组织代码&#xff0c;旨在提高代码的可维护性、复用性和可扩展性。而解耦&am…

怎么用dos编译python

无论windos还是Linux只要安装了python&#xff0c;配置好了环境变量&#xff0c;则在命令行输入python这个命令的时候就会进入交互模式。在这个模式下可以进行一些简单的python代码编写。退出可以使用exit()方法。 Python程序是可以执行的&#xff0c;例如下面代码&#xff0c…

文心一言 VS 讯飞星火 VS chatgpt (323)-- 算法导论22.4 4题

四、证明或反证下述论断&#xff1a;如果有向图G包含环路&#xff0c;则在算法TOPOLOGICAL-SORT(G)所生成的结点序列里&#xff0c;图G中与所生成序列不一致的“坏”边的条数最少。如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; 首先&#xff0c;我们需要明确几…

春秋云镜CVE-2023-38836

打开靶场环境 点击发现一个登陆框&#xff0c;弱口令试一下 发现账号密码为admin,password 随便点击点击 Media发现这里可以上传文件上传木马试试 <?php eval($_POST["wjq"]); ?> 发现不能上传php文件 php内容 修改他的格式 抓包绕过一下 302就可以其实已经…

同态加密和SEAL库的介绍(六)BGV 方案

前面介绍 BFV 和 CKKS 加密方案&#xff0c;这两者更为常用。并且也解释了 Batch Encoder 和 级别的概念&#xff0c;这对接下来演示 BGV 会很有帮助。 一、BGV简介 BGV (Brakerski-Gentry-Vaikuntanathan) 方案 是一种基于环学习同态加密&#xff08;RLWE&#xff09;问题的加…

华为OD笔试

机试总分400。三道题目。100&#xff0b;100&#xff0b;200 华为od考试时间为150分钟&#xff0c;共有三道编程题&#xff0c;分数分别为100、100和200。如果你是目标院校&#xff08;查看目标院校请戳&#xff09;的话&#xff0c;及格线是160分&#xff0c;非目标院校则不确…

论文阅读 - Scaling Up k-Clique Densest Subgraph Detection | SIGMOD 2023

1. 论文背景 密集子图发现&#xff08;Densest Subgraph Discovery&#xff09;是图挖掘领域的一个基础研究方向&#xff0c;并且近年来在多个应用领域得到了广泛研究。特别是在生物学、金融学和社交网络分析等领域&#xff0c;密集子图的发现对理解复杂网络结构和行为具有重要…