一、定位

1、常见的定位布局有float布局,position布局,flex(弹性盒子)布局。
position布局,定位布局。

2、定位布局:定位指的是指定一个元素在网页上的位置;

3、一共有5种定位方式,也就是说position属性主要有五个值:

(1)static

(2)relative

(3)fixed

(4)absolute

(5)sticky (最后一个sticky是2017年浏览器才支持的。)

(这些值的存在是用来进行元素的位置的定义,然后借助**top**,**bottom**,**left**,**right**四个属性值,对元素的位置进行更精确的定位。)

二、static 静态定位

1、static 是position属性的默认值,如果省略position属性,浏览器就认为是static定位;浏览器会按照源码的顺序,决定每个元素的位置,这称为"正常文本流"(normal flow)。每个块级元素占据自己的区块(block),元素与元素之间不产生重叠。

2、static也称为静态定位,实际上是不做定位。

注意:static定位所导致的元素位置,是浏览器自主决定的,所以top、bottom、left、right这四个属性值无效。

三、fixed 固定定位

1、fixed 表示,相对于视口(viewport,浏览器窗口|可视窗口)进行偏移,即定位基点是浏览器的可视窗口.这会导致元素的位置不会随页面滚动而变化,好像固定在网页上一样。

2、它要搭配top、bottom、left、right这四个属性一起使用,表示元素的初始位置是基于viewport计算的,否则初始位置就是元素的默认位置。

3、元素设置使用fixed定位之后,在网页的普通文档流中不占空间,元素的层级要高于普通文档流。

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title></head>
<body><style>.box{width:400px;height: 300px;background: red;border: 2px solid black;position: fixed;right:0;bottom:0;}.child{height:200px;border: 2px solid blue;margin:10px;}</style><div class="box"></div><div class="child">1</div><div class="child">2</div><div class="child">3</div><div class="child">4</div>
</body>
</html>

四、relative 相对定位

1、relative表示,相对于默认位置(即static时的位置)进行偏移,即定位的基点是元素的默认位置。

2、它必须搭配top、bottom、left、right这四个属性一起使用,用来指定偏移的方向和距离。

3、使用relative定位后,元素在网页的普通文档流中依然占空间;元素层级比普通文档流更高。

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title></head>
<body><style>.fbox{border: 3px solid black;}.fbox>.box{width:340px;height: 260px;border: 6px solid red;display: inline-block;}.fbox>.box2{position: relative;left:170px;top:130px;background: yellow;}</style><div class="fbox"><div class="box">1</div><div class="box box2">2</div><div class="box box3">3</div> </div>
</body>
</html>

五、absolute 绝对定位

1、absolute相对于上级元素(一般是父元素)进行偏移,即定位基点是父元素。

2、它有一个重要的限制条件:定为基点(一般是父元素)不能是static定位,否则定位基点就会变成整个网页的根元素html。另外absolute定位必须搭配

3、top、bottom、left、right这四个属性一起使用。

