CSS魔法堂:Position定位详解
一、Position各属性值详解
1. static :默认值,元素将按照正常文档流规则排列。
2. relative :相对定位,元素仍然处于正常文档流当中,但可以通过left、top、right和bottom的CSS规则来改变元素的位置。
注意点:[a]. 元素原来位置将保留,不被其他元素所占据; [b]. 当使用left,top改变元素位置时,元素将以原来位置的border外边框的左上角作为参考点 ; [c]. 当使用right、top时改变元素位置时,元素将以原来位置的border外边框的右上角作为参考点 ; [d]. 当使用left、bottom时改变元素位置时,元素将以原来位置的border外边框的左下角作为参考点 ; [e]. 当使用right、bottom时改变元素位置时,元素将以原来位置的border外边框的右下角作为参考点 ;
3. absolute :绝对定位,元素脱离正常文档流,可通过left、top、right和bottom的CSS规则来改变元素的位置
注意点:[a]. 元素将不再占据原有位置; 此处定义 变量X,以下内容将使用X代替参考点 条件:当元素的offsetParent为body而且body没有进行CSS定位,则X=页面; 其他情况,X=offsetParent的padding外边框。 [b]. 当使用left,top改变元素位置时,元素将以X的左上角或作为参考点 ; [c]. 当使用right、top时改变元素位置时,元素将以X的右上角作为参考点 ; [d]. 当使用left、bottom时改变元素位置时,元素将以X的左下角作为参考点 ; [e]. 当使用right、bottom时改变元素位置时,元素将以X的右下角作为参考点 ;
4. fixed :固定定位,元素脱离正常文档流,可通过left、top、right和bottom的CSS规则来改变元素的位置
注意点:[a]. 元素将不再占据原有位置; [b]. 以浏览器的可视区域的四角作为参考点。 [c]. IE5.5~6不支持该属性值。 可使用js来修复,对于拖动滚动条元素闪铄的bug需要通过下列的CSS来处理。
* html{
background-image:url(about:blank);
background-attachment:fixed;
}
或
body{
_background-image:url(about:blank);
_background-attachment:fixed;
}
二、 何谓文档流
将窗体自上而下分成一行行,并在每一行中按从左到右的顺序排放元素,即为文档流。 有三种情况将使得元素脱离文档流,分别是浮动(float left or right)、绝对定位(position:absolute)、固定定位(position:fixed)。
三、何谓CSS定位
CSS定位,就是元素的position不为static。而该元素将成为其亲子元素的offsetParent,也有机会成为其孙元素的offsetParent。
四、总结
CSS定位貌似简单,但又容易忽视细节部分,本文尽量记录研究所得,希望大家一起来将其充实。
五、参考
http://www.cnblogs.com/StormSpirit/archive/2012/10/15/2715316.html
- 探秘Tomcat——启动篇
- ai量化系统架构的思考
- 探秘Tomcat——连接器和容器的优雅启动
- 谈谈分布式事务之三: System.Transactions事务详解[上篇]
- WCF技术剖析之十九:深度剖析消息编码(Encoding)实现(上篇)
- 谈谈分布式事务之二:基于DTC的分布式事务管理模型[下篇]
- 孙明俊:人工智能之算力演进
- 探秘Tomcat——一个简易的Servlet容器
- 2017年与机器学习相关的10大Python开源库
- 控制并发访问的三道屏障: WCF限流(Throttling)体系探秘[上篇]
- 探秘Tomcat——从一个简陋的Web服务器开始
- EnterLib PIAB又一个BUG?[续]——这是一个致命的BUG
- Google工程师:谷歌翻译在几个月内效果明显提升的秘诀
- 回调与并发: 通过实例剖析WCF基于ConcurrencyMode.Reentrant模式下的并发控制机制
- HTML 教程
- HTML 简介
- html div 标签介绍
- html span 标签介绍
- html a 超链接标签
- HTML Br换行标签介绍
- HTML P段落标签介绍
- HTML br与p标签区别
- Html H 标题标签
- html px em pt长度单位
- HTML form 标签
- HTML radio 单选框
- HTML B 加粗标签
- HTML strong加粗粗体标签
- HTML em 强调标签
- HTML i 斜体标签
- HTML u下划线标签
- HTML s 删除线标签
- Html img 图片标签
- Html上标注sup与下标注sub标签
- HTML nobr 禁止换行标签
- HTML hr 水平线标签
- HTML label 标签
- HTML input 标签
- HTML textarea 标签
- HTML select下拉列表标签
- HTML checkbox 多选框
- HTML font color 标签
- HTML iframe 框架标签
- HTML Table 表格
- HTML dl dt dd 标签
- HTML ol li有序列表标签
- HTML ul li 无序列表标签
- HTML 注释
- CSS 教程
- CSS 简介
- CSS 语法
- CSS Id 和 Class选择器
- CSS 样式的创建
- CSS background 背景介绍
- CSS 文本样式
- CSS font 字体
- CSS A 链接
- CSS ul ol列表样式
- CSS TABLE 样式
- CSS 框模型
- CSS border 边框
- CSS Outlines 轮廓
- CSS 外边距 Margin
- CSS Padding 内边距
- CSS 分组和嵌套选择器
- CSS 尺寸 (Dimension)
- CSS Display 属性
- CSS Position 定位
- CSS Float 浮动
- CSS 水平对齐(Horizontal Align)
- CSS 组合选择符
- CSS 伪类
- CSS 伪元素
- CSS 导航栏
- CSS 下拉菜单
- CSS 图片廊
- CSS 图像透明/不透明
- CSS sprite 图像拼合技术
- CSS 媒体类型
- CSS 属性选择器
- CSS 实例
- 使用tensorflow进行音乐类型的分类
- Mac安装brew 及安装报错的解决办法【已解决】
- 为什么要停止过度使用置换重要性来寻找特征
- 5个可以帮助pandas进行数据预处理的可视化图表
- 聊聊dubbo-go的leastActiveLoadBalance
- 聊聊dubbo-go的randomLoadBalance
- 聊聊dubbo-go的roundRobinLoadBalance
- PowerBI 不同日期区间的活动逐日对比分析
- flask SQLAlchemy查询数据库最近30天,一个月,一周,12小时或之前的数据
- TypeScript是什么,为什么要使用它?
- Python 基础(十):模块与包
- 谷歌浏览器一些https打不开点击高级不行的解决办法
- CV入门赛最全思路&上分技巧汇总!
- VBA专题10-5:使用VBA操控Excel界面之隐藏/取消隐藏及最小化功能区
- 从一道面试题说起:GET 请求能传图片吗?