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

CSS学习笔记--定位position属性的学习

zhezhongyun 2025-05-02 14:48 9 浏览

今天学习之前剩下的一个问题:CSS的position属性。首先归纳出和position相关的问题:

  1. position作为一个属性,它一共有哪几个属性值?
  2. position常用的属性值有哪几个?分别有什么特点?

对于position属性,他一共有5个值,分别是

  1. static:默认值。没有定位,元素出现在正常的流中。
  2. relative:生成相对定位的元素,相对于其正常位置进行定位。正常位置也就是指如果没有position属性它会出现的位置。
  3. absolute:生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。这里需要注意一下,absolute的参照对象是第一个拥有非static的position属性的父级元素,后面会详细解释。
  4. fixed:生成绝对定位的元素,相对于浏览器窗口进行定位。
  5. 规定应该从父元素继承 position 属性的值。

这种定义性质的问题,一般在W3cSchool上可以找到最标准的的答案,这5种属性的解释已经非常详细。其实我们在开发中经常用的只有relative、absolute、fixed这3个属性,另外当给元素增加了这是种属性中的任意一种,我们也就需要根据情况设置元素的left/top/right/bottom以及z-index,元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定,显示层级通过z-index控制。

第二个问题:position常用的属性值有哪几个?分别有什么特点?

上面已经提到了我们常用的3个属性值:relative、absolute、fixed。

relative:元素的position属性设置为relative后,这个元素会以自己之前的位置为参照,根据设置的left等值进行移动。下面举个栗子~

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #div1{
 width: 100px;
 height: 100px;
 background-color: #0044aa;
 margin: 5px;
        }
        #div2{
 width: 100px;
 height: 100px;
 background-color: #e13b00;
 margin: 5px;
 position: relative;
 left: 50px;
 top:50px;
 z-index: -2;
        }
        #div3{
 width: 100px;
 height: 100px;
 background-color: yellow;
 margin: 5px;
         }


    </style>
</head>
<body>
    <div style="height: 1000px">
        <div id="div1"></div>
        <div id="div2"></div>
        <div id="div3"></div>
    </div>
</body>
</html>

代码的效果如下图:

第二个div是根据它之前的位置进行了移动,并且它之前的位置并没有被后面的元素占据。红色的div被黄色的div遮盖是因为z-index的作用。

absolute:对于position属性是 static 定位以外的第一个父元素进行定位。这里需要详细分析一下这句话:首先我们可以判断出,absolute定位参照的对象是它拥有定位属性的父级元素;然后,这个父级元素的position属性不能是static。

这里再想细一点:如果元素没有拥有position属性的父级元素怎么办? 这里我通过查资料确定了这种情况它会根据<html>标签也就是页面的根节点进行定位。(注意是<html>标签)

下面将div2的position属性改为absolute查看效果:

这样我们就可以发现红色div移动之前的位置会被黄色的占据,这时候其实表示红色的div已经脱离了文档流。

最后一个属性值:fixed.它的效果其实和absolute类似,都属于绝对定位,但是它的参照则是固定的浏览器窗口。修改div2的position属性改为fixed后,滚动鼠标滚轴就可以查看效果,利用这个特性我们可以做出类似侧边悬浮窗(某些网站侧边的小广告(ノ益)ノ彡┻━┻)这样的效果。

其实,我在学习position过程中感觉到,掌握好元素的参照物是理解position属性的关键,确定好参照物,然后再根据属性值的类型判断后面的元素的状态,就能确定好元素的位置啦~

PS:通过这几天自己提问自己想办法解答的学习过程,真的收获很多。其实平时学习过程中忽略的细节还是很多的,经历了这样的一个过程自己的基础知识又扎实了不少~另外我还发现利用博客来分享知识更是个快乐的过程,又能提高编程技术又能提高表达能力,同时还有可能帮助到别人,所以一定要坚持下去!!(╰_╯)#

2016年1月11日

不积跬步,无以至千里

PS:我查阅的大部分资料都是来自于网络,如有侵权,请联系我删除

相关推荐

前端面试:聊聊 meta 标签?(meta标签用法)

