CSS笔记:浅谈position属性
来源:互联网 发布:淘宝无门槛优惠券 编辑:程序博客网 时间:2024/06/06 12:44
之前并没有在意position的使用,在此专门花时间总结了一下它的用法。
何谓position
position属性定义建立元素布局所用的定位机制。值得一提的是,任何元素都可以定位,不过绝对或固定元素能生成一个块级框,而不论该元素本身是什么类型。
目前,所有主流浏览器都支持position属性,以下是浏览器对position属性兼容性的概况图:
注:任何版本的IE浏览器(包括IE8)都不支持属性值"inherit“。
position的基本概况
首先,除去"inherit"属性(规定应该从父元素继承position值),position共有四个属性值:static、relative、absolute、fixed
static属性值
position的默认属性值,即对元素布局不做任何的修饰,元素在正常流中显示(忽略top、bottom、left、right或者z-index声明)。
relative属性值
进行相对定位,相对于该元素的包含块(用在这里不够贴切,或者说relative用包含块来解释未免有点多次一举,所以这一句可以忽略对于relative)进行定位,即相对于其正常位置进行定位。元素的位置通过"top"、”bottom“、"left"、"right"来进行定位。
注:包含块,浅显来讲,我们可以打个比方,假设该元素是棋子,那么包含块就是该棋子的棋盘,棋子的定位就是相对棋盘的定位,关键是棋盘在哪?哪个棋盘是属于我的?我要怎样区分判断出棋盘?总的来说,落子很简单,关键我棋盘在哪。(关于包含块的详细用法规范,可以看下我收藏的一篇文章:http://blog.csdn.net/yaodebian/article/details/73826809)
absolute属性值
相对于static定位以外的第一个父元素进行定位,就是说,向上搜寻第一个position属性值不为"static"的父元素,并以该父元素构建的包含块为参照物进行定位,即相对该父元素进行定位,该父元素就是该元素的包含块。元素的位置通过"top"、”bottom“、"left"、"right"来进行定位。注:有一个特例,就是说我没有找到这样一个父元素,这种情况下,该元素的包含块就是根元素,这个我们等会在详细解释。
Fixed属性值
相对于浏览器窗口定位,也就是始终以窗口的左上角为参照进行定位,即不会因为滚动条的移动而移动,始终相对窗口定位。元素的位置通过”top“、"bottom"、"left"、"right"来进行定位。
position的应用实例
1.relative属性值应用实例
首先,值得一提的是,一个设置position值为“relative”的元素其所占有的空间是不会改变的。
怎么说呢,我们简单地给出一个小测试:(代码如下)
<!DOCTYPE html><html><head><title></title><style type="text/css"> *{ margin:0; padding:0; }.div1{width:100px;height:100px;position:relative;background:blue;left:80px;top:80px;}.div2{width:100px;height:100px;background:red;}</style></head><body> <div class="div1"></div> <div class="div2"></div> </body></html>结果如下:
<!DOCTYPE html><html><head><title></title><style type="text/css"> *{ margin:0; padding:0; }.div1{width:100px;height:100px;position:relative;background:blue;left:80px;top:80px;}.div2{width:100px;height:100px;background:red;float:left;}</style></head><body> <div class="div1">div1</div> <div class="div2">div2</div> </body></html>结果和上面没有设置浮动时一样的,这就要注意一下了,因为浮动元素一般会覆盖掉非浮动元素。
<!DOCTYPE html><html><head><title>position-absolute相对点</title><style type="text/css"> *{ margin:0; padding:0; } .main{ width:1000px; height:200px; background:yellow; }.top{width:1000px;height:500px;background:blue;position:relative;}.inside{width:400px;height:100px;background:red;position:absolute;left:100px;top:100px;}</style></head><body><div class="main"></div><div class="top"><div class="inside"></div></div></body></html>结果如下:
<!DOCTYPE html><html><head><title>position-absolute相对点</title><style type="text/css"> *{ margin:0; padding:0; } .main{ width:1000px; height:200px; background:yellow; }.top{width:1000px;height:500px;background:blue;}.inside{width:400px;height:100px;background:red;position:absolute;left:100px;top:100px;}</style></head><body><div class="main"></div><div class="top"><div class="inside"></div></div></body></html>结果如图:
<!DOCTYPE html><html><head><title>position-absolute相对点</title><style type="text/css"> *{ margin:0; padding:0; } .main{ width:1000px; height:200px; background:yellow; }.top{width:1000px;height:500px;background:blue;}.inside{width:400px;height:100px;background:red;position:absolute;left:100px;top:100px; top:50%;left:50%;margin:-50px 0 0 -200px;}</style></head><body><div class="main">main</div><div class="top"> top<div class="inside">inside</div></div></body></html>
结果是,元素"inside"在初始化窗口居中,当我们将窗口进行拉伸,该元素位置会变化,但始终位于该窗口中间。
<!DOCTYPE html><html><head><title></title><style type="text/css">*{margin:10px;padding:10px;}#main{width:1000px;height:500px;background:blue;position:relative;}#con{width:50px;height:50px;background:red;position:fixed;top:100px;left:100px;}</style></head><body> <div id="main"> <div id="con"></div> </div><!-- <script type="text/javascript" src="fixed.js"></script> --></body></html>结果如图:
但无论你怎样移动滚动条,其相对窗口左上角的位置一直都不变。
这里总结的都是position基础概念用法规范,但其用法绝不仅如此,HTML5、css虽看起来简单易懂,但其门路决不仅如此,灵活运用它们将开启一个不一样的世界,这就是我目前所认识到的,绝不仅限于学习语法,还要灵活运用这些简单的语法达到不一样的效果。
- CSS笔记:浅谈position属性
- 浅谈CSS的position属性
- CSS之position浅谈
- CSS position 属性
- CSS background-position 属性
- CSS定位属性Position
- css 之 position属性
- CSS position属性
- css position属性
- css中的position属性
- CSS position 属性
- CSS的position属性
- CSS position 属性
- CSS position 属性用法
- CSS之Position属性
- CSS background-position 属性
- CSS中的Position属性
- CSS的position属性
- jmeter个人学习之路--元件的作用域与执行顺序
- [LeetCode]561.Array Partition I
- SSM 项目搭建 (IDEA)
- 神经网络入门之隐藏层设计
- 萌新PHP开发之旅(适合学艺术的前端开发观看,基础一定是负数才行)
- CSS笔记:浅谈position属性
- STlinkSWD模式连线方式
- Qt图形视图框架(二) 常见的QtGraphicsItem
- 不能在中括号中使用的寄存器
- 练习1-16 修改打印最长文本行的程序的主程序main,使之可以打印任意长度的输入行的长度,并尽可能多地打印文本。
- js实现返回顶部功能的解决方案
- 解决 No projects are available for deployment to this server!
- jscript 模块化的理解
- Ext4 Design