web布局——说清楚fixed布局

极限省流

想要fixed做导航页面:指定清楚top、left、right、bottom,没指定清楚布局位置就会采用默认的方式:

0)父元素的padding:fixed元素相对位移

1)同级元素是fixed元素:覆盖

2)同级元素有非fixed元素-》看它们的margin

使用总结:还是用top、left、right直接指定好

准备

准备好一个html文件和一个css文件

<!DOCTYPE html>
<html>
<head><title>fixed理解</title><link rel="stylesheet" type="text/css" href="./fixed_and_margin.css">
</head>
<body></body>
</html>

2)在css文件中写出fixed元素和非fixed元素(一般元素)做区分

.fixed_item{position: fixed;background-color: lightgreen;
}.normal_item{background: lightblue;margin: 0px;
}

 3)为了看出fixed的效果,我们写一个obey样式,设定它的min-height,以便页面够长可以“测试滚动”

.obey{background: lightblue;margin: 0px;min-height: 500px;
}

一、fixed的固定效果

fixed脱离文档流——就是相对整个窗口浮动

fixed使得元素一直保持在屏幕的某一位置,不会随着滚轴在页面上的位移而改变

实例:

加两个占位元素以后,页面就足够长可以滚动了,滚动的时候会发现fixed元素一直在左侧

<!DOCTYPE html>
<html>
<head><title>fixed理解</title><link rel="stylesheet" type="text/css" href="./fixed_and_margin.css">
</head>
<body><div class="fixed_item">首个fixed元素</div><div class="obey">占位元素</div><div class="obey">占位元素</div></body>
</html>

 

二、fixed布局

接下来以几个实例说明

1、之前的非flex元素

包括父元素和同级元素的height

htnl代码如下:

<body><pre>空一行空一行fixed之前的pre元素</pre><div class="fixed_item">首个fixed元素</div><div class="fixed_item">紧接着的一个fixed元素</div><div class="obey">占位元素</div><div class="obey">占位元素</div>
</body>

效果显示:

①可以看出来“第一个fixed元素”已经看不到了,被"紧接着的一个fixed元素"遮挡了

 ②画面里仅有的一个fixed元素在<pre></pre>打完之后才出现,所以pre实体内容的高度会影响fixed元素的布局

2、margin

验证fixed只受其之前元素(包含父元素)和同级元素margin的影响

1)父元素的margin

 ①向html中加入一个fixed_item,发现fixed_item离左上角还有些距离

<!DOCTYPE html>
<html>
<head><title>fixed理解</title><link rel="stylesheet" type="text/css" href="./fixed_and_margin.css">
</head>
<body><div class="fixed_item">首个fixed元素</div>
</body>
</html>

②将所有的margin清零

body{margin: 0px;
}

刷新得到效果:

结论:故fixed元素受其父元素的margin的影响

2)同级元素的margin

现在我们在fixed_item元素后增加一个<div>元素(类别认定为normal_item_wm,with mragin的意思):

<body><div class="fixed_item">首个fixed元素</div><div class="normal_item_wm">同级元素,带margin</div><div class="obey">占位元素</div><div class="obey">占位元素</div></body>

定制样式:为了突出显示,定margin为100px

.normal_item_wm{background: lightyellow;margin: 100px;
}

刷新结果显示:

结论:fixed元素的位置再一次发生了改变,说明同级元素的margin依然会影响到fixed的布局

3)子元素的margin

html中的代码是:

<body><div class="fixed_item">首个fixed元素<div class="normal_item_wm">子元素,带margin</div></div><div class="obey">占位元素</div><div class="obey">占位元素</div>
</body>

刷新效果如下:

补充:子元素也跟着fixed,脱离文档流

结论:fixed_item的位置不会受其自己的子元素的margin的影响

4)由2)和3)可以看出来margin是作用在直接的父子元素之间的

3、padding

先说结论:只有父元素的padding才会影响fixed_item的布局

1)父元素的padding

html代码:

<body><div class="fixed_item">首个fixed元素</div><div class="obey">占位元素</div><div class="obey">占位元素</div>
</body>

css代码:

body{margin: 0px;padding: 100px;
}

显示效果:

 

2)同级元素的padding

<body><div class="fixed_item">首个fixed元素</div><div class="normal_item">带padding的普通元素</div><div class="obey">占位元素</div><div class="obey">占位元素</div>
</body>

记得将body还原成默认css

