CSS- 4.4 固定定位(fixed) 咖啡售卖官网实例

本系列可作为前端学习系列的笔记,代码的运行环境是在HBuilder中,小编会将代码复制下来,大家复制下来就可以练习了,方便大家学习。

HTML系列文章 已经收录在前端专栏,有需要的宝宝们可以点击前端专栏查看!

点赞关注不迷路!您的点赞、关注和收藏是对小编最大的支持和鼓励!

系列文章目录

CSS- 1.1 css选择器

CSS- 2.1 实战之图文混排、表格、表单、学校官网一级导航栏

CSS- 3.1 盒子模型-块级元素、行内元素、行内块级元素和display属性

CSS- 4.1 浮动(Float)

CSS- 4.2 相对定位(position: relative)

CSS- 4.3 绝对定位(position: absolute)&学校官网导航栏实例

CSS- 4.4 固定定位(fixed)& 咖啡售卖官网实例


目录

系列文章目录

前言

一、固定定位(fixed)详解

1、固定定位(fixed)的基本概念

2、固定定位的核心特性

1. 相对于视口定位

2. 脱离文档流

3. 定位属性

3、固定定位的常见应用场景

1. 固定导航栏

2. 返回顶部按钮

3. 浮动广告或通知

4. 视频播放器控件

4、固定定位的注意事项

1. 层叠上下文

2. 移动设备上的行为

3. 键盘弹出影响

4. 内容重叠问题

5. 打印样式

5、固定定位与其他定位方式的比较

6、最佳实践建议

二、代码实例

1.练习代码实例如下:

 2.咖啡售卖官网 代码实例如下:

总结


前言

小编作为新晋码农一枚,会定期整理一些写的比较好的代码,作为自己的学习笔记,会试着做一下批注和补充,如转载或者参考他人文献会标明出处,非商用,如有侵权会删改!欢迎大家斧正和讨论!

一、固定定位(fixed)详解

1、固定定位(fixed)的基本概念

固定定位(position: fixed)是CSS中一种特殊的定位方式,它使元素相对于浏览器视口(viewport)进行定位,即使页面滚动,元素也会保持在视口的固定位置。固定定位元素会脱离正常的文档流,不占据原始文档空间。

2、固定定位的核心特性

1. 相对于视口定位

  • 固定定位元素的位置始终相对于浏览器窗口,而不是文档或任何父元素
  • 即使页面滚动,元素也会保持在屏幕上的相同位置

2. 脱离文档流

  • 与绝对定位类似,固定定位元素不占据文档中的空间
  • 其他元素会忽略它的存在,就好像它从文档中"消失"了一样

3. 定位属性

  • 使用toprightbottomleft属性来精确控制位置
  • 示例:

css

.fixed-element {position: fixed;top: 20px;right: 20px;width: 150px;background: rgba(0,0,0,0.7);color: white;padding: 10px;text-align: center;
}

3、固定定位的常见应用场景

1. 固定导航栏

