css定位(position)属性怎么用?

position 属性规定元素的定位类型。

说明

position属性定义建立元素布局所用的定位机制。任何元素都可以定位,不过绝对或固定元素会生成一个块级框,而不论该元素本身是什么类型。相对定位元素会相对于它在正常流中的默认位置偏移。

默认值:static

继承性:no

语法:

position:static|relative|absolute|fixed|sticky|inherit|initial;

属性值:

描述
absolute

生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。

元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

fixed

生成绝对定位的元素,相对于浏览器窗口进行定位。

元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

relative

生成相对定位的元素,相对于其正常位置进行定位。

因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。

static默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。
sticky粘性定位,该定位基于用户滚动的位置。

它的行为就像 position:relative; 而当页面滚动超出目标区域时,它的表现就像 position:fixed;,它会固定在目标位置。

注意: Internet Explorer, Edge 15 及更早 IE 版本不支持 sticky 定位。 Safari 需要使用 -webkit- prefix (查看以下实例)。

inherit规定应该从父元素继承 position 属性的值。
initial
设置该属性为默认值

position 属性常用值(absolute、fixed、relative、sticky)的区别

1、relative(相对定位)

元素相对自身的原位置偏移某个距离,可能会覆盖其他元素;占据空间,元素的初始位置占据的空间会被保留,表现为空白。

相对定位元素常常作为绝对定位元素的父元素。并且定位元素经常与z-index属性进行层次分级

2、absolute(绝对定位)

原来的元素空间被删除,新生成一个块级框,与页面内容相对静止,如果页面向下滑动,该块级框会跟随向上运动

不占空间,相对于最近的已定位的祖先元素,有已定位(指position不是static的元素)祖先元素, 以最近的祖先元素为参考标准。如果无已定位祖先元素, 以body元素为偏移参照基准。

所以,父元素一般设置为相对定位

3、fixed(固定定位)

原来的元素空间被删除,新生成一个块级框,固定在页面的一个位置,即使向下滑动页面,该块级框依旧位置不改变

不占空间,相对于视窗来定位,这意味着即便页面滚动,它还是会停留在相同的位置。一个固定定位元素不会保留它原本在页面应有的空隙。

4、sticky(粘性定位)

1)、static表示没有定位,或者说不算具有定位属性。

2)、如果元素 position 属性值为 static(或者未设 position 属性),该元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。设置 top,right,bottom,left 这些偏移属性不会影响静态定位的正常显示(设置这些属性没有用)。

跟随页面一起滚动,当超过阈值以后,固定在页面边缘,相当于 absolute和fixed的混合

例如:

#one { position: sticky; top: 10px; }

在 viewport 视口滚动到元素 top 距离小于 10px 之前,元素为相对定位。之后,元素将固定在与顶部距离 10px 的位置,直到 viewport 视口回滚到阈值以下。

Image placeholder
前端答疑
未设置
  41人点赞

没有讨论,发表一下自己的看法吧

推荐文章
CSS粘性定位(position: sticky)是怎样工作的?

浏览器对CSS粘性定位有着非常好的支持,但很多开发者都没有用过它。究其原因有两个: ● 第一,受到浏览器的良好支持需要漫长的等待:浏览器的支持往往需要很长的时间才能完成,到时候它的功能已经被人们遗忘了

css定位怎么实现居中?

