当前位置: 首页 > news >正文

前端HTML+CSS查漏补缺——仿制百度搜索首页的一些思考

在像素模仿百度搜索首页的时候,在实现的时候,遇到了一些值得记录的点。

在这个过程中,也顺便看了看百度的源码,感觉很有意思。

对了,QQ截屏里面获取到的颜色,是不大正确的,会有点误差。

这是我实现的效果,去掉了部分效果。

比如说,超链接的hover效果,以及更多页面的展开等效果。

最重要的是,没有写JS代码,只是一个页面展示而已。

首先就是顶部header的标签,我这里用的是无序列表,我一直以为大伙都是这么做的,直到我看到百度的源码。

才发现百度是直接采用了超链接标签进行:

少些一点代码,这何曾不是另外一种优雅呢?

用百度源码的方式实现这个展示效果还是蛮简单的,使用flex布局即可。

但是,更让我吃惊的在后面——对于更多内容的显示:

居然是做了div嵌套的,hover到更多的时候切换显示。

这个时候,想起了框架的重要性,如果没有框架的话,只能一个一个手打/CV了。

框架提供的便利性还是很强的,直接用个for循环即可实现这个效果。


当然,这不是最重要的。

下图是一个平平无奇的百度搜索框,如果你去检查可以发现,这不是一个简单的搜索框——里面还有不少display: none的元素。

不过,这都不是重点。

我关注的重点在于,怎么实现这么优雅的效果?

这是我一开始做出来的效果:

可以看出这个效果不够优雅,因为获取焦点之后的颜色不一致,显得很突兀。

这简单啊,直接:

