百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

CSS精准定位布局——position_css进行布局与定位

myzbx 2025-02-20 16:59 27 浏览

1 简介

上一篇文章,介绍了魔鬼属性——浮动布局。浮动布局比较灵活,但是不容易控制。而定位布局使用户精准定位页面中的任意元素成为可能。因此在实际开发中,大家应该灵活使用这两种布局方式,这样才可以更好地满足开发需求。

2 定位布局

定位常用于布局,利用定位可以将元素精确摆放在任何位置。定位布局共有4种方式,分别是:

固定定位(fixed)。

相对定位(relative)。

绝对定位(absolute)。

静态定位(static)。

static是所有元素的默认值,存在于正常流中,不能使用偏移属性(top、bottom、left以及right)。通常所说的定位,使用的是另外3个关键字。

2.1 固定定位

固定定位不如其他定位类型用得普遍,确是最直观也是最容易理解的定位方式。给一个元素设置position: fixed就能将元素放在视口的任意位置。这需要搭配四种属性一起使用:top、right、bottom和left。这些属性的值决定了固定定位的元素与浏览器视口边缘的距离。

所谓的固定定位,指的是被固定的元素不会随着滚动条的拖动而改变位置。position:fixed固定定位元素的“包含块”是根元素,唯一可以限制固定定位元素的就是根元素。可见固定定位是很强悍的一个属性。固定定位最常用于实现“回顶部特效”。

2.2 相对定位

在CSS中,我们可以使用position:relative来实现相对定位。所谓的相对定位,指的是该元素的位置是相对于它的原始位置计算而来的。

position:relative也是结合top、bottom、left和right这4个属性一起使用的,其中,先使用position:relative让元素成为相对定位元素,接着使用top、bottom、left和right这4个属性来设置元素的相对定位。一般只会用到其中两个属性。

注意,在默认情况下,固定定位元素的位置是相对浏览器而言的,而相对定位元素的位置是相对于原始位置而言的。

2.3 绝对定位

绝对定位(absolute)会脱离正常流,并且会将元素变为块级元素。元素在被设为绝对定位后,其原先所占的空间会被删除,并且它会相对于包含块偏移,它的包含块就是离它最近的position属性不为static的祖先元素的内容区域。绝对定位是定位类型里的重量级选手。它经常跟JavaScript配合,用于弹出菜单、工具提示以及消息盒子。

2.4 静态定位

在默认情况下,元素没有指定position属性时,这个元素就是静态定位的。也就是说,元素position属性的默认值是static。

3 层叠和z-index

说完定位布局后不得不提的一个属性就是层叠顺序。浏览器将HTML解析为DOM的同时还创建了另一个树形结构,叫作渲染树(render tree)。它代表了每个元素的视觉样式和位置。同时还决定浏览器绘制元素的顺序。顺序很重要,因为如果元素刚好重叠,后绘制的元素就会出现在先绘制的元素前面。定位元素时,这种行为会改变。浏览器会先绘制所有非定位的元素,然后绘制定位元素。默认情况下,所有的定位元素会出现在非定位元素前面。但是对相对定位或绝对定位的元素来说,通常无法用改变标记位置的方法解决层叠问题。相对定位依赖于文档流,绝对定位元素依赖于它的定位祖先节点。这时候需要用z-index属性来控制它们的层叠行为。

层叠属性类似于三维的Z轴,以对象为中心,前后移动,语法用z-index表示,后面可取值,值较大的元素将叠加在z-index值较小的元素之上。以下是层叠对象的完整语法。

     z-index : auto | number

层性z-index后面接的值分别表示如下。

  • auto:默认值,由其父对象的定位决定。
  • ·number:无单位的整数值,可为负数。

属性的默认值为auto,如果设置是数字,可正可负。如果为正,最大数的对象将在前面,数值越大,越往前端显示;如果为负值,将会出现对象之后。

注意:第一,z-index 只在定位元素上生效,不能用它控制静态元素。第二,给一个定位元素加上z-index可以创建层叠上下文。

一个层叠上下文包含一个元素或者由浏览器一起绘制的一组元素。其中一个元素会作为层叠上下文的根,比如给一个定位元素加上z-index的时候,它就变成了一个新的层叠上下文的根。所有后代元素就是这个层叠上下文的一部分。

所有层叠上下文内的元素会按照以下顺序,从后到前叠放:

  • 层叠上下文的根
  • z-index为负的定位元素(及其子元素)
  • 非定位元素
  • z-index为auto的定位元素(及其子元素)
  • z-index为正的定位元素(及其子元素)

如果发现 z-index 没有按照预期表现,就在DOM树里往上找到元素的祖先节点,直到发现层叠上下文的根。然后给它设置 z-idnex,将整个层叠上下文向前或者向后放。还要注意多个层叠上下文嵌套的情况。

如果能够依靠文档流,而不是靠明确指定定位的方式实现布局,那么浏览器会帮我们处理好很多边缘情况。记住,定位会将元素拉出文档流。一般来说,只有在需要将元素叠放到别的元素之前时,才应该用定位。

4 总结

