HTML中元素的position属性详解

转载自:https://blog.csdn.net/wangzunkuan/article/details/81540935

 

HTML中DOM元素有5种定位属性值:static、relative、absolute、fixed和inherit。下面分别对这5个属性进行说明。

position: static;

默认情况下,所有元素都采用静态的定位方式,DOM元素的位置由元素在HTML 中的位置决定,具体规则是:

  • 块级框从上到下一个接一个地排列,框之间的垂直距离是由框的垂直外边距计算出来。
  • 行内框在一行中水平布置。可以使用水平内边距、边框和外边距调整它们的间距。但是,垂直内边距边框和外边距不影响行内框的高度。

注意:采用该定位方式时,DOM元素声明的top, bottom, left, right 或者 z-index属性无效。


position: relative;

如果对一个元素进行相对定位,它将出现在它所在的位置上。然后,可以通过设置垂直或水平位置,让这个元素“相对于”它的起点进行移动。简言之,这里的“相对”指的就是相对于普通定位而言的。举个例子,如果将 top 设置为 30px,那么框将在普通定位的位置顶部下面30 像素的地方。如果 left 设置为20 像素,那么会在元素左边创建 20 像素的空间,也就是将元素向右移动。

#box_relative {
position: relative;
left: 30px;
top: 20px;
}


position: absolute;

顾名思义,这种定位方式为绝对定位。在这种情况下,HTML会生成绝对定位的元素,相对于 static 定位以外的第一个父元素(也称祖先元素)进行定位,如果不存在这样的父元素,则依据最初的包含块。元素的位置通过top、 left、bottom、right属性进行规定,也可通过z-index进行层次分级。

绝对定位使元素的位置与文档流无关,因此不占据空间。这一点与相对定位不同,相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。举个例子:

#box_absolute {
position: absolute;
left: 30px;
top: 20px;
}

如果设置上面的属性,則该DOM元素会在普通定位的基础位置上相对于祖先元素左上角位置向右移动30px,上下移动20px。


position: fixed;

如果只是单纯地设置了position:fixed属性而没有设置 left | top | right | bottom的话HTML元素的位置是按照默认的样式进行排列的(即按照position:static)。并且,它是以包裹内容的样式展示,这类似于Android中的width:wrap_content; height:wrap_content。
还需要说明一点:position:fixed属性的元素会跟其他元素重叠,后面的在上层。如下面的布局

<div >
<p>No1: fixed 定位</p>
</div> <div >
<p>No2: fixed 定dedefdefefe</p>
</div>

下面再说一下 left | top | right | bottom这几个重要属性。一句话,他们都是相对于浏览器窗口进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。这种定位类似于将 position 设置为 absolute,祖先元素是浏览器窗口本身。举例:

<html>
<head>
<style type="text/css">
p.one{
position:fixed;
top:15px;
left:5px;
border:red 2px solid;
}
p.two{
position:fixed;
top:30px;
right:5px;
border:blue 2px solid;
}
</style>
</head>
<body>
<p class="one">左侧文字</p>
<p class="two">右侧文字</p>
</body>
</html>

这样设置的结果是:
左侧文字相对于浏览器窗口左上角位置向下移动15px,向右移动5px;
右侧文字相对于浏览器窗口右上角位置向下移动30px,向左移动5px;


position: inherit;

规定应该从父元素继承 position 属性的值。即DOM元素的父级元素position属性是什么,它的position属性就是什么,这里不再赘述。