/*body{margin: 0px;padding: 100px;
}*/
.fixed_item{position: fixed;background-color: lightgreen;margin: 0px;}.normal_item{background: lightblue;margin: 0px;padding: 100px;
}

效果如下图 

                                ​​​​​​​        ​​​​​​​        

4、直接指定位置

上述介绍中,可以看到默认情况下的fixed元素位置有太多的影响因素,因此我们需要一种直接指定位置的方式——[top,bottom,left,right](如果没有指定清楚某一方位,就会采用二的1-3默认布局)

html文件:

<body><pre>空一行空一行fixed之前的pre元素</pre><div class="fixed_item">首个fixed元素</div><div class="obey">占位元素</div><div class="obey">占位元素</div></body>

css文件

.fixed_item{position: fixed;background-color: lightgreen;margin: 0px;top:10px;left: 100px;right: 100px;}.obey{background: lightblue;margin: 0px;min-height: 500px;
}

三、fixed应该怎么用?

fixed可以使元素相对视角窗口固定,个人觉得非常适合用来做导航栏、侧边栏

其实在2.4的介绍中已经给出了fixed的基本用法,只是还存在问题:fixed浮空遮挡了pre的部分内容

可以给fixed对应位置“垫一个底板”,由于fixed已经直接指定了位置,所以不担心它会被底板影响布局

html中:

<body><div class="navibg"><div class="navi">CSDN水平导航</div></div><pre>pre开始pre1pre2pre中间pre3pre结束</pre><div class="helpnavi"></div><div class="obey">占位元素1</div><div class="obey">占位元素2</div>
</div>
</body>

css文件中

.navibg{height: 48px;
}
.navi{/*需求:占满屏幕*/height: 48px;background-color: lightgreen;position: fixed;left: 2px;right: 2px;
}.obey{min-height: 500px;
}

效果显示:

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

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

相关文章

尾矿库在线安全监测:提升矿山安全水平

在矿山安全领域&#xff0c;尾矿库的安全管理尤为关键。尾矿库作为矿山生产链条的重要环节&#xff0c;其稳定性不仅关系到生产活动的持续进行&#xff0c;更直接影响着周边环境和人民群众的生命财产安全。因此&#xff0c;尾矿库的安全监测显得尤为重要。近年来&#xff0c;随…

【Leetcode每日一题】 动态规划 - 不同路径(难度⭐⭐)(46)

1. 题目解析 题目链接&#xff1a;62. 不同路径 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 2.算法原理 想要解决这个问题&#xff0c;我们得像个侦探一样&#xff0c;一步步地追踪路径&#xff0c;找出所有可能的走法。接下…

2024年妈妈杯数学建模思路A题B题C题D题思路分享

文章目录 1 赛题思路2 比赛日期和时间3 组织机构4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间&#xff1a;2024…

JavaEE:网络原理——协议(网络层+数据链路层)

网络层&#xff1a;IP协议 IP协议报头 其中取值只有两种&#xff0c;分别是4和6&#xff0c;分别对应IPv4和IPv6 IP报头&#xff0c;单位是4个字节&#xff0c;可变长 type of service&#xff0c;表示当前IP协议所处的工作模式 实际上只有四位是有效的。而且这4为是彼此冲突…

GEE实践应用|热岛效应(一)地表温度计算

目录 1.学习目标 2.理论介绍 3.从MODIS获得地表温度 4.从Landsat卫星获得地表温度 1.学习目标 ①了解如何使用GEE计算地表温度 2.理论介绍 城市化涉及用建筑物、道路和停车场等建筑结构取代自然景观。这种土地覆盖的改变也改变了土地表面的特性。这些变化的范围从表面反射和…

SpringBoot Redis的使用

官方文档&#xff1a; 官方文档&#xff1a;Spring Data Redis :: Spring Data Redis 和jedis一样&#xff0c;SpringBoot Redis 也可以让我在Java代码中使用redis&#xff0c;同样也是通过引入maven依赖的形式。 加速访问github: 使用steam可以免费加速访问github Spring…

【微服务】Sentinel(流量控制)

文章目录 1.基本介绍1.Sentinel是什么2.Sentinel主要特性3.Sentinel核心功能1.流量控制2.熔断降级3.消息削峰填谷 4.Sentinel两个组成部分 2.Sentinel控制台显示1.需求分析2.下载3.运行1.进入cmd2.输入java -jar sentinel-dashboard-1.8.0.jar3.查看默认端口8080 4.访问1.账号和…

【八股】泛型

