HTML + CSS 核心知识点- 定位

简述:

补充固定定位也会脱离文档流、不会占据原先位置

1、什么是文档流

        文档流是指HTML文档中元素排列的规律和顺序。在网页中,元素按照其在HTML文档中出现的顺序依次排列,这种排列方式被称为文档流。文档流决定了元素在页面上的位置和互相之间的关系。

2、具体代码和效果

(1)未设置定位前

代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Position 示例</title>
<style>.container {width: 500px;margin: 50px auto;border: 1px solid black;position: relative;}.sticky-box {width: 100px;height: 100px;background-color: purple;}.absolute-box {width: 100px;height: 100px;background-color: blue;}.relative-box {width: 100px;height: 100px;background-color: green;}.static-box {width: 100px;height: 100px;background-color: gray;}.fixed-box {width: 100px;height: 100px;background-color: orange;}.spacer {height: 1000px;}
</style>
</head>
<body>
<div class="container"><div class="sticky-box">Sticky</div><div class="static-box">Static</div><div class="relative-box">Relative</div><div class="absolute-box">Absolute</div><div class="fixed-box">Fixed</div>
</div>
<div class="spacer"></div>
</body>
</html>
效果

效果说明

基于文档正常流显示

(2)给static-box设置静态定位(static),并给left和top值后

代码
.static-box {width: 100px;height: 100px;background-color: gray;position: static;left: 1000px;top: 1000px;}
效果

效果说明

基于文档正常流显示、无任何变化

(3)给relative-box设置相对定位(relative),并给left和top值后

代码
.relative-box {width: 100px;height: 100px;background-color: green;position: relative;left: 100px;top: 100px;}
效果

效果说明

元素会保持原本占据空间、并基于自身进行偏移。

(4)给absolute-box设置绝对定位(absolute),并给left和top值后

代码
.relative-box {width: 100px;height: 100px;background-color: green;position: relative;left: 100px;top: 100px;}
效果

效果说明

脱离了文档流、并未占原先位置、并基于最近的非static的父元素盒子偏移。

(5)给fixed-box设置绝对定位(fixed),并给left和top值后

代码
.fixed-box {width: 100px;height: 100px;background-color: orange;position: fixed;top: 100px;left: 100px;}
效果

效果说明

脱离了文档流、并未占原先位置、并基于视窗偏移。

(6)给父容器盒子加上滚动条、sticky-box设置绝对定位(sticky),并给left和top值后

代码
.container {width: 500px;height: 500px;margin: 100px auto;border: 1px solid black;position: relative;overflow: scroll;}.sticky-box {width: 100px;height: 200px;background-color: purple;position: sticky;left: 100px;top: 100px;}
<div class="container"><div class="sc" style="height: 300px;"></div><div class="sticky-box">Sticky</div><div class="static-box">Static</div><div class="relative-box">Relative</div><div class="absolute-box">Absolute</div><div class="fixed-box">Fixed</div><div class="sc" style="height: 1000px;"></div>
</div>
效果
未滑动前

效果说明

此时盒子为相对定位

效果
滚动条向下滑动后、但是盒子距离父盒子顶部大于200px

效果说明

此时盒子也会向上滑动、盒子依旧为相对定位

效果
滚动条向下滑动后、盒子距离父盒子顶部小于或等于200px

效果说明

此时盒子会具体在距离顶部200px的位置、盒子为绝对定位

