强行画页面的position
说到position这个属性,确实是让刚入前端坑的我等小白瑟瑟发抖,大牛们一边告诉我们position如何万能,一边又让我们在这个坑里滚了一遍又一遍,着实让我们的头皮表面的毛囊扩张的更厉害了。在前端的画页面这个过程中,较常见的就是浮动布局,弹性布局,和定位布局。其中浮动布局float也是让人爱恨两难,它的bug真的是让人咬牙切齿。幸我大前端能人辈出,想出了万能清除法,于是我们悄咪咪的在后面加上一个cl就结束了与bug的斗智斗勇。弹性布局就比较人性化了,现在暂时就不以它为话题展开。那position这块璞玉究竟要怎样去雕琢,我也只能道出其中一星半点的内容,仅供参考。
postion定位一共有四个属性值,常用的三个属性relative(相对),absolute(绝对),fixed(固定)。在物理学中,就有万事万物皆对象的说法。意思是,世界上所有的运动都是相对于某一个参照物而言的。
position:relative也就是相对定位。这个定位就比较霸道了,它是常见的三个属性中唯一一个不脱离文档流的。什么叫不脱离文档流?简而言之,就是它会在你的页面上抢一个座位,即使它不在那坐着,那位置也是为它空出来的,别的元素绝对进不了它的这片领地。当你不给它任何辅助属性(即top,left,bottom,right)时,它就会在它原本的座位上坐着,加上辅助属性它就会相对于之前的位置发生偏移。
HTML代码:

css代码:

谷歌浏览器效果:

加了position:relative,以及它的辅助属性后:
css代码:

谷歌浏览器效果:

可以发现,relative的对象即使离开了自己原来的位置,也依然保留之前的初始位置。重要的是加了辅助属性后,它的位置也没有对其他元素产生影响。这个效果,有的时候可被用作一种hover效果,也可以和margin或者transform一起实现垂直居中效果,用法很多,开开脑洞咯。
position:absolute即绝对定位。其实它叫绝对定位也并不是完全的绝对,也就是说它依然需要一个参考元素。这个属性是个很有依赖性的小孩,它非常不喜欢独自一人去实现效果。因此使用它的时候,它必定会去找同样拥有定位属性的父级元素,当父级元素没有定位时,它就会继续向上找,直到找到一个具有定位的祖先级元素为止。如果祖先元素都没有定位的话,它就会直接相对于浏览器实现定位。当它实现定位的时候,它原有的位置就会被后面的元素取代,因此使用它也可以脱离文档流(即不占页面的位置)。
css代码:

谷歌效果图:
(子元素没有加绝对定位时)

(子元素相对父元素实现绝对定位)

当使用position:absolute时,我们一般会在它需要发生相对位移的祖先级元素上添加position(一般我们会加relative,因为该元素不会破坏文档流),两个定位配合使用。我们在实际运用上,二级菜单的移出效果使用的较多。
position:fixed;这个属性就比较好解释了。它和absolute一样脱离文档流,并且它最显著的效果就是你常常看见的固定在浏览器某一侧,而你无论怎么滑动滚动条,它都会在浏览器某个位置稳如泰山的显示着。如某东侧边导航效果:
注意滚动条!

