【CSS】定位属性position使用详解(static、relative、fixed、absolute)

简介: css定位属性position:static、relative、fixed、absolute详细介绍及使用样例。

position 属性介绍

(1)position 属性自 CSS2 起就有了,该属性规定元素的定位类型。所有主流浏览器都支持 position 属性。
(2)position 的可选值有四个:static、relative、absolute、fixed。下面分别进行介绍。(其实还有个 inherit,不过这个是 IE 特有的,这里就不做讨论)

position: static(默认值)

1.基本介绍

(1)static 是默认值。表示没有定位,或者说不算具有定位属性。
(2)如果元素 position 属性值为 static(或者未设 position 属性),该元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。

2.使用样例

css:

<style>
  div {
   
    width: 200px;
    height: 100px;
    background-color: #C9FFFF;
  }
</style>

html:

<div></div>
<input type="text"/>
`

我们不设置元素的 postion 属性值,那么默认的显示效果如下:

position: relative(相对定位)

1.基本介绍

(1)relative 生成相对定位的元素,相对于其正常位置进行定位。
(2)相对定位完成的过程如下:

首先按默认方式(static)生成一个元素(并且元素像层一样浮动了起来)。
然后相对于以前的位置移动,移动的方向和幅度由 left、right、top、bottom 属性确定,偏移前的位置保留不动。

2.样例代码

下面代码将文本输入框 position 设置为 relative(相对定位),并且相对于默认的位置向右、向上分别移动 15 个像素。
css:

  div {
   
    width: 200px;
    height: 100px;
    background-color: #C9FFFF;
  }

  input {
   
    position: relative;
    left: 15px;
    top: -15px;
  }

html:

<div></div>
<input type="text" />

运行效果如下:
查看显示效果

position: absolute (绝对定位)

1.基本介绍

(1)absolute 生成绝对定位的元素。
(2)绝对定位的元素使用 left、right、top、bottom 属性相对于其最接近的一个具有定位属性的父元素进行绝对定位。
(3)如果不存在这样的父元素,则相对于 body 元素,即相对于浏览器窗口。

2.样例代码

下面代码让标题元素相对于它的父容器做绝对定位(注意父容器 position 要设置为 relative)。
同时通过 top 属性让标题元素上移,使其覆盖在父容器的上边框。
最后通过 left 和 margin-left 配合实现这个绝对定位元素的水平居中。

css:

  #box {
   
    width: 200px;
    height: 100px;
    -webkit-box-flex:1;
    border: 1px solid #28AE65;
    border-radius:6px;
    padding: 20px;
    position: relative;
    font-size: 12px;
  }

  #title {
   
    background: #FFFFFF;
    color: #28AE65;
    font-size: 15px;
    text-align: center;
    width: 70px;
    height: 20px;
    line-height: 20px;
    position: absolute;
    top: -10px;
    left: 50%;
    margin-left: -35px;
  }

html:

<div id="box">
  <div id="title">标题</div>
  欢迎访问我的博客
</div>

运行效果如下,标题元素虽然是在边框容器的内部。但由于其使用绝对定位,并做位置调整,最后显示效果就是覆盖在父容器边框上。

查看显示效果

position: fixed

1.基本介绍

(1)fixed 生成绝对定位的元素,该元素相对于浏览器窗口进行定位。
(2)固定定位的元素不会随浏览器窗口的滚动条滚动而变化,也不会受文档流动影响,而是始终位于浏览器窗口内视图的某个位置。

2.样例代码

(1)下面代码让输入框位于浏览器窗口的底部。

css:

  input {
    position: fixed;
    bottom: 10px;
  }

html:

<ol>
  <li>数据</li><li>数据</li><li>数据</li><li>数据</li><li>数据</li><li>数据</li>
  <li>数据</li><li>数据</li><li>数据</li><li>数据</li><li>数据</li><li>数据</li>
  <li>数据</li><li>数据</li><li>数据</li><li>数据</li><li>数据</li><li>数据</li>
  <li>数据</li><li>数据</li><li>数据</li><li>数据</li><li>数据</li><li>数据</li>
</ol>
<input type="text" />

(2)可以看到不管滚动条如何滚动,输入框始终处于窗口的最下方。


✍创作不易,求关注😄,点赞👍,收藏⭐️

相关文章
|
7月前
|
前端开发 定位技术 开发者
CSS基础-定位:static, relative, absolute, fixed
【6月更文挑战第10天】本文探讨了CSS四种定位方式:static、relative、absolute和fixed,强调理解它们的差异对前端开发者的重要性。static遵循正常文档流,relative通过偏移量调整位置但不脱离文档流,absolute完全脱离文档流并依附于最近的非static祖先元素,fixed则相对于浏览器窗口固定。文章列举了常见问题及避免策略,并提供了实战代码示例以直观展示四种定位的效果。掌握这些定位技术能提升布局效率和页面设计质量。
63 1
|
6月前
|
前端开发 容器
CSS【详解】定位 position (静态定位 static -- 文档流排布 、相对定位 relative、绝对定位 absolute、固定定位 fixed、黏性定位 sticky)
CSS【详解】定位 position (静态定位 static -- 文档流排布 、相对定位 relative、绝对定位 absolute、固定定位 fixed、黏性定位 sticky)
254 0
|
前端开发 容器
面试官:介绍一下CSS定位?absolute和relative分别依据什么定位?
面试官:介绍一下CSS定位?absolute和relative分别依据什么定位?
134 0
|
前端开发
|
前端开发 算法 JavaScript
CSS——CSS定位※ ( position )
CSS——CSS定位※ ( position )
294 0
|
前端开发 容器
web前端学习(二十三)——CSS3定位(position)、元素裁剪(clip)及鼠标样式(cursor)属性的相关设置
web前端学习(二十三)——CSS3定位(position)、元素裁剪(clip)及鼠标样式(cursor)属性的相关设置
web前端学习(二十三)——CSS3定位(position)、元素裁剪(clip)及鼠标样式(cursor)属性的相关设置
|
前端开发
web前端css定位position和起浮float
div、h1或p元素常常被称为块级元素。这意味着这些元素显现为一块内容,即“块框”。与之相反,span和h3等元素称为“行内元素”,这是由于它们的内容显现内行中,即“行内框”。
1020 0
|
Web App开发 前端开发 Android开发