css定位怎么实现居中?使用绝对定位absolute是一种常用、兼容性很好的方式。.element{ width:600px;height:400px; position:absolute; left

jq css怎么用?

jqcss怎么用?jquery中,css()方法用来返回或设置匹配的元素的一个或多个样式属性。语法:$(selector).css(name) $(selector).css(name,value)

css文件怎么用?

css文件怎么用?css文件使用有两种方式,一种是通过link标签引入,一个是使用@import进行导入。1、通过link使用css文件将下面代码放在head标签中(相关课程推荐:css视频教程)2、

css hover怎么用?

csshover怎么用?:hover选择器用于选择鼠标指针浮动在上面的元素。提示::hover选择器可用于所有元素,不只是链接。提示::link选择器设置指向未被访问页面的链接的样式,:visited

css预处理器怎么用?

css预处理器的用法:首先我们需要安装css预处理器,这里以less为例,讲解css预处理器的安装以及简单使用。1、使用npm命令安装lesscss预处理器npminstall-gless推荐学习:N

css和js后加问号和数字有什么用?

css和js后加问号和数字有什么用?当浏览器请求一个网站的时候,会加载各种各样的资源,比如:HTML文档、图片、CSS和JS等文件。对于一些不经常变的内容,浏览器会将他们保存在本地的文件中,下次访问相

hover在css中有什么用?

hover在css中有什么用?以下是我总结出的hover在css中的作用,供各位参考:修改鼠标悬浮时a标签的颜色使用hover实现悬浮显示二维码仿html元素的title属性效果给网页增加动效,如鼠标

css精灵图有什么用?

css精灵图其实就是把一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不会像以前那样一幅一幅地慢慢显示出来了。使用时,需要使用CSS的background-im

jquery hasClass()方法怎么用?

jqueryhasClass()方法怎么用?hasClass()方法验证匹配元素是否包含指定的类,包含则返回true,否则返回false。语法结构:$(selector).hasClass(class

css怎么去除定位?

如果没有指定元素的position属性值,也就是默认情况下,元素也是静态定位。只要是支持position属性的html对象都是默认为static。static是position属性的默认值,它表示块保

css怎么定位?

position属性规定元素的定位类型。这个属性定义建立元素布局所用的定位机制。任何元素都可以定位,不过绝对或固定元素会生成一个块级框,而不论该元素本身是什么类型。相对定位元素会相对于它在正常流中的默

css中ul怎么定位

css中ul怎么定位css中所有的元素默认都是static定位,要改变ul的定位方式,我们只需要指定元素的cssposition属性即可。关于定位的几种方式1、static定位(普通流定位)--默认定

css怎么设置粘性定位?

css怎么设置粘性定位?粘性定位的设置方法是给元素添加position:sticky;,sticky是css定位新增属性,类似static(没有定位)和固定定位fixed的结合。它主要用在对scrol

css中Position属性图文详解

1.介绍1.1说明Position属性:规定元素的定位类型。即元素脱离文档流的布局,在页面的任意位置显示。1.2主要的值①absolute:绝对定位;脱离文档流的布局,遗留下来的空间由后面的元素填充。

js脚本怎么用?

JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现

jquery on()怎么用?

jqueryon()怎么用?基本语法:$(selector).on(event,function) $(selector).on(object,[selector],[data]) $(selecto

jquery bind()怎么用?

jquerybind()怎么用?bind()方法向被选元素添加一个或多个事件处理程序,以及当事件发生时运行的函数。语法$(selector).bind(event,data,function,map)

jquery中each()怎么用?

jquery中each()怎么用?在jquery中的each有两种用法,分别是$.each()和$(selector).each()。$(selector).each()用于jquery对象的遍历$.

jQuery :empty怎么用?

jQuery:empty怎么用?作用::empty选择器选取空的元素。空元素指的是不包含子元素或文本的元素。语法:$(":empty")(推荐学习:jQuery教程手册)jquery:empty选择器

jQuery focus()怎么用?

jQueryfocus()怎么用?jquery中focus()是一个方法,它可以传入一个函数,作为元素获取焦点时的响应事件,也可以不传参数,用来触发focus事件。作用:当元素获得焦点时(当通过鼠标点

jQuery blur()怎么用?

jQueryblur()怎么用?当元素失去焦点时触发blur事件。blur()函数触发blur事件,或者如果设置了function参数,该函数也可规定当发生blur事件时执行的代码。语法$(selec

jquery html()方法怎么用?

jqueryhtml()方法怎么用?html()取得第一个匹配元素的html内容。这个函数不能用于XML文档。但可以用于XHTML文档。在一个HTML文档中,我们可以使用.html()方法来获取任意一

jQuery :lang()怎么用?

jQuery:lang()怎么用?jQuery的:lang(language)选择器用于匹配指定语言的所有元素,将其封装为jQuery对象并返回。指定语言的元素,表示该元素具有lang属性,其值为指定

jquery get()怎么用?

jqueryget()怎么用?1、获取DOM元素的get()方法get()方法获得由选择器指定的DOM元素。语法:$(selector).get(index)示例:获得第一个p元素的名称和值$("bu