在今天的文章中,我们将一起来学习如何用 HTML 和 CSS 制作响应式导航栏效果。
这篇文章主要是面向初学者的,如果你是有经验的开发者,请直接跳过或者忽略。
在这篇文章中,我们将一起来实现一个响应式导航栏效果,实现后,你可以在你的任何项目中使用它。
现在,我们就开始吧。
HTML 是一门超文本标记语言。它的主要工作是给我们的项目创建友好的网页结构。我们将使用这种标记语言来完成我们的项目结构。
现在,让我们一起来看看我们项目的 HTML 代码结构,具体如下:
如何用 HTML和CSS 实现一个响应式导航栏效果 web前端开发 网站主页 关于我们 工作内容 开发项目 联系我们
现在,让我们看看页面的结构输出的效果:
body { padding: 0; margin: 0; } .container { position: relative; margin-top: 100px; } .container img { display: block; width: 100%; } nav { position: fixed; z-index: 10; left: 0; right: 0; top: 0; font-family: "Montserrat", "sans-serif"; height: 100px; background-color: #00a6bc; padding: 0 5%; } nav .logo { float: left; width: 40%; height: 100%; display: flex; align-items: center; font-size: 24px; color: #fff; } nav .links { float: right; padding: 0; margin: 0; width: 60%; height: 100%; display: flex; justify-content: space-around; align-items: center; } nav .links li { list-style: none; } nav .links a { display: block; padding: 1em; font-size: 16px; font-weight: bold; color: #fff; text-decoration: none; position: relative; } nav .links a:hover { color: white; } nav .links a::before { content: ""; position: absolute; bottom: 0; left: 0; width: 100%; height: 2px; background-color: white; visibility: hidden; transform: scaleX(0); transition: all 0.3s ease-in-out 0s; } nav .links a:hover::before { visibility: visible; transform: scaleX(1); color: white; } #nav-toggle { position: absolute; top: -100px; } nav .icon-burger { display: none; position: absolute; right: 5%; top: 50%; transform: translateY(-50%); } nav .icon-burger .line { width: 30px; height: 5px; background-color: #fff; margin: 5px; border-radius: 3px; transition: all 0.5s ease-in-out; } @media screen and (max-width: 768px) { nav .logo { float: none; width: auto; justify-content: center; } nav .links { float: none; position: fixed; z-index: 9; left: 0; right: 0; top: 100px; bottom: 100%; width: auto; height: auto; flex-direction: column; justify-content: space-evenly; background-color: rgba(0, 0, 0, 0.8); overflow: hidden; transition: all 0.5s ease-in-out; } nav .links a { font-size: 20px; } nav :checked ~ .links { bottom: 0; } nav .icon-burger { display: block; } nav :checked ~ .icon-burger .line:nth-child(1) { transform: translateY(10px) rotate(225deg); } nav :checked ~ .icon-burger .line:nth-child(3) { transform: translateY(-10px) rotate(-225deg); } nav :checked ~ .icon-burger .line:nth-child(2) { opacity: 0; } }
添加完CSS后,我们将得到如下效果:
当我们把浏览器的窗口逐渐缩小时,页面上的导航菜单也会折叠起来:
点击折叠汉堡菜单,我们就会看到导航栏其他内容,效果如下:
我们将使用类选择器 (.container) 来设计我们的图像。我们为图像添加了“100px”的上边距。我们的图像宽度设置为 100%,其显示设置为“block”。
body { padding: 0; margin: 0;}.container { position: relative; margin-top: 100px;}.container img { display: block; width: 100%;}
为了让它看起来更靠近窗口,我们将位置固定在网页上,并将 z-index 增加到 10。选择了“Montesirat”字体系列。高度设置为“100px”,背景色为“#00a6bc”。
nav { position: fixed; z-index: 10; left: 0; right: 0; top: 0; font-family: "Montserrat", "sans-serif"; height: 100px; background-color: #00a6bc; padding: 0 5%;}
我们指定它应该“浮动到窗口的左侧”。高度和宽度的定义分别为“100%”和“40%”。
文章居中对齐,字体颜色为“白色”。
我们为导航栏中的链接添加了一些样式。他们的位置被描述为“向右浮动”。宽度和高度的定义分别为“60%”和“100%”。这些项目居中并且显示设置为“flex”。
nav .logo { float: left; width: 40%; height: 100%; display: flex; align-items: center; font-size: 24px; color: #fff;}nav .links { float: right; padding: 0; margin: 0; width: 60%; height: 100%; display: flex; justify-content: space-around; align-items: center;}
字体大小设置为 16px,文本装饰为无,字体颜色为“白色”,我们添加了一些悬停属性,当用户悬停时,白色底部边框将出现在链接下方。
nav .links { float: right; padding: 0; margin: 0; width: 60%; height: 100%; display: flex; justify-content: space-around; align-items: center;}nav .links li { list-style: none;}nav .links a { display: block; padding: 1em; font-size: 16px; font-weight: bold; color: #fff; text-decoration: none; position: relative;}nav .links a:hover { color: white;}nav .links a::before { content: ""; position: absolute; bottom: 0; left: 0; width: 100%; height: 2px; background-color: white; visibility: hidden; transform: scaleX(0); transition: all 0.3s ease-in-out 0s;}nav .links a:hover::before { visibility: visible; transform: scaleX(1); color: white;}#nav-toggle { position: absolute; top: -100px;}nav .icon-burger { display: none; position: absolute; right: 5%; top: 50%; transform: translateY(-50%);}nav .icon-burger .line { width: 30px; height: 5px; background-color: #fff; margin: 5px; border-radius: 3px; transition: all 0.5s ease-in-out;}
我们将在 CSS 中添加一个响应性和测试功能,以添加一个切换栏来显示菜单项。
@media screen and (max-width: 768px) { nav .logo { float: none; width: auto; justify-content: center; } nav .links { float: none; position: fixed; z-index: 9; left: 0; right: 0; top: 100px; bottom: 100%; width: auto; height: auto; flex-direction: column; justify-content: space-evenly; background-color: rgba(0, 0, 0, 0.8); overflow: hidden; transition: all 0.5s ease-in-out; } nav .links a { font-size: 20px; } nav :checked ~ .links { bottom: 0; } nav .icon-burger { display: block; } nav :checked ~ .icon-burger .line:nth-child(1) { transform: translateY(10px) rotate(225deg); } nav :checked ~ .icon-burger .line:nth-child(3) { transform: translateY(-10px) rotate(-225deg); } nav :checked ~ .icon-burger .line:nth-child(2) { opacity: 0; }}
到这里,我们要实现的效果就算完成了,希望你也已经学会了怎么使用 HTML 和 CSS 来实现一个响应式导航栏效果了。
其实,今天这篇文章算是我们【每日一练】栏目中的详细版本,我们在【每日一练】栏目分享的很多练习,都不会写那么详细教程,主要是把代码分享给大家。
之前也有小伙伴说,看不明白代码,也不知道怎么运用【每日一练】中的代码,关于这个我也有写过一篇文章。
当然,我还是希望今天这篇文章对初学者有所帮助,如果有不明白的地方,请在留言区给我们留言,我们一起学习进步。
标签:
hello大家好,我是城乡经济网小晟来为大家解答以上问题,邓禄普防水官
今天来聊聊王的倾城傻妃在线阅读,冷王的倾城傻妃的文章,现在就为大家
昨天上午,家住扬州市广陵区曲江街道玺园社区的老人朱沛买菜回家,她并
6月28日,承德露露(000848)融资买入435 55万元,融资偿还216 29万元
桂阳开展农贸市场消防安全应急灭火和疏散演练活动。红网时刻新闻6月28
通州万象汇预计年底完工,公园,万象汇,6号线,地铁站,优质物业,通州区(南
近日,上海市市场监管局发布按摩器具监督抽查情况。
6月28日,上海石化(600688)融资买入114 68万元,融资偿还147 51万元
1、劳动号子是产生并应用于劳动的民间歌曲,具有协调与指挥劳动的实际
合肥长丰疾控四价九价hpv疫苗预约通知(7月1日起) 环球微资讯
缓释肥是什么肥料?缓释肥应该怎么用?
外交部:再次提醒在法中国公民,密切关注当地治安形势、谨慎外出|焦点滚动
复旦教授孙金云:中国约有10万聋人外卖骑手,请善待他们
公分等于厘米吗怎么算_公分等于厘米吗
bone是什么意思 关于bone是什么意思的介绍 世界热门
望春楼联_对于望春楼联简单介绍 信息
天天热点评!2023云南红河州屏边县事业单位招聘资格复审、面试等后续安排补充公告
恒指午间休盘涨1.73%,恒生科技指数涨3.22%
全球看点:天然橡胶:供需缺乏核心利好,短期天胶振荡运行
天天看热讯:唐山丰南区西城学校小学部一年级新生招生简章(2023)
南北高架转内环匝道三车事故:有车侧翻,一人受伤
今日快讯:混动车型有哪些品牌(混动汽车型号有哪些?)
【全球时快讯】欧洲杯4强全部出炉!2大豪门一夜同时出局,法国被乌克兰送回家
美股牛市未完!资深策略师:忘掉QT 美联储“大放水”将卷土重来-微速讯
达仁堂7月3日盘中跌幅达5%
打新必读:信音电子、赛维时代、昊帆生物、豪声电子申购,祥源转债、赫达转债、明电转02申购|天天微头条
环球要闻:来松江这里“滑雪”吧!地址、价格、优惠都在这了……
为发电企业绘制全面风险地图
s3850三星(s3850) 每日热讯
世界讯息:中国最高的人鲍喜顺的现状_中国最高的人鲍喜顺
八强对阵出炉!中国女排再战巴西,日本队太幸运
天天观天下!孙正义“踩雷”!知名社交平台突然倒闭:2000万用户95%是机器人!曾号称“脸书劲敌”,估值超80亿……
怎么关闭小米隐私保护(小米怎么退出隐私保护模式)_世界新动态
天天视讯!初中生军事化管理学校 适合初中生去的军事化管理学校
每日快看:预留名额?内部指标?这些高考招生骗局别再上当了
管教叛逆学生的学校 叛逆期的孩子送去叛逆学校有效果吗
中国市场潜力巨大 “美丽生意”吸引非洲客商寻求合作 当前速递
类似十二公民的电影
兴于皖又困于皖,迎驾贡酒百亿目标遥遥无期-时讯
致敬高温下的劳动者:阳光很烈,你们很“燃” 热点聚焦
焦点热讯:预计2024年发布 全新宝马M5旅行版预告图曝光
yy16802频道-yy黄频道最新|天天新资讯
女人不管多大年纪,夏天多穿裙子真显气质,大方优雅又显瘦
【天天快播报】业界:加强同业交流 提高反洗钱监测分析和调查协查实效
全球新消息丨成都铁警为蓉港高铁首发护航—中国新闻网·四川新闻
环球看点!感情麦怎么喊教学_感情麦
同仁堂养生馆加盟怎么样_同仁堂养生馆加盟
热点在线丨冬季钓鲤鱼用什么饵料最好_冬季钓鲤鱼
神府穴(关于神府穴介绍)|焦点讯息
补漆笔效果怎么样白色 补漆笔效果怎么样
消释是什么词性(消释是什么意思)
橘子皮放多久是陈皮(橘子皮怎么做成陈皮)-世界观速讯
【惊艳指数爆表!】碧蓝航线树城兔女郎cos照片曝光,专业度一流!_焦点热文
世界聚焦:新媒体营销的优势不包括_新媒体营销的优势
【世界热闻】常州:一站式“专利鹊桥”让“知产”变“资产”
技术员证怎么考(技术员)
北京春拍:“览胜——现当代艺术夜场”珍品云集
2023夏季达沃斯“高教科创游”国际交流活动走进天开园-焦点短讯
莘县农商银行:深耕“三农”沃土 助力乡村振兴 热头条
X 关闭
以“云”为媒 南京市商务局助力外贸企业数字化转型
北京今天紫外线强注意防晒 明后天秋雨“返场”气温下滑
陕西华北黄淮有一次较强降水过程 部分地区有大到暴雨