泛型存在的意义&#xff1f; 为了使相同的代码适用于多种数据类型&#xff0c;也就是代码复用。 参数类型上下限限制 <?> 无限制 <? extends E> 声明了类型的上界&#xff0c;表示参数类型可以是他或他的子类。 <? super E> 声明了类型的下界&#xf…

C++多线程:创建多个线程与数据共享安全问题(四)

1、创建多个线程 多线程的调度由操作系统负责&#xff0c;线程执行的先后没有严格的顺序完全看操作系统和CPU的心情。 #include <iostream> #include <vector> #include <thread>void thread_print(int num) {std::cout << "线程编号 " &…

视频无水印爬虫采集工具|抖音视频批量下载软件|可导出视频分享链接

全新视频无水印爬虫采集工具&#xff0c;助力您快速获取所需视频&#xff01; 视频无水印爬虫采集工具&#xff0c;为用户提供了强大的视频采集和下载功能。它可以批量提取关键词相关的视频&#xff0c;同时支持单独视频的提取和下载&#xff0c;操作简便&#xff0c;使用方便。…

数字兆欧表操作规程你知道多少?南电电力来告诉你!

一、数字兆欧表操作规程   数字兆欧表是一种现代化电子仪表&#xff0c;用于测量电气设备的绝缘电阻。其操作规程的目的是确保测量结果的准确性&#xff0c;并保证操作人员的安全。以下是主要的操作规程&#xff1a;   1.安全操作&#xff0c;断电与放电&#xff1a;在测量…

【MySQL探索之旅】MySQL数据表的增删查改——约束

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更…

ctf-36C3解析

一、环境 unbentu 这道题给了docker环境&#xff0c;gethub上面自己找 一个好用的linux全局切换梯子proxychains 二、开始解析 2.1初始 2.2编译 docker build . 2.3代理设置完毕 我试了一下代理还是不行&#xff0c;我们换源尝试一下 RUN sed -i s/deb.debian.org/mirro…

Go打造REST Server【二】:用路由的三方库来实现

前言 在之前的文章中&#xff0c;我们用Go的标准库来实现了服务器&#xff0c;JSON渲染重构为辅助函数&#xff0c;使特定的路由处理程序相当简洁。 我们剩下的问题是路径路由逻辑&#xff0c;这是所有编写无依赖HTTP服务器的人都会遇到的问题&#xff0c;除非服务器只处理一到…

Redis桌面客户端

3.4.Redis桌面客户端 安装完成Redis&#xff0c;我们就可以操作Redis&#xff0c;实现数据的CRUD了。这需要用到Redis客户端&#xff0c;包括&#xff1a; 命令行客户端图形化桌面客户端编程客户端 3.4.1.Redis命令行客户端 Redis安装完成后就自带了命令行客户端&#xff1…

面向对象特征一:封装性

9.1 为什么需要封装&#xff1f; 我要用洗衣机&#xff0c;只需要按一下开关和洗涤模式就可以了。有必要了解洗衣机内部的结构吗&#xff1f;有必要 碰电动机吗&#xff1f; 我要开车&#xff0c;我不需要懂离合、油门、制动等原理和维修也可以驾驶。 客观世界里每一个事物…

乐维更改IP地址

1.1 系统IP调整 vim /etc/sysconfig/network-scripts/ifcfg-ens1921.2 Web相关服务IP变更 1.2.1 编辑/itops/nginx/html/lwjkapp/.env文件,更改ZABBIXSERVER、ZABBIXRPCURL、DB_HOST中的IP 1.2.2 进入/itops/nginx/html/lwjk_app/目录下,执行php bin/manager process-conso…

(免费分享)基于微信小程序电影院购票系统带论文

基于小程序的电影院购票管理系统【含报告】&#xff1a;前端 vue、elementui、小程序&#xff0c;后端 maven、springboot、springmvc、spring、mybatis&#xff0c;角色分为管理员、用户&#xff1b;集成小程序浏览电影&#xff0c;购票等功能于一体的系统。 目录 摘要 I Ab…

关于Devc++调试的问题以及解决STL变量无法查看

目前Devc的调试主要有以下几点&#xff1a; 1.调试不能直接查看stl变量&#xff0c;会卡死不动 2.目前单步进入只能用鼠标键按 3.若想按下一步进入函数体内&#xff0c;要在函数体内打上断点才行 4.调试到return 0 ;上一句就停了&#xff0c;不会结束程序 5.目前F2跳至断点…