小白学前端--第九天(2026/2/20)header设计

小白学前端--第九天(2026/2/20)header设计

首页搭建

上回我们将整个项目拆分成三个主体区域,并且决定用Layout来进行设计布局。那让我们一个一个来吧。

先设置一下整体的home-page样式

.home-page { min-height: 100vh; background: #f6f7f9; display: flex; flex-direction: column; }

min-height:100vh+flex-direction:column可以保证首页至少撑满整个页面,如果商品过多则往下自动撑开,不会被截断

一、header部分

import "./index.scss"; import { Layout,Input } from "antd"; const { Header} = Layout; const {Search} =Input const Home = () => { return ( <div className="home-page"> {/* 顶部:logo + 搜索 + 购物车&用户 */} <Layout> <Header className="header"> {/* <div className="logo"></div> */} {/* <Search placeholder="input search text" allowClear enterButton="Search" size="large" ></Search> */} </Header> </Layout> </div> ); }; export default Home; 

只加上背景色可以发现,header本身是有宽高的,要想控制样式,只需加上类名即可。

调完之后代码这样子:

import "./index.scss"; import { Layout } from "antd"; const { Header } = Layout; const Home = () => { return ( <div className="home-page"> {/* 顶部:logo + 搜索 + 购物车&用户 */} <Layout> <Header className="home-header"> </Header> </Layout> </div> ); }; export default Home; 
.home-page { min-height: 100vh; background: #f6f7f9; display: flex; flex-direction: column; } /* 顶部 */ .home-header { height: 72px; padding: 0 18px; display: flex; align-items: center; gap: 16px; background: linear-gradient(90deg, #ff2d2d, #ff6a00); box-shadow: 0 8px 22px rgba(0, 0, 0, 0.12); }

background: linear-gradient(90deg, #ff2d2d, #ff6a00);为水平方向加一个渐变

box-shadow: 0 8px 22px rgba(0, 0, 0, 0.12);为添加阴影,参数分别为水平位移,垂直位移,模糊半径以及阴影颜色,rgb(0,0,0),不透明度0.12。

效果如下:

1.header-left

左边我打算放置logo,在header-left里面进行设计成这种样式

<div className="header-left" > <div className="logo-badge"> <span className="logo-text">智慧商城</span> </div> </div>

这边样式的话大家可以自己设计,我在最后统一给scss样式代码供大家参考

2.header-mid

中间的位置放置搜索框,ant design里面search在input类里面

通过样例可知,search在input子类中,要先解构再使用。

在api文档中可知,enterButton为确认按钮属性,通过上面的例子可以得知enterButton既可以直接输入文字,也可以传过去一个Button,这里我们选择第二种。

<div className="header-mid"> <Search allowClear placeholder={`搜一搜`} enterButton={ <Button className="search-button" color="danger" variant="solid"icon={<SearchOutlined />}> 搜索 </Button> } onSearch={onSearch} size="large" /> </div>

注意传过去的时候修改样式的时候不可直接传类名,用search里面自带的.ant-input-search-btn类名进行修饰,详情请见react开发:ant design中ant design组件内套用ant design组件的样式问题(2026/2/18)-ZEEKLOG博客

最终效果如下:

3.header-right

右侧主要放置一个购物车按钮和个人中心按钮

用户头像方面我们采用Avatar来实现,它支持三种类型的头像:文字、图片、图标。这里我们先用Icon。

购物车的原理比较简单,外边是一个提示徽标,里面是一个Button即可。

最后总体写完的index.js代码如下:

import "./index.scss"; import { Layout, Input } from "antd"; import { SearchOutlined } from "@ant-design/icons"; import { Button } from "antd"; import { Space, Badge, Avatar } from "antd"; import { ShoppingCartOutlined, UserOutlined } from "@ant-design/icons"; import classNames from "classnames"; const { Header } = Layout; const { Search } = Input; const onSearch = (value) => { console.log("搜索内容:", value); }; const Home = () => { return ( <div className="home-page"> {/* 顶部:logo + 搜索 + 购物车&用户 */} <Layout> <Header className="home-header"> <div className="header-left" > <div className="logo-badge"> <span className="logo-text">智慧商城</span> </div> </div> <div className="header-mid"> <Search allowClear placeholder={`搜一搜`} onSearch={onSearch} size="large" className="search-input" enterButton={ <Button color="danger" variant="solid" icon={<SearchOutlined />}>搜索</Button> } /> </div> <div className="header-right"> <Space size={14}> <Badge count={3} size="small"> <Button className="icon-btn" icon={<ShoppingCartOutlined />} /> </Badge> <div className="user-mini"> <Avatar size={34} icon={<UserOutlined />} /> <div className="user-mini-text"> <div className="user-name">刘同学</div> <div className="user-sub">欢迎回来</div> </div> </div> </Space> </div> </Header> </Layout> </div> ); }; export default Home; 

css样式为:

.home-page { min-height: 100vh; background: #f6f7f9; display: flex; flex-direction: column; } /* 顶部 */ .home-header { height: 72px; padding: 0 18px; display: flex; justify-content: space-between; align-items: center; background: linear-gradient(90deg, #ff2d2d, #ff6a00); box-shadow: 0 8px 22px rgba(0, 0, 0, 0.12); .header-left { width: 180px; cursor: pointer; display: flex; align-items: center; justify-content: center; // 内部元素水平居中 .logo-badge { height: 44px; padding: 0 14px; border-radius: 14px; background: rgba(255, 255, 255, 0.18); backdrop-filter: blur(8px); display: flex; align-items: center; .logo-text { color: #fff; font-weight: 800; letter-spacing: 2px; } } } .header-mid { flex: 1; width: 100%; justify-content: flex-end; align-items: center; display: flex; .search-input{ width: 700px; } .ant-input-search-btn { border: 1px solid #fff !important; } } .header-right { width: 260px; display: flex; justify-content: flex-end; .icon-btn { border-radius: 12px; } .user-mini { display: flex; align-items: center; gap: 10px; padding: 6px 10px; border-radius: 14px; background: rgba(255, 255, 255, 0.18); backdrop-filter: blur(8px); .user-mini-text { line-height: 1.1; .user-name { color: #fff; font-weight: 700; font-size: 13px; } .user-sub { color: rgba(255, 255, 255, 0.85); font-size: 12px; } } } } } 

效果如下:

Read more

【AI大模型前沿】通义万相Wan2.2:阿里270亿参数巨兽开源,消费级显卡就能跑,免费平替Sora上线

【AI大模型前沿】通义万相Wan2.2:阿里270亿参数巨兽开源,消费级显卡就能跑,免费平替Sora上线

系列篇章💥 No.文章1【AI大模型前沿】深度剖析瑞智病理大模型 RuiPath:如何革新癌症病理诊断技术2【AI大模型前沿】清华大学 CLAMP-3:多模态技术引领音乐检索新潮流3【AI大模型前沿】浙大携手阿里推出HealthGPT:医学视觉语言大模型助力智能医疗新突破4【AI大模型前沿】阿里 QwQ-32B:320 亿参数推理大模型,性能比肩 DeepSeek-R1,免费开源5【AI大模型前沿】TRELLIS:微软、清华、中科大联合推出的高质量3D生成模型6【AI大模型前沿】Migician:清华、北大、华科联手打造的多图像定位大模型,一键解决安防监控与自动驾驶难题7【AI大模型前沿】DeepSeek-V3-0324:AI 模型的全面升级与技术突破8【AI大模型前沿】BioMedGPT-R1:清华联合水木分子打造的多模态生物医药大模型,开启智能研发新纪元9【AI大模型前沿】DiffRhythm:西北工业大学打造的10秒铸就完整歌曲的AI歌曲生成模型10【AI大模型前沿】R1-Omni:阿里开源全模态情感识别与强化学习的创新结合11【AI大模型前沿】Qwen2.5-Omni:

By Ne0inhk
Git下载安装保姆级教程(附官网安装包,超详细)

Git下载安装保姆级教程(附官网安装包,超详细)

Git 是一款开源、免费的分布式版本控制系统,Windows、macOS、Linux、BSD 甚至安卓都能装。 Git 把整套仓库完整克隆到本地,不联网也能提交、回退、建分支,写完再推送到服务器,和集中式 SVN 的最大区别就是“人人都有全套历史”,服务器挂了也不怕丢数据。 同领域的主流工具有 SVN、Mercurial、Perforce、Azure DevOps 等: * SVN 集中式管理,提交必须联网,分支复制慢; * Perforce 对大二进制文件友好但授权费高; * Mercurial 与 Git 类似,命令简单但社区小。 相比之下,Git 胜在免费、生态庞大、GUI 客户端丰富,小白也能点鼠标完成分支合并;加上全球代码托管平台都以 Git 为首,招聘市场也把 Git 当默认技能,

By Ne0inhk
【开源发布】FinchBot (雀翎) — 当 AI 说“让我想办法“,而不是“我不会“(已获Gitee官方推荐)

【开源发布】FinchBot (雀翎) — 当 AI 说“让我想办法“,而不是“我不会“(已获Gitee官方推荐)

玄同 765 大语言模型 (LLM) 开发工程师 | 中国传媒大学 · 数字媒体技术(智能交互与游戏设计) ZEEKLOG · 个人主页 | GitHub · Follow 关于作者 * 深耕领域:大语言模型开发 / RAG 知识库 / AI Agent 落地 / 模型微调 * 技术栈:Python | RAG (LangChain / Dify + Milvus) | FastAPI + Docker * 工程能力:专注模型工程化部署、知识库构建与优化,擅长全流程解决方案 「让 AI 交互更智能,让技术落地更高效」 欢迎技术探讨与项目合作,解锁大模型与智能交互的无限可能! FinchBot (雀翎) — 当 AI 说"让我想办法"而不是"我不会&

By Ne0inhk