提供给页面的一些元信息(名称/值对),有助于SEO。Meta标签是HTML中用于定义文档类型声明的标签。它们通常被用在head标签中,与文档的body标签相关联。在一个有head...

web网页性能分析系列(网页性能指标有哪些)

在前端开发中,App或者WebPage性能的好坏和响应速度,尤其是App端显得格外重要,一直都是前端很头疼的问题。专业的测试工具可以知道自己的网页还有哪些需要优化的地方,总体的评分是多少,是否合乎用...

[抓狂瞬间] 5 大差异 + 布局绝招!前端元素面试通关秘籍

刚入行的搬砖工程师,面对面试必问题“行内元素和块级元素有啥区别”,是不是心跳加速,大脑却一片空白?别担心!这看似基础的问题,实则是面试逆袭的突破口。今天就带你深入剖析,用5个关键差异,解锁前端布...

python中Django视图(view)的详解(附示例)

本篇文章给大家带来的内容是关于python中Django视图(view)的详解(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。一个视图函数(类),简称视图,是一个简单的Pyt...

MySQL进行整库数据备份「表(结构+数据)、视图、函数、事件」

  前言  通常情况下,我们需要改什么地方就备份什么地方就可以了,但也免不了需要整库备份的时候,本文记录实现MySQL使用脚本进行整库数据备份【表(结构+数据)、视图、函数、事件】  主要是使用mys...

python入门-day14-周末小项目(python周末培训班哪个好)

周末小项目-简易记事本的内容。这是一个综合练习,结合之前学过的函数、文件操作和异常处理,设计一个简单的命令行记事本程序。我会用清晰的步骤和代码带你实现添加、查看、删除笔记并保存到文件的功能,确保...

Python必会的50个代码操作(python代码介绍)

学习Python时,掌握一些常用的程序操作非常重要。以下是50个Python必会的程序操作,主要包括基础语法、数据结构、函数和文件操作等。1.HelloWorldprint("Hello,...

ScalersTalk成长会Python小组第7周学习笔记

Scalers点评:在2015年,ScalersTalk成长会完成Python小组完成了《Python核心编程》第1轮的学习。到2016年,我们开始第二轮的学习,并且将重点放在章节的习题上。Pytho...

电脑CMD命令与电脑工作效率提升(cmd使用提升命令)

在日常使用电脑同时按“windows+R”,可以弹出来一个框然后输入CMD弹出以下框:在这个框中输入一些内容可以简化一些我们的电脑操作好的,以下是一些最常用的CMD命令,按功能分类整理,适合日常使用和...

多线程实现消息推送并可重试3次以及1小时后重试

#-*-coding:utf-8-*-"""CreatedonTueApr2209:05:462025@author:1""&#...

RBAC权限模型(rbac权限模型的优点)

RBAC权限模型RBAC权限模型(Role-BasedAccessControl)即:基于角色的权限控制。这是目前最常被开发者使用也是相对易用、通用权限模型。准备工作CREATETABLE`s...

如何使用PIL生成验证码?(pixivic验证码)

web项目中遇到使用验证码的情况有很多,进行介绍下使用PIL生成验证码的方法。安装开始安装PIL的过程确实麻烦各种问题层出不绝,不过不断深入后就没有这方面的困扰了:windows安装:直接安装Pil...

技术是这样应用的(一)(技术的运用)

WindowsServer2003路由与远程访问在计算机网络教室使用过程中网络访问控制的实现目前很多计算机网络教室采用双网卡服务器的路由和远程访问功能,通过NAT地址转换实现教室内学生机的互联网访...

Flask-RESTful 用法指南(flask写restful接口)

Flask-RESTful是一个Flask扩展,用于快速构建RESTfulAPI。它提供了简单的语法来创建资源路由,并内置了请求解析和响应格式化功能。##安装首先安装Flask-REST...

Python办公自动化系列篇之三:PowerPoint演示文稿(.pptx)

作为高效办公自动化领域的主流编程语言,Python凭借其优雅的语法结构、完善的技术生态及成熟的第三方工具库集合,已成为企业数字化转型过程中提升运营效率的理想选择。该语言在结构化数据处理、自动化文档生成...