:focus { bordor: 2px solid #蓝色 }

但是,在输入这段代码之后,获取焦点之后,边框依旧是黑色的。

上面的GIF,就是在加入了这段代码之后录制的。

如果你只加上outline: #蓝色的话,也是不行的,效果是这样的:

但是,如果你两个一起使用的话,居然可以实现跟百度一模一样的效果:

这里有点疑惑。

但是突然又懂了,你可以这么理解:

Outline是一个CSS属性,用于在元素周围绘制一条线,这条线不占据布局空间,通常用于突出显示元素。

如果Outline去掉了,再改变border颜色,这个时候就可以实现上面的效果了。


但是,这还不够优雅。

因为百度原来的效果里,右边边框是这样的:

而我写的:

虽然实现跟百度一样的效果就很简单,直接把右边框的颜色改为跟搜索的一致即可。


相较于百度这种完成度高的页面来说,里面很多东西都是包含了操作的,但是我这个只是模仿页面而已,并没有任何的操作的。

感兴趣的,可以自己去模仿一下百度里面的JS逻辑。

相关文章:

前端HTML+CSS查漏补缺——仿制百度搜索首页的一些思考

在像素模仿百度搜索首页的时候,在实现的时候,遇到了一些值得记录的点。 在这个过程中,也顺便看了看百度的源码,感觉很有意思。 对了,QQ截屏里面获取到的颜色,是不大正确的,会有点误差。 这是我…...

【Python】实现一个个人理财助手小程序

以下是一个简化的 Python 代码框架,以及如何实现上述功能点的基本思路,可以基于这个框架进一步开发和完善你的小程序。 以下是一个简化的 Python 代码框架,使用了基本的类和函数来模拟上述功能: import pandas as pd from crypt…...

【GCC】结合GPT4 延迟梯度学习2:延迟梯度的计算及阈值更新

上文,充分发现了 排队梯度延迟的重要性, 【GCC】结合GPT4 延迟梯度学习1:公式推导及理论分析 例如: 延迟梯度为正数时,是单位时间内的排队队列长度的“增长速度” 延迟梯度与 发送速率(接收速率?)有直接的关系。 因为有 观测误差、随机因素、噪声,所以要对延迟梯度进行…...

灰豚数字人MotionAI大模型完成备案,模型已超百亿参数!

据8月5日网信办公告,灰豚数字人MotionAI大模型已完成备案。灰‬豚‬大模型拥有超过百亿参数,是综合全面性的视频生成大模型,融合了数字人大模型、声音大模型、文本大模型、视频大模型、图像大模型等技术。 灰豚AI数字人隶属于温州专帮信息科…...

zsh 配置 docker 自动补全

zsh 配置 docker 自动补全 在终端中使用 docker 的命令的时候必须要全部手敲,没有提示,于是就在找是否有自动补全的脚本,搜索了一圈踩了一些坑总结了一下具体的步骤。 首先执行如下命令: mkdir -p ~/.zsh/completion curl -L h…...

鸿蒙第三方应用.hap打包、安装流程。

最近在华为手表上安装第三方应用(源码打包构建应用,需要签名)。网上看了教程,在此记录下。 准备工作:先安装DevEco Studio开发工具。 进入华为 appgallery connect网站(注册、开发者实名认证) …...

leetcode:找到字符串中所有字母异位词

题目: 给定两s和p中所有p的异位词的子串,返回这些子串的起始索引。不考虑答案输出的顺序。异位词指由相同字母重排列形成的字符串(包括相同的字符串)。 示例 : 输入 输出 解释 s "cbaebabacd", p "…...

C语言学习

学习内容 两道题目 猜数字游戏 goto语句 关机程序 代码 //4.编写代码&#xff0c;演示多个字符从两端移动&#xff0c;向中间汇聚 welcome to china!!!! //#include<windows.h> //#include<stdlib.h> //int main() //{ // char arr1[] "welcome to c…...

Java面试题:MySQL高频面试题

MySQL常见面试题01 1、B树跟B树的区别&#xff1f; MySQL为什么选择B树来存储索引&#xff1f; 层数低,可以存放的数据多 2、InnoDB和MyISAM的区别&#xff1f; i:天生支持行锁,手动支持表锁,有事务,索引和数据一起存储 m:支持表锁不支持行锁,无事务,索引和数据分开存储 3、…...

使用js给数字进位,比如23333元进位成2.33万元

文章目录 一、进位函数&#xff1a;二、使用&#xff1a;总结 一、进位函数&#xff1a; //数字进位getUnitObjWithNumber(value){let dataconst returnObj {}let dw let chengshu 1if (isNaN(value)) {data 0} else {data parseFloat(value)}if (Math.abs(data) < 100…...

Java二十三种设计模式-享元模式(12/23)

享元模式&#xff1a;高效管理大量对象的设计模式 引言 在软件开发中&#xff0c;有时需要处理大量相似或重复的对象&#xff0c;这可能导致内存使用效率低下和性能问题。享元模式提供了一种解决方案&#xff0c;通过共享对象的共同部分来减少内存占用。 基础知识&#xff0c…...

腾讯云AI代码助手助力软件开发体验分享

引言 现在&#xff0c;AI工具在软件开发中变得越来越重要&#xff0c;它们能显著提升效率和代码质量。本文就来分享一下我用腾讯云AI代码助手的经历&#xff0c;看看它是怎么在开发中帮了大忙的。 开发环境介绍 这次的项目用的是JavaScript&#xff0c;开发环境是Windows 10…...

Leetcode力扣刷题——182.查找重复的电子邮箱

题目 编写解决方案来报告所有重复的电子邮件。 请注意&#xff0c;可以保证电子邮件字段不为 NULL。 以 任意顺序 返回结果表。 结果格式如下例。 结果 # Write your MySQL query statement below select Email from Person group by email having count(*)>1; 知识点 c…...

idea中好用的插件

输入法自动切换插件 自动切换输入法插件&#xff1a;Smart Input。编写代码时自动切换到英文输入法&#xff0c;注释代码自动切换为中文输入法。极大的提升我们的编码效率。 MyBatisX插件 MybatisX 是一款基于 IDEA 的快速开发插件&#xff0c;为效率而生。主要用于XML映射配…...

spring 代码执⾏ (CVE-2018-1273)漏洞

一 漏洞简介 Spring Data 是⼀个⽤于简化数据库访问&#xff0c;并⽀持云服务的开源框架&#xff0c;Spring Data Commons 是 Spring Data 下所有⼦项⽬共享的基础框架。Spring Data Commons 在 2.0.5 及 以前版本中&#xff0c;存在⼀处 SpEL 表达式注⼊漏洞&#xff0c;攻击…...

幺麻子曲折上市路:毛利率近四年下滑不少,存货出现较大增长

《港湾商业观察》廖紫雯 近期&#xff0c;幺麻子食品股份有限公司&#xff08;以下简称&#xff1a;幺麻子&#xff09;申请股票在全国股份转让系统挂牌并公开转让&#xff0c;拟挂牌新三板。 幺麻子此前上市之路可谓一波三折。2022年9月&#xff0c;公司向四川证监局提交辅导…...

Sol盗u、sol链上的USDT盗窃:警惕恶意智能合约

随着区块链技术的普及&#xff0c;Solana链上的应用和用户数量不断增加。然而&#xff0c;这也为不法分子提供了可乘之机&#xff0c;恶意智能合约逐渐成为盗取USDT等加密资产的一种常见手段。本文将详细介绍恶意智能合约的工作原理&#xff0c;并提供防范措施&#xff0c;帮助…...

jupyter for c++

jupyter for c++ jupyter for c++ jupyter for c++配置环境问题参考文档配置环境 需要 clang 编译器 安装 aconda 默认情况下,anaconda navigator包与anaconda Distribution一起安装,并包含依赖包qt。默认情况下,qt的所有依赖项也应安装,但某些版本的Anaconda Distribution…...

TCP Analysis Flags 之 TCP Window Full

前言 默认情况下&#xff0c;Wireshark 的 TCP 解析器会跟踪每个 TCP 会话的状态&#xff0c;并在检测到问题或潜在问题时提供额外的信息。在第一次打开捕获文件时&#xff0c;会对每个 TCP 数据包进行一次分析&#xff0c;数据包按照它们在数据包列表中出现的顺序进行处理。可…...

相关性检验

文章目录 Pearson相关系数Spearman等级相关系数Cochrans Q检验Kappa一致性系数Kendall相关系数实例分析总结 在数据分析的广阔天地中&#xff0c;相关性检验是探索变量间关系的一把钥匙。本文将带领大家了解几种常用的相关性检验方法&#xff1a;Pearson、Spearman、Cochran’s…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

网站指纹识别

网站指纹识别 网站的最基本组成&#xff1a;服务器&#xff08;操作系统&#xff09;、中间件&#xff08;web容器&#xff09;、脚本语言、数据厍 为什么要了解这些&#xff1f;举个例子&#xff1a;发现了一个文件读取漏洞&#xff0c;我们需要读/etc/passwd&#xff0c;如…...

GitFlow 工作模式(详解)

今天再学项目的过程中遇到使用gitflow模式管理代码&#xff0c;因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存&#xff0c;无论是github还是gittee&#xff0c;都是一种基于git去保存代码的形式&#xff0c;这样保存代码…...

【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道

文/法律实务观察组 在债务重组领域&#xff0c;专业机构的核心价值不仅在于减轻债务数字&#xff0c;更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明&#xff0c;合法债务优化需同步实现三重平衡&#xff1a; 法律刚性&#xff08;债…...

ubuntu22.04 安装docker 和docker-compose

首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...