本文我们向读者重点介绍了对象的定位、定位的基本语法和层叠顺序设。属性定位由position表示,除了可以用z-index控制层的层叠顺序外,还可以用top、right、bottom和left设置对象在父对象的定位。定位与浮动也是网页设计中比较难掌握的知识点,读者在了解相关知识后需要多动手练习。更好地在实际应用中进行网页设计。

5 最后的最后

为初学者提供学习指南,为从业者提供参考价值。我坚信码农也具有产生洞见的能力。关注【码农洞见】,一起学习和交流吧!




相关推荐

如何用5分钟开发一个 Webpack Loader?

嗨,我是勾勾。今天分享的内容是如何开发一个简单的WebpackLoader,希望通过这个过程能够让你Get到WebpackLoader的工作原理与机制。Loader作为Webpack...

前端——CORS跨域请求的限制与解决

node中设置允许跨域如果需要设置多个域允许跨域,可以根据req请求的地址进行写入不同的header;consthttp=require('http')http.cre...

5分钟看懂的WebAssembly入门指南(webassembly开发)

子肃阿里开发者2023-06-2009:01发表于浙江阿里妹导读本文是一篇WebAssembly的入门文章,从理论介绍到实战方面有全面的讲述。历史进程由于javascript的动态类型特性...

刚刚发布!Claude 4连续工作7小时,比Cursor、Copilot还猛?

你见过不吃不喝、连续工作7小时的“程序员”吗?Anthropic最新发布的Claude4,不只是AI,更像是你团队里的CTO。一、什么是Claude4?别急,这不是你熟悉的GPT“亲戚”202...

JS对象判空的几种方式,你真的会了吗?

前言:为什么空对象检测如此重要?在开发中我们经常会遇到这样的场景:if(isEmpty(userInfo)){//跳转登录页}四种主流检测方案对比方案一:Object.keys()基础版fun...

密码被破译,行踪被美军全程掌握,日本海军军神命丧太平洋

【军武次位面】FriedrichLau一.突袭1941年12月7日,伴随着日军偷袭美军位于珍珠港的基地,美国也终于卷入了这场绵延全球的战火之中。为了报复日军这一行动,美军随后打出了一套组合拳,除了在太...

提示词技术详解(2)——零样本提示词

一、零样本提示(Zero-Shot)是一种会起到作用的办法。首先让模型重写提示词,然后把重写后的提示词再发给模型,以期提升回答效果。论文给出的提示词如下,仅供参考。给定一位用户的以下文字,提取其中不带...

这些流行饮料的中文名称,你会说吗?

[Photo/Pexels]Summerisinfullswing,andtheweatherishot!Tohelpyoucooldown,coldandrefre...

密码被破译多可怕?被美军全程盯梢,日本海军军神命丧太平洋

【军武次位面】FriedrichLau一.突袭1941年12月7日,伴随着日军偷袭美军位于珍珠港的基地,美国也终于卷入了这场绵延全球的战火之中。为了报复日军这一行动,美军随后打出了一套组合拳,除了在太...

一课译词:刀子嘴(刀子嘴是什么)

你身边一定有一些人,他们的言语总是那么尖锐、刺耳,但内心却又格外善良柔软,了解他们的人都知道,他们其实只是“刀子嘴,豆腐心”。“刀子嘴”,形容人说话十分刻薄(speaksarcasticallya...

捷克插画家柯薇塔·巴可维斯卡逝世,曾为《灰姑娘》绘制插图

柯瑞塔·巴可维斯卡。(图源:捷克共和国文化部)据捷克多家媒体消息,当地时间2月6日,捷克插画家柯薇塔·巴可维斯卡逝世,享年94岁。该消息经由她的儿子斯特潘·格里格(StěpánGrygar)证实。柯...

网络“匿名提问箱”成年轻人社交新宠 为何这么火?

网络“匿名提问箱”成为年轻人社交新宠“来自陌生人的关心”为什么这么火?“年度歌单里排名第一的是哪首歌?”“未来十年你的人生规划?”“有没有被甩过?”最近,这种别人能够匿名向自己提问的“提问箱”越来越得...

美国要开始搞6G了?专家:关键技术仍在摸索

2月21日,美国总统特朗普发推特“我希望5G乃至6G早日在美国落地”。日前,美国联邦通信委员会朝着特朗普的指示迈出了第一步,决定开放95千兆赫到3太赫兹频段,供6G实验使用。纽约大学教授泰德·拉帕波特...

常见的连续型随机变量(1)(连续型随机变量的定义与性质)

1.均匀分布在概率论和统计学中,均匀分布也叫矩形分布,它是对称概率分布,在相同长度间隔的分布概率是等可能的。均匀分布由两个参数a和b定义,它们是数轴上的最小值和最大值,通常缩写为U(a,b)。统计...

身高表上的-2SD、-1SD、中位数.....都是啥?和百分位有关系吗?

上周日晚,小编正气呼呼地和娃上演“作业拉锯战”时,“叮”的一声,一条微信发了过来。无独有偶,第二天又有朋友发来门诊记录,不知道SD什么意思。从家长应用的角度来看,无需太纠结,根据个人习惯选择即可。从生...