fixed的使用比较简单易懂,应用也比较多,只要你需要一个元素在你的页面上固定不动,不随滚动条滚动都可以使用fixed属性。
总之,position使用起来还是比较方便的,应用也很多,它还能实现的诸多效果就不一一在本文赘述了。内容不全,如有失误之处,欢迎指正,我一定积极修改的哈~~
强行画页面的position的更多相关文章
- 维护前面的position+主席树 Codeforces Round #406 (Div. 2) E
http://codeforces.com/contest/787/problem/E 题目大意:给你n块,每个块都有一个颜色,定义一个k,表示在区间[l,r]中最多有k中不同的颜色.另k=1,2,3 ...
- 维护后面的position + 离线 + 线段树 bzoj 3585
3585: mex Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 918 Solved: 481[Submit][Status][Discuss] ...
- 维护后面的position sg函数概念,离线+线段 bzoj 3339
3339: Rmq Problem Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 1160 Solved: 596[Submit][Status][ ...
- position:fixed和scroll实现div浮动【示例】
前言 在自己建站的过程中,要实现一个div随滚动条浮动的效果,网上找了些示例不太好用,还是自己动手,丰衣足食,写的不好请大家谅解,毕竟我不是搞前端的,因为自己建站毕竟每一步都必须自己来,这边只是做个记 ...
- ListView addHeaderView 对 position 的影响
1. 在 public View getView(int position, View convertView, ViewGroup parent) 中position 和 是否有headerView ...
- iframe子页面position的fixed
前言: 首先说一说我昨天天的苦逼经历.中午吃饭时一同事跟我说,他做的项目嵌套iframe后,子页面的position设置fixed失效了. 经过反复询问,得知他用了两层iframe,再加上最外的父页面 ...
- js实现图片局部放大效果
图片局部放大效果结合的知识点主要是DOM的操作,以及事件的应用,所以首先要对DOM的操作有一定了解,其次能对事件的应用有一定的累积. 如上图,可以看到,这是放大镜的基本效果,主要分成左右两个部分.左边 ...
- HTML/CSS/JS编码规范
最近整理了一份HTML/CSS/JS编码规范,供大家参考.目录:一.HTML编码规范二.CSS编码规范三.JS编码规范 一.HTML编码规范 1. img标签要写alt属性 根据W3C标准,img标签 ...
- 转载 IO、文件、NIO【草案四】
本章目录: 1.IO类相关内容 2.文件和目录 3.文件高级操作 NIO详解[1]——缓冲区(Buffer)[深入理解,总结自<Java-NIO>]: [*:下边的Buffer又指代抽象 ...
随机推荐
- OpenVPN部署,实现访问云服务器的内网
本教程不描述如何FQ 一.OpenVPN服务端部署 $ yum -y install net-tools lzo lzo-devel openssl-devel pam-devel gcc gcc-c ...
- git命令-切换分支
git一般有很多分支,我们clone到本地的时候一般都是master分支,那么如何切换到其他分支呢? 1. 查看远程分支 $ git branch -a 我在mxnet根目录下运行以上命令: ~/mx ...
- 【GO】【LiteIDE】
https://blog.csdn.net/qq_32034593/article/details/82986311 下载地址:https://www.golangtc.com/download/li ...
- 数据结构|-用C#实现一个简单的链表
我们知道C#中是没有链表的,我们可以自己实现一个 整个单链表能实现的功能有: 功能 方法 返回值 备注 获取链表长度 GetLength() int 返回值是链表长度 清空链表 Clear() voi ...
- selenium如何屏蔽谷歌浏览器弹出的通知
使用selenium访问新浪微博的时候 浏览器总会有个通知,需要点击 类似下面这样 下面使用chromeoptions来修改浏览器的设置 from selenium import webdrive ...
- mysql log and lock
mysql bin log==> /etc/my.cnf==> log_bin=/var/log/mysql/mysql-bin.log==> binlog_do_db=your_d ...
- 括号配对问题-java:Stack
题目描述: 现在,有一行括号序列,请你检查这行括号是否配对. 输入描述: 第一行输入一个数N(0<N<=100),表示有N组测试数据.后面的N行输入多组输入数据,每组输入数据都是一个字符串 ...
- jquary高级和ajax
jquary高级: 1.动画 1.三种方式显示与隐藏元素 1.默认显示和隐藏的方式 1.show([speed],[easing],[fn]):显示 [speed],[easing],[fn] spe ...
- HBuild 连接安卓手机
设备:一部电脑.一部安卓手机.一条数据线 1. 数据线连接电脑和安卓手机: 2. 安卓手机--> 设置 -- > 开发者选项 --> 点进去,找到USB调试并且打开,例: ...
- JCache只缓存部分字段
项目中使用的JCache缓存实体,发现每次缓存时存进去了实体,取出的时候字段有些是空的. 具体环境为 Springboot v2.01 JCache(ehcache 3.4.0) jdk 1.8.0_ ...