HTML中元素的position属性详解的更多相关文章

  1. DIV-CSS布局中position属性详解

    本文向大家描述一下DIV CSS布局中的position属性的用法,position属性主要有四种属性值,任何元素的默认position的属性值均是static,静态.这节课主要讲讲relative( ...

  2. CorelDRAW中如何复制对象属性详解

    复制对象属性是一种比较特殊.重要的复制方法,它可以方便而快捷地将指定对象中的轮廓笔.轮廓色.填充和文本属性通过复制的方法应用到所选对象中.本教程将详解CorelDRAW中如何复制对象属性. Corel ...

  3. position属性详解

    内容: 1.position属性介绍 2.position属性分类 3.relative相对定位 4.absolute绝对定位 5.relative和absolute联合使用进行定位 6.fixed固 ...

  4. PyQt(Python+Qt)入门:Designer组件属性编辑界面中QWidget类相关属性详解

    本文适用人员:本文比较长,适合不理解Qt Designer部件属性的人员阅读或资料查找. 声明: 1.如果有人认为本文是简单的复制粘贴+翻译而成,敬请读本文最后的后记: 2.本文为老猿Python学习 ...

  5. js中caller和callee属性详解

    一.caller属性返回一个对函数的引用,该函数调用了当前函数.functionName.callerfunctionName 对象是所执行函数的名称.说明对于函数来说,caller 属性只有在函数执 ...

  6. 第八章、Designer组件属性编辑界面中QWidget类相关属性详解

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 声明:本文为老猿Python学习研究精心整理而成,禁止转载. 内容提纲 引言概述QWidget属性列 ...

  7. CSS position overflow float 属性 详解

    position  overflow float 几个属性比较容易混淆,写一段代码详解各自具体情况: position在w3school的可能取值: 值 描述 absolute 生成绝对定位的元素,相 ...

  8. CSS中background属性详解

    CSS背景属性 background css 说明 background-image:url(图片的网址); 背景图 background: url( 图片的网址 ); 背景 background-c ...

  9. Javascript中prototype属性详解 (存)

    Javascript中prototype属性详解   在典型的面向对象的语言中,如java,都存在类(class)的概念,类就是对象的模板,对象就是类的实例.但是在Javascript语言体系中,是不 ...

随机推荐

  1. top 命令常用操作

    1.显示进程参数 top -c 下面操作为top命令后操作 2.按cpu/mem排序 shift + p/m 3.高亮 排序列 按x键 4.高亮 变化进程行 按b键 5.显示cpu每核的运行状态 按1 ...

  2. web前端名人的博客微博Githu

    尤雨溪 vuejs作者 王垠  http://www.yinwang.org/ 20位活跃在Github上的国内技术大牛  1. lifesinger(玉伯)  Github主页:        ht ...

  3. VNPY思维导图架构

    VNPY是使用人数世界第三,国内第一的量化交易框架,封装的接口主要有ctp(期货),wind,xtp(股票)等.内部包含回测.实盘.模拟盘等模块.数据库默认为MongoDB的no-sql数据库,基于p ...

  4. Java操作zookeeper

    Java操作zookeeper总共有三种方式: 1.原生的Java API 2.zkclient 3.curator 第一种实现代码: pom.xml <dependency> <g ...

  5. PHP操作MySQL数据库--PHP的应用

    一.Apache服务器的安装 <1>安装版(计算机相关专业所用软件---百度云链接下载)-直接install<2>非安装版(https://www.apachehaus.com ...

  6. C# FTP上传文件至服务器代码

    C# FTP上传文件至服务器代码 /// <summary> /// 上传文件 /// </summary> /// <param name="fileinfo ...

  7. Building designing UVA - 11039

    先取正的和负的绝对值较小者为开头 .然后交替从正负数中取绝对值最小但比上一个大的. 证明: 1.开头选正负数中绝对值较小的:否则能再多放1个. 2.交替选的时候选最小的符合条件的:如果大的符合,换小的 ...

  8. mandatory and advisory文件锁(File Lock)

    http://blog.csdn.net/elfprincexu/article/details/43564425 文件锁(File Lock)是一种在特定的时间内只允许一个进程进行访问文件的机制,通 ...

  9. 遍历input文本框

    最近写的一个项目中,页面中有很多的“text文本框”和“select下拉框” 校验input框和select框是否非空,如果为空给出提示.反之,隐藏提示内容. html  页面中的input类型有ty ...

  10. Codeforces Beta Round #64D - Professor's task

    题意:两种操作1.加点2.查询点是否在之前给定点的凸包内 题解:set维护动态凸包,分别维护上下凸壳,对y取反就行,判断点是否在凸壳内,把点加进去看要不要删除就好了 //#pragma GCC opt ...