html

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><style type="text/css">.fixed-nav {position: fixed;top: 0;left: 0;width: 100%;background: #333;color: white;padding: 15px 0;z-index: 1000;}.content {margin-top: 60px; /* 为固定导航栏留出空间 */padding: 20px;}</style></head><body><nav class="fixed-nav"><ul><li><a href="#">首页</a></li><li><a href="#">产品</a></li><li><a href="#">关于</a></li><li><a href="#">联系</a></li></ul></nav><div class="content"><p>哈哈哈</p><p>哈哈哈</p><p>哈哈哈</p><p>哈哈哈</p><p>哈哈哈</p><p>哈哈哈</p><p>哈哈哈</p><p>哈哈哈</p><p>哈哈哈</p><p>哈哈哈</p><p>哈哈哈</p><h1>hhh </h1><p>哈哈哈</p><p>哈哈哈</p><p>哈哈哈</p><p>哈哈哈</p><p>哈哈哈</p><p>哈哈哈</p><p>哈哈哈</p><p>哈哈哈</p><p>哈哈哈</p><p>哈哈哈</p><p>哈哈哈</p><h1>hhh </h1><!-- 大量内容... --></div></body>
</html>

css

.fixed-nav {position: fixed;top: 0;left: 0;width: 100%;background: #333;color: white;padding: 15px 0;z-index: 1000;
}
.content {margin-top: 60px; /* 为固定导航栏留出空间 */padding: 20px;
}

 代码运行:导航栏固定在上方

2. 返回顶部按钮

html

<button class="back-to-top">↑ 返回顶部</button>

css

.back-to-top {position: fixed;bottom: 30px;right: 30px;padding: 10px 15px;background: #333;color: white;border: none;border-radius: 50%;cursor: pointer;opacity: 0;transition: opacity 0.3s;
}
.back-to-top.visible {opacity: 1;
}

(通常配合JavaScript在滚动一定距离后显示)

3. 浮动广告或通知

html

<div class="floating-ad"><p>限时优惠!立即购买!</p><button class="close-ad">×</button>
</div>

css

.floating-ad {position: fixed;bottom: 0;left: 50%;transform: translateX(-50%);width: 90%;max-width: 500px;background: #f8d7da;color: #721c24;padding: 15px;border-radius: 5px 5px 0 0;box-shadow: 0 -2px 10px rgba(0,0,0,0.1);
}
.close-ad {float: right;background: none;border: none;font-weight: bold;cursor: pointer;
}

 

4. 视频播放器控件

html

<div class="video-container"><video src="video.mp4" controls></video><div class="video-controls"><!-- 播放/暂停按钮、进度条等 --></div>
</div>

css

.video-controls {position: fixed;bottom: 20px;left: 50%;transform: translateX(-50%);background: rgba(0,0,0,0.8);padding: 10px 20px;border-radius: 30px;display: flex;align-items: center;gap: 15px;
}

 

4、固定定位的注意事项

1. 层叠上下文

  • 固定定位元素会创建新的层叠上下文(当设置了z-index值时)
  • 示例:

css

.fixed-header {position: fixed;top: 0;left: 0;width: 100%;z-index: 100; /* 确保在大多数内容之上 */background: white;
}

2. 移动设备上的行为

  • 在iOS等移动设备上,固定定位元素在滚动时可能会有轻微抖动
  • 某些移动浏览器可能会忽略fixed定位或表现不一致

3. 键盘弹出影响

  • 在移动设备上,当键盘弹出时,固定定位元素的位置可能会受到影响

4. 内容重叠问题

  • 固定定位元素可能会遮挡页面内容,需要为下方内容留出空间
  • 示例:

css

body {padding-top: 60px; /* 为固定导航栏留出空间 */
}

5. 打印样式

  • 固定定位元素在打印时可能不会按预期显示,需要特殊处理

5、固定定位与其他定位方式的比较

定位方式是否脱离文档流定位基准点滚动行为适用场景
static (默认)正常文档流随文档滚动默认布局
relative相对于自身原始位置随文档滚动微调元素位置
absolute相对于最近的已定位祖先元素随文档滚动创建浮动元素、工具提示等
fixed相对于视口不随文档滚动固定导航栏、返回顶部按钮
sticky否(滚动时是)相对于最近的滚动祖先和视口滚动到阈值后固定粘性头部、侧边栏

6、最佳实践建议

  1. 考虑移动设备兼容性:在移动设备上测试固定定位元素的行为,特别是滚动和键盘弹出时

  2. 为下方内容留出空间:使用margin-toppadding-top为固定定位元素下方的页面内容留出空间,防止内容被遮挡

  3. 合理使用z-index:确保固定定位元素在正确的层叠顺序中,避免被其他元素遮挡

  4. 响应式设计:在小屏幕上可能需要调整固定定位元素的位置或完全隐藏它们

  5. 性能考虑:避免在固定定位元素上使用复杂的动画或效果,这可能会影响滚动性能

  6. 可访问性:确保固定定位元素不会干扰键盘导航或屏幕阅读器的使用

固定定位是创建现代网页布局中非常有用的工具,特别适合需要始终可见的元素。然而,由于其特殊的行为,使用时需要特别注意其对页面布局和用户体验的影响。

二、代码实例

1.练习代码实例如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>定位-固定定位</title><style type="text/css">.fix {width: 100px;height: 100px;background-color: #996600;border-radius: 40px 40px;position: fixed;bottom: 0px;right: 0px;}.fix a:link,a:visited {color: white;text-decoration: none;display: block;width: 100px;height: 100px;text-align: center;line-height: 100px;}</style></head><body><div class="fix"><a href="../个人主题网站/index.html"><h3 align="center">返回首页</h3></a></div></body>
</html>

代码运行:有一个固定的图标在页面右下角

 2.咖啡售卖官网 代码实例如下:

html

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>子绝父相</title><link rel="stylesheet" type="text/css" href="../css/cs4-6.css" /><style type="text/css">.fix {width: 100px;height: 100px;background-color: #996600;border-radius: 40px 40px;position: fixed;bottom: 0px;right: 0px;}.fix a:link,a:visited {color: white;text-decoration: none;display: block;width: 100px;height: 100px;text-align: center;line-height: 100px;}.header {width: 900px;height: 220px;margin: 10px auto;}.showpic {width: 1100px;height: 230px;margin: 10px auto;}.container {width: 170px;height: 230px;/* border: 1px solid black; */position: relative;float: left;margin-right: 50px;}.container .coffee:link,.coffee:visited {text-decoration: none;color: #996600;}.container .tag {position: absolute;bottom: 1px;left: 40px;/* display: block;width: 170px;height: 35px;text-align: center; */}.container a:hover {opacity: 0.7;}</style></head><body><div class="header"><img src="../img/coffee.jpg"></div><div class="nvg"><ul><li><a href="#">人才培养</a><ul><li><a href="#">咖啡简介</a></li><li><a href="#">历史沿革</a></li><li><a href="#">季节限定</a></li><li><a href="#">产地漫游</a></li></ul></li><li><a href="#">菜单一览</a><ul><li><a href="#">咖啡简介</a></li><li><a href="#">历史沿革</a></li><li><a href="#">季节限定</a></li><li><a href="#">产地漫游</a></li></ul></li><li><a href="#">体系设置</a><ul><li><a href="#">咖啡简介</a></li><li><a href="#">历史沿革</a></li><li><a href="#">季节限定</a></li><li><a href="#">产地漫游</a></li></ul></li><li><a href="#">品牌特色</a><ul><li><a href="#">咖啡简介</a></li><li><a href="#">历史沿革</a></li><li><a href="#">季节限定</a></li><li><a href="#">产地漫游</a></li></ul></li><li><a href="#">招聘启事</a><ul><li><a href="#">咖啡简介</a></li><li><a href="#">历史沿革</a></li><li><a href="#">季节限定</a></li><li><a href="#">产地漫游</a></li></ul></li><li><a href="#">咖啡资源</a><ul><li><a href="#">咖啡简介</a></li><li><a href="#">历史沿革</a></li><li><a href="#">季节限定</a></li><li><a href="#">产地漫游</a></li></ul></li><li><a href="#">科学成分</a><ul><li><a href="#">咖啡简介</a></li><li><a href="#">历史沿革</a></li><li><a href="#">季节限定</a></li><li><a href="#">产地漫游</a></li></ul></li><li><a href="#">咖啡分布</a><ul><li><a href="#">咖啡简介</a></li><li><a href="#">历史沿革</a></li><li><a href="#">季节限定</a></li><li><a href="#">产地漫游</a></li></ul></li></ul></div><div class="showpic"><div class="container"><a href="#" class="coffee"><img src="../img/kbjn.jpg"><span class="tag">阿拉比卡</span></a></div><div class="container"><a href="#" class="coffee"><img src="../img/kbjn.jpg"><span class="tag">罗布斯塔</span></a></div><div class="container"><a href="#" class="coffee"><img src="../img/kbjn.jpg"><span class="tag">利比里卡</span></a></div><div class="container"><a href="#" class="coffee"><img src="../img/kbjn.jpg"><span class="tag">埃克塞尔莎</span></a></div><div class="container"><a href="#" class="coffee"><img src="../img/kbjn.jpg"><span class="tag">‌蓝山</span></a></div></div><div class="showpic"><div class="container"><a href="#" class="coffee"><img src="../img/kbjn.jpg"><span class="tag">格拉纳达</span></a></div><div class="container"><a href="#" class="coffee"><img src="../img/kbjn.jpg"><span class="tag">铁皮卡</span></a></div><div class="container"><a href="#" class="coffee"><img src="../img/kbjn.jpg"><span class="tag">波旁</span></a></div><div class="container" class="coffee"><a href="#" class="coffee"><img src="../img/kbjn.jpg"><span class="tag">瑰夏</span></a></div><div class="container"><a href="#" class="coffee"><img src="../img/kbjn.jpg"><span class="tag">耶加雪菲</span></a></div></div><div class="fix"></div></body>
</html>

css

/* 导航栏的父盒子 */
* {padding: 0px;
}
.nvg {width: 1376px;height: 42px;/* border: 1px solid black; */margin: 10px auto;
}
/* 一级二级导航栏框架 */
.nvg ul {list-style-type: none;
}
/* 一级导航栏 */
/* .nvg>ul>li {list-style-type: none;
} */
.nvg>ul>li:hover ul{display: block;
}
/* 二级导航栏 */
.nvg>ul>li>ul {display: none;position: absolute;top: 42px;z-index: 999;
}
/* 每一个li */
.nvg ul li {width: 170px;height: 40px;background-color: #996600;border: 1px solid #CCCCCC;position: relative;float: left;
}
.nvg a:link,a:visited {text-decoration: none;font: 20px "times new roman";color: white;display: block;width: 170px;height: 40px;text-align: center;line-height: 40px;
}
.nvg a:hover {background-color: #492002;
}

代码运行如下: 

当鼠标悬停在图片上时,清晰度变化:

  1. 正常状态:链接保持完全不透明(opacity: 1)
  2. 悬停状态:当鼠标移动到链接上时,不透明度变为0.7,产生淡出效果
  3. 鼠标移出:当鼠标移开时,不透明度恢复为1
.container a:hover {opacity: 0.7;
}

 


总结

以上就是今天要讲的内容,本文简单记录了固定定位(fixed)以及咖啡售卖官网,仅作为一份简单的笔记使用,大家根据注释理解

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

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

相关文章

分布式微服务系统架构第132集:Python大模型,fastapi项目-Jeskson文档-微服务分布式系统架构

加群联系作者vx&#xff1a;xiaoda0423 仓库地址&#xff1a;https://webvueblog.github.io/JavaPlusDoc/ https://1024bat.cn/ https://github.com/webVueBlog/fastapi_plus 这个错误是由于 Python 3 中已经将线程的 isAlive() 方法更名为 is_alive()&#xff0c;但你的调试工…

react路由中Suspense的介绍

好的&#xff0c;我们来详细解释一下这个 AppRouter 组件的代码。 这个组件是一个在现代 React 应用中非常常见的模式&#xff0c;特别是在使用 React Router v6 进行路由管理和结合代码分割&#xff08;Code Splitting&#xff09;来优化性能时。 JavaScript const AppRout…

C语言内存函数与数据在内存中的存储

一、c语言内存函数 1、memcpy函数是一个标准库函数&#xff0c;用于内存复制。功能上是用来将一块内存中的内容复制到另一块内存中。用户需要提供目标地址、源地址以及要复制的字节数。例如结构体之间的复制。 memcpy函数的原型是&#xff1a;void* memcpy&#xff08;void* …

层次原理图

层次原理图简介 层次原理图&#xff08;Hierarchical Schematic&#xff09;是一种常用于电子工程与系统设计的可视化工具&#xff0c;通过分层结构将复杂系统分解为多个可管理的子模块。它如同“设计蓝图”&#xff0c;以树状结构呈现整体与局部的关系&#xff1a;顶层展现系…

流程编辑器Bpmn与LogicFlow学习

工作流技术如何与用户交互结合&#xff08;如动态表单、任务分配&#xff09;处理过 XML 与 JSON 的转换自定义过 bpmn.js 的样式&#xff08;如修改节点颜色、形状、图标&#xff09;扩展过上下文菜单&#xff08;Palette&#xff09;或属性面板&#xff08;Properties Panel&…

LWIP的NETCONN接口

NETCONN接口简介 NETCONN API 使用了操作系统的 IPC 机制&#xff0c; 对网络连接进行了抽象&#xff0c;使用同一的接口完成UDP和TCP连接 NETCONN API接口是在RAW接口基础上延申出来的一套API接口 NETCONN实现原理 2.1&#xff0c;NETCONN控制块 2.2&#xff0c;NETCONN收…

Linux搜索

假如我们要搜索 struct sockaddr_in 我们在命令终端输入 cd/usr/include/ //进入头文件目录地址 /usr/include/ grep " struct sockaddr_in { " *-nir &#xff08;*是在当前目录&#xff0c;n 是找出来显示行数…

2025长三角杯数学建模B题思路模型代码:空气源热泵供暖的温度预测,赛题分析与思路

2025长三角杯数学建模B题思路模型代码&#xff0c;详细内容见文末名片 空气源热泵是一种与中央空调类似的设备&#xff0c;其结构主要由压缩主机、热交换 器以及末端构成&#xff0c;依靠水泵对末端房屋提供热量来实现制热。空气源热泵作为热 惯性负载&#xff0c;调节潜力巨…

ssh免密码登录

创建秘钥和公钥 ssh-keygen -t rsa 输入上述命令后&#xff0c;直接按回车即可&#xff0c;完成后会在上面信息显示&#xff0c;生成的文件路径信息 id_rsa&#xff1a;秘钥 id_rsa.pub&#xff1a; 公钥 将公钥的内容copy到远端 将id_rsa.pub的内容拷贝到~/.ssh下的authori…

基于Bootstrap 的网页html css 登录页制作成品

目录 前言 一、网页制作概述 二、登录页面 2.1 HTML内容 2.2 CSS样式 三、技术说明书 四、页面效果图 前言 ‌Bootstrap‌是一个用于快速开发Web应用程序和网站的前端框架&#xff0c;由Twitter的设计师Mark Otto和Jacob Thornton合作开发。 它基于HTML、CSS和JavaScri…

20倍云台球机是一种高性能的监控设备

20倍云台球机是一种高性能的监控设备&#xff0c;其主要特点包括20倍光学变焦能力和云台旋转功能。以下是对20倍云台球机的详细分析&#xff1a; 一、主要特点 20倍光学变焦 &#xff1a; 摄像机镜头能够在保持图像清晰度的前提下&#xff0c;将监控目标放大20倍。 这一功能…

大型语言模型应用十大安全风险

40多页LLM应用的十大风险 这是一份关于LLM应用的十大风险&#xff08;2025版&#xff09;&#xff0c;有一定的参考价值。 如果你时间充裕&#xff0c;可以听听播客&#xff0c;详细了解&#xff1a; 如果你只想快速了解10条分别是什么&#xff0c;可以直接看重点摘录&#xff…

一文掌握工业相机选型计算

目录 一、基本概念 1.1 物方和像方 1.2 工作距离和视场 1.3 放大倍率 1.4 相机芯片尺寸 二、公式计算 三、实例应用 一、基本概念 1.1 物方和像方 在光学领域&#xff0c;物方&#xff08;Object Space&#xff09;是与像方&#xff08;Image Space&#xff09;相对的…

《虚拟即真实:数字人驱动技术在React Native社交中的涅槃》

当React Native与数字人驱动技术相遇&#xff0c;它们将如何携手塑造社交应用中智能客服与虚拟主播的自然交互呢&#xff1f;这正是本文要深入探讨的话题。 React Native是Facebook开源的一个用于构建原生移动应用的框架&#xff0c;它允许开发者使用JavaScript和React编写代码…

使用AI 生成PPT 最佳实践方案对比

文章大纲 一、专业AI生成工具(推荐新手)**1. 推荐工具详解****2. 操作流程优化****3. 优势与局限**二、代码生成方案(开发者推荐)**1. Python-pptx进阶用法****2. GitHub推荐**三、混合工作流(平衡效率与定制)**1. 工具链升级****2. 示例Markdown结构**四、网页转换方案(…

前端-HTML元素

目录 HTML标签是什么&#xff1f; 什么是HTML元素&#xff1f; HTML元素有哪些分类方法&#xff1f; 什么是HTML头部元素 更换路径 注&#xff1a;本文以leetbook为基础 HTML标签是什么&#xff1f; HTML标签是HTML语言中最基本单位和重要组成部分 虽然它不区分大小写&a…

菱形继承原理

在C中&#xff0c;菱形继承的内存模型会因是否使用虚继承产生本质差异。我们通过具体示例说明两种场景的区别&#xff1a; 一、普通菱形继承的内存模型 class A { int a; }; class B : public A { int b; }; class C : public A { int c; }; class D : public B, public C { i…

2025认证杯数学建模第二阶段A题小行星轨迹预测思路+模型+代码

2025认证杯数学建模第二阶段思路模型代码&#xff0c;详细内容见文末名片 一、问题重述 1.1 问题背景 在浩瀚无垠的宇宙中&#xff0c;近地小行星&#xff08;NEAs&#xff09;宛如一颗颗神秘的“太空子弹”&#xff0c;其轨道相对接近地球&#xff0c;给我们的蓝色星球带来…

掌握Docker Commit:轻松创建自定义镜像

使用 docker commit 命令可以通过对现有容器进行修改来创建新的镜像。-a 选项用于指定作者信息&#xff0c;-m 选项用于添加提交信息。以下是具体步骤&#xff1a; 启动并修改容器 启动一个容器并进行必要的修改。例如&#xff0c;启动一个 Ubuntu 容器并安装一些软件包&…

Java虚拟机 - JVM与Java体系结构

Java虚拟机 JVM与Java体系结构为什么要学习JVMJava与JVM简介Java 语言的核心特性JVM&#xff1a;Java 生态的基石JVM的架构模型基于栈的指令集架构&#xff08;Stack-Based&#xff09;基于寄存器的指令集架构&#xff08;Register-Based&#xff09;JVM生命周期 总结 JVM与Jav…