css:position属性

原创 2017年01月07日 00:03:22

在CSS中,left、right、top、bottom表示距离左右上下的值,它们其实是有一个“参照物”的。要想让这4个属性发挥作用,必须给position属性设置(非static的)值。

position属性,有以下取值:

  • static:默认值,表示没有定位(没有参照物。所以left等值设置了也没用)
  • inherit:继承父元素的值
  • relative:相对定位,表示相对于“本来所在的位置”
  • absolute:绝对定位,表示相对于最近的而且指定了position为非static值的父元素、或者相对于body
  • fixed:固定在浏览器视角的某个位置,不随滚动条滚动而变化

其中比较难明白的是relative和absolute,下面通过一些例子来说说它们的特点。

1、relative:

relative值表示相对于原来的位置。什么叫“原来的位置”呢?就是元素不设置position属性(或者设置为static),在文档流中应该存在的位置。
然后,如果设置:left:10px,就意味着把该元素放置在距离该位置左侧10px的位置,表现为原地向右移动10px。比如这个例子:
relative

relative块的position属性为relative,它原来的位置,是在static块下面,但是设置了left和top属性,就相对于该位置移动了一些距离。
相应的代码在最后的“例子1”。

2、absolute:

  • 设置了absolute的元素,会寻找距离最近的、并且position属性设置成除static以外的值的父元素作为参照物,如果找不到,就以body作为参照。
  • 设置的left、right、top、bottom,都是相对于这个参照物。
  • 设置了absolute的元素,会脱离文档流(BTW,设置了float属性也会)。

    还是刚才那个例子,如果我把下面那个红色块由relative改成absolute,那么效果为:
    absolute

    可以看到,absolute块相对于左上角(body)偏移了一些距离。并且,该元素不在文档流中(黄色边框表示body的范畴。body并没有为absolute块预留一个位置,说明absolute块不在其中)。
    代码就不写出来了,就是把relative改成absolute。

    根据第一条规则,一般我们想要让元素相对于某个父元素,那么可以设置该元素为absolute,然后设置父元素为relative(不影响其位置)


补充代码:

  • 例子1:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CSS Positioning</title>
    <style type="text/css">
        #container div {
            width: 200px;
            height: 100px;
        }
    </style>
</head>
<body style="border: 5px yellow solid;">
<div id="container">
    <div style="border: 1px blue solid; position: static;">
        static(default)
    </div>
    <div style="background-color: red; position: relative; left: 20px; top: 50px;">
        relative<br />left: 20px<br />top: 50px
    </div>
</div>
</body>
</html>
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/VitaLemon__/article/details/54144388

明盒开发

明盒开发未经允许,严禁转载本栏目内容本文经许可转载自软件工程专家网www.21cmm.com,未经CSDN许可,请勿随便转载,谢谢合作(一) 明盒结构  明盒定义了实现转换状态盒功能的过程。明盒和相应...
  • gigix
  • gigix
  • 2002-03-14 10:15:00
  • 1677

Css 详细解读定位属性 position 以及参数

Css 详细解读定位属性 position 以及参数position 定位属性,是CSS中非常重要的属性。除了文档流布局,就是定位布局了。本来我对这个问题没有放在心上,毕竟写了这么多年的css,对po...
  • FungLeo
  • FungLeo
  • 2015-11-26 15:04:21
  • 6868

CSS中的定位——position属性

CSS定位指的是 改变元素在页面中的位置。 CSS定位机制: 普通流:元素按照其在HTML中的位置顺序决定排布的过程(也就是我不对元素进行定位的默认排布) 浮动 绝对布局 CSS定位包含的属性有: ...
  • qq_15096707
  • qq_15096707
  • 2016-01-07 15:19:39
  • 1469

CSS中position和display理解

Display理解 1、display常见属性解释 block 默认为block,宽度默认为100%。块状元素有:div、p、h1、form、ul、li。 inline 宽度就是它的文字或图...
  • laixiaobailing
  • laixiaobailing
  • 2014-09-16 09:14:45
  • 1065

关于CSS的position四种取值

关于position的四种取值,自己只是混淆,希望这次总结能加深印象: position
  • yuxuan89814
  • yuxuan89814
  • 2014-08-19 21:22:28
  • 1200

Css中Position属性的含义

position有四个参数:static  | relative | absolute | fixed position:static,意味元素没有被定位,元素会出现在文档本该出现位置,是页面元...
  • after_
  • after_
  • 2014-10-02 00:08:45
  • 1251

CSS样式表中的position属性取值和作用

一、首先,我们大致看一下CSS样式中position属性的常用取值都有哪些: 从Dreamwaver给出的提示中我们可以大致了解到取值方式差不多有6种: 1.     absolute绝对...
  • KillDrogon
  • KillDrogon
  • 2013-01-11 18:05:37
  • 1212

CSS: float属性和position属性的区别和应用

在使用div+css进行网页制作时,我们经常需要对某些元素进行一些必要的定位,使其能按照我们预想的效果呈现在页面合适的位置上,而float和position便是实现这一效果的两种方法。 一、浮动(f...
  • fivedoumi
  • fivedoumi
  • 2016-03-10 21:33:09
  • 1724

jQuery操作css-position()与offset()方法的区别

使用jQuery获取元素位置时,我们会使用position()或offset()方法, 两个方法都返回一个包含left属性和top属性的对象-左边距和上边距。 这两个方法返回的对象的不同点在于位置...
  • zhuyunhe
  • zhuyunhe
  • 2015-05-31 21:44:14
  • 872

CSS中div布局position以及水平居中

1
  • xiaokangmiclong
  • xiaokangmiclong
  • 2015-11-18 11:51:36
  • 1738
收藏助手
不良信息举报
您举报文章:css:position属性
举报原因:
原因补充:

(最多只允许输入30个字)