4、小结:absolute是相对于离自己最近的做过非static定位的父元素。absolute定位的元素会被‘’正常页面流“忽略,即在正常页面流中不占空间,周边元素不受影响。

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>body>div{height:600px;}.fbox{margin: 100px;background:red;padding: 100px;position: relative;}.fbox>.box{width:440px;height: 500px;background:pink;padding:80px;position: relative;border:3px solid black;display:inline-block;vertical-align: top;}.box>.item{width:200px;height: 200px;display:inline-block;background:yellow;border:3px solid #fff;}.box>.child2{width:250px;height: 250px;background:yellowgreen;position: absolute;left:150px;top:150px;}.fbox1{background:green;}.box>.child1{position: absolute;left: 0px;top:0px;z-index: 4;}.box>.child3{background: grey;z-index: -3;position: relative;}</style>
</head>
<body><div class="fbox"><div class="box"><div class="item child1">1</div><div class="item child2">2</div><div class="item child3">3</div></div><div class="box"></div></div><div class="fbox1"></div>
</body>
</html>

六、z-index用来调整元素的层级高低。

ps:1、普通文档流的元素默认层级为0,使用浮动和position定位(除static)之后的元素,默认层级高于普通级(高半级,介于0~1之间),可以使用z-index设置使用过position定位的元素和层级高低,数值越大,层级越高,若数值小于0则比普通元素的层级更低。

2、普通元素设置z-index无效。

七、sticky(粘性定位)

1、sticky跟前面四个属性都不一样,它会产生一些动态效果,很像relative和fixed的结合:一些时候是relative定位(定位基点是自身默认),另一些时候自动变成fixed定位(定位基点是视口);因此能够形成“动态固定”效果。

2、sticky生效的前提,必须搭配:top,bottom,left,right

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>header{height: 300px;border:3px solid black;position: relative;z-index: 99;background:#ccc;}.search{width:500px;height: 80px;background:red; margin-top:120px;margin-left: 400px;position: -webkit-sticky;position: sticky;top:20px;z-index: 99;}.container{height: 1300px;background:orange;border: 4px solid black;}</style>
</head>
<body><div class="search"></div><div class="container"><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3></div>
</body>
</html>

HTML基础知识(五)——position定位相关推荐

  1. git 分支复制_Git基础知识(五)

    Git基础知识(五) 分支 都说Git的分支是它的必杀技特性,由于没有接触过太多的版本管理工具,就使用过的SVN来说,两者真的差别巨大.SVN创建一个分支,需要将内容复制一遍!这个时间真的是非常的漫长 ...

  2. JavaSE基础知识(五)--面向对象代码实现初步(实现一个简单的类类型代码)

    Java SE 是什么,包括哪些内容(五)? 本文内容参考自Java8标准 一.面向对象(代码实现): 首先,在这里我需要说明一个根本性的问题:实际上,面向对象编程包括了两部分,一个是你的编程思想,一 ...

  3. C# 基础知识 (五).变量类型和字符串处理

            这篇文章是阅读<C#入门经典(Beginning C#)>书籍里面的内容,作者Karli Watson.主要包括自己缺乏的一些C#基础知识和在线笔记使用,文章主要包括C#简 ...

  4. Java基础知识(五) 字符串与数组

    Java基础知识 字符串与数组 1. 字符串的创建与存储的机制是什么 2. "==".equals和hashCode有什么区别 3. String.StringBuffer.Str ...

  5. CSS基础「五」定位

    本篇文章为 CSS 基础系列笔记第五篇,参考 黑马程序员pink老师前端入门教程 其他CSS基础相关文章: CSS基础「一」基础选择器 / 字体属性 / 文本属性 / 三种样式表 CSS基础「二」复合 ...

  6. 卷积神经网络基础知识五(mobilenet)

    一.简单介绍 1.1 绪论 论文下载地址: MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applicat ...

  7. GNSS的基础知识 (GPS定位原理和组成)(1)

    在这里读了很多关于GNSS的贴子.里面的内容有的是直接翻译外文的文献,也有完全是自己写的. 我准备从今天开始不定期的更新一些关于GNSS 的知识.一是为了分享和探讨,二是记录一下自认为有用的东西,整理 ...

  8. JavaSE基础知识(五)--面向对象思想概述

    Java SE 是什么,包括哪些内容(五)? 本文内容参考自Java8标准 一.面向对象: 1.回顾前面的博文("了解这个开头,更有利于了解对象以及面向对象的思想") 首先我们知道 ...

  9. java基础知识五、六、七、八

    第五章 在较大的数之前先增加较小数是减小误差的一种方法. 第六章 方法签名(Method Signature)指方法名称.参数类型和参数数量.java编译器根据方法签名决定使用哪个方法. 调用方法时, ...

  10. Matlab基础知识五

    第五节 1.subplot() plot() 绘制二维图像,一般默认格式为plot(x,y),也可以用带属性的格式,增加线条的属性(标记符号.线型.颜色.粗细等) subplot(m,n,1); 改变 ...

最新文章

  1. Java中的多线程编程(超详细总结)
  2. helper.js(20170612)
  3. 脑与认知科学1 脑的基本结构下
  4. springboot 访问html_Spring Boot中使用Spring Security进行安全控制
  5. andriod开发环境配置
  6. mysql 根据地图 坐标 查询 周边景区、酒店
  7. oracle EBS grant 您不具有执行当前操作的足够权限。请与您的系统管理员联系。...
  8. 做好7步 迅速成为行业专家
  9. 【hibernate框架】各种问题用注解Annotation和mxl配置的解决
  10. 【leetcode】714. Best Time to Buy and Sell Stock with Transaction Fee
  11. MySQL字段类型详解
  12. 51nod 1428 活动安排问题 (贪心+优先队列)
  13. Android 多层视差头部背景的实现
  14. 32. 如果确实需要删除元素,则需要在remove这一类算法之后调用erase
  15. 挖地雷_1996年分区联赛提高组之三_ssl1071_dfs
  16. python遗传算法解简单整数规划与原理探究
  17. SecureCRT Win免安装版本,简单好用
  18. 科目二考试全流程详解
  19. 绑定美版office365密钥_美版Microsoft/微软Office 365个人版怎么激活?
  20. python100day - day24 - DataAnalysis

热门文章

  1. Fine-Tuning微调原理
  2. 嵌入式编程和PC编程的区别
  3. 我的Android学习速记 (2) 给View加个阴影
  4. 单芯片(C转PD3.0加HDMI2.0加USB3.2-10G)PS188-QFN100之初识
  5. [原创]网易手机壁纸小偷VBS源码
  6. Dell一体机升级SSD
  7. 一步到位安装R环境(R,Rattle,RStudio)
  8. linux编辑器java_Java编辑器 BlueJ For Linux V3.1.6 免费版 下载-脚本之家
  9. 数字电子技术(三)门电路
  10. Windows/Linux服务器监控软件推荐