3、和定位的知识有关考查题与回答

  1. 什么是 CSS 定位?

    回答:在 CSS 中,定位是一种用来控制元素在页面中位置的方式。通过设置 position 属性,可以将元素相对于文档流或特定父级元素进行定位。
  2. 请解释 CSS 中的 position 属性有哪些值,它们分别代表什么?

    回答:
    • sticky:在特定条件下表现为相对定位和固定定位的混合效果。
    • fixed:相对于视窗定位,元素固定在页面上某个位置,不随滚动而移动。
    • absolute:相对于最近的非 static 定位父元素进行定位,如果没有,则相对于文档流。
    • relative:相对于元素自身原本位置进行偏移,但仍占据原本空间。
    • static:默认属性,元素遵循正常文档流。
  3. 如何让一个元素水平垂直居中显示?

    回答:可以使用多种方法实现,比如使用 Flexbox 布局或者 Grid 布局,也可以结合使用绝对定位和 transform 属性来实现。
  4. 什么是堆叠上下文(stacking context)?

    回答:堆叠上下文是指在 HTML 元素在垂直方向上重叠时的一个概念,它定义了元素如何在垂直方向上叠加显示。元素的堆叠顺序由其堆叠上下文和 z-index 属性决定。
  5. 如何创建一个元素的堆叠上下文?

    回答:可以通过设置元素的 position 属性为 relativeabsolutefixed 或 sticky,或者设置 opacity 属性不为 1、transform 属性不为 nonefilter 属性不为 none 等方式来创建堆叠上下文。
  6. 什么是浮动(float)?它与定位有何区别?

    回答:浮动是一种布局方式,使元素脱离文档流向左或向右浮动。与定位不同,浮动元素仍占据文档流中的位置,而定位可以使元素完全脱离文档流并定位到指定位置。
  7. 在什么情况下会出现定位偏移量(offset)失效的情况?

    回答:定位偏移量(offset)失效通常发生在相对定位元素的父级元素也设置了定位属性且定位值不为 static 的情况下。这时子元素的偏移量是相对于父级定位元素的位置而非文档流。
  8. 如何实现一个元素在页面滚动时固定在顶部?

    回答:可以通过给元素设置 position: fixed; top: 0; 来实现元素在页面滚动时固定在顶部。
  9. z-index 属性的作用是什么?如何影响元素的堆叠顺序?

    回答:z-index 属性用于控制元素在堆叠上下文中的堆叠顺序。具有较高 z-index 值的元素会覆盖具有较低 z-index 值的元素。
  10. 如何实现一个元素相对于视口垂直居中显示?

    回答:可以给元素设置 position: fixed; top: 50%; transform: translateY(-50%); 来实现元素相对于视口垂直居中显示。

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

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

相关文章

QT进阶-----------认识QT相关的模块(第四天)

1、关于Visual Studio与QT Creator的不同导入方式 Visual Studio作为windows宇宙最强编辑器以及编译器&#xff0c;它相当的好用&#xff0c;作为一个学了一年QT的菜鸟&#xff0c;总结了一些关于VS以及QT Creator两者的不同。 首先&#xff0c;在VS中qt是作为第三方库导入到…

怎么做好独立站的SEO优化

随着全球贸易的蓬勃发展&#xff0c;越来越多的企业开始关注外贸市场&#xff0c;并将目光投向了外贸网站。然而&#xff0c;在竞争激烈的外贸市场中&#xff0c;如何写出吸引人的文章&#xff0c;以及如何优化网站以在搜索引擎中脱颖而出&#xff0c;成为了外贸独立网站必须面…

Python 求素数个数

要计算一个给定范围内素数的个数&#xff0c;你可以编写一个Python函数来遍历这个范围&#xff0c;并对每个数检查它是否是素数。下面是一个简单的例子&#xff0c;该函数计算从2到n&#xff08;包括n&#xff09;之间的素数个数&#xff1a; python复制代码 def count_primes…

机器学习-绪论

机器学习致力于研究如何通过计算的手段、利用经验来改善系统自身的性能。在计算机系统中&#xff0c;“经验”通常以“数据”的形式存在&#xff0c;因此&#xff0c;机器学习所研究的主要内容&#xff0c;是关于在计算机上从数据中产生“模型”的算法&#xff0c;即“学习算法…

2024西工大数据结构理论上机作业(头歌 C)持续更新中~

第二章 线性表 1 顺序表的插入运算 #include <stdio.h> #include <stdlib.h>typedef struct node {int val;struct node *next; } Node, List;List *init(void) {List *s (List*) malloc(sizeof(List));Node *tail s; int n;s->next NULL, s->val -1;s…

PHP<=7.4.21 Development Server源码泄露漏洞 例题

打开题目 dirsearch扫描发现存在shell.php 非预期解 访问shell.php&#xff0c;往下翻直接就看到了flag.. 正常解法 访问shell.php 看见php的版本是7.3.33 我们知道 PHP<7.4.21时通过php -S开起的WEB服务器存在源码泄露漏洞&#xff0c;可以将PHP文件作为静态文件直接输…

MultiButton

MultiButton MultiButton简介使用方法特性按键事件Examples 具体实现代码multi_button.cmulti_button.h MultiButton 简介 MultiButton 是一个小巧简单易用的事件驱动型按键驱动模块&#xff0c;可无限量扩展按键&#xff0c;按键事件的回调异步处理方式可以简化你的程序结构…

深入理解数据结构森林

文章目录 一、森林是什么二、森林的应用范围三、森林结构的MQL语言实现 一、森林是什么 数据结构中的"森林"是指多个树的集合。在树的概念中&#xff0c;每个节点可以有多个子节点&#xff0c;而在森林中&#xff0c;每个树都是独立的&#xff0c;没有共享的节点。换…

如何在没有向量数据库的情况下使用知识图谱实现RAG

引言 传统上&#xff0c;为大型语言模型&#xff08;LLMs&#xff09;提供长期记忆通常涉及到使用检索增强生成&#xff08;RAG&#xff09;解决方案&#xff0c;其中向量数据库作为长期记忆的存储机制。然而&#xff0c;我们是否能在没有向量数据库的情况下达到相同效果呢&am…

Vue3中Pinia状态管理库学习笔记

pinia的基本使用 <template><div><h2>Home View</h2> <h2>count:{{ counterStore.count }}</h2><h2>count:{{ count }}</h2><button click"increment">count1</button></div> </template>…

P1041 [NOIP2003 提高组] 传染病控制

题目描述 研究表明&#xff0c;这种传染病的传播具有两种很特殊的性质&#xff1b; 第一是它的传播途径是树型的&#xff0c;一个人 X 只可能被某个特定的人 Y 感染&#xff0c;只要 Y 不得病&#xff0c;或者是 XY 之间的传播途径被切断&#xff0c;则 X 就不会得病。 第二…

2024年56套包含java,ssm,springboot的平台设计与实现项目系统开发资源(可运行源代码+设计文档)分享【万字长文收藏耐心看】

序号项目名称项目链接1某品零食交易平台设计与实现|基于springboot MysqlJava的某品交易平台设计与实现(源码数据库文档PPT)https://xiaoxiao.blog.csdn.net/article/details/136463403?spm1001.2014.3001.55022毕业生信息招聘平台|基于springboot MysqlJava的毕业生信息招聘平…

LLM 面试知识点——模型基础知识

1、主流架构 目前LLM(Large Language Model)主流结构包括三种范式,分别为Encoder-Decoder、Causal Decoder、Prefix Decode。对应的网络整体结构和Attention掩码如下图。 、 各自特点、优缺点如下: 1)Encoder-Decoder 结构特点:输入双向注意力,输出单向注意力。 代表…

Tomcat:Session ID保持会话

目录 前言 ​一、部署环境 二、部署nginx反向代理服务器 三、部署tomcat服务器1 四、部署tomcat服务器2 五、客户端测试&#xff08;Session ID不断变动&#xff09; 六、配置Session ID会话保持 七、客户端测试&#xff08;Session ID保持&#xff09; 前言 此次实验…

nginx location块配置

nginx可以通过配置文件中的location指令来定义不同的请求匹配规则和处理逻辑&#xff0c;也就是描述不同请求资源在服务器的位置或者配置代理转发路径。 location块通常在server块中&#xff0c;一个server块可以包含多个location块。 server {location {}location {} }语法规…

客户端渲染与服务端渲染(1)

客户端渲染即普通的 React 项目渲染方式。 客户端渲染流程&#xff1a; 浏览器发送请求 服务器返回 HTML 浏览器发送 bundle.js 请求 服务器返回 bundle.js 浏览器执行 bundle.js 中的 React 代码 CSR 带来的问题&#xff1a; 首屏加载时间过长 SEO 不友好 因为时间在往返的几…

python内置函数 M

python内置函数 M Python 解释器内置了很多函数和类型&#xff0c;任何时候都能使用。 M 名称描述map返回一个迭代器&#xff0c;其中包含函数应用于每个元素的结果。max返回给定可迭代对象&#xff08;如列表、元组、字符串等&#xff09;中的最大元素。memoryview返回由给…

C语言自定义库

编写 xx.c 和xx.h文件\将源代码编译为目标文件 gcc -c add.c sub.c 执行完毕后会生产add.o和sub.o文件静态库创建使用ar命令&#xff1b; ar -r libmymath.a add.o sub.o将库和main.c文件一起编译 gcc -o main main.c -lmymath -L./ 注意 上述书写格式不要错乱 -L 是指定文件路…

鸿蒙-项目创建及了解

目录 项目创建 1.App普通项目创建 2.元服务创建 项目结构 .hvigor .idea AppScope entry EntryAbility.ts pages resources module.json5 ohosTest hvigorfile.ts build-profile.json5 oh_modules build-profile.json5 hvigorfile.ts 项目运行 项目创建 F…

uniapp的描述的展开与收缩,超过三行有省略号才显示

html代码&#xff1a; <view class"desc_box"><view id"desc" class"desc" :class"open ? open : three">{{ data.desc }}</view><view class"expand theme-color" click"unfold" v-if&qu…