css3定位有4种:1、relative(相对定位),偏移参考元素是元素本身,不会使元素脱离文档流;2、absolute(绝对定位),以父辈元素中最近的定位元素为参考坐标;3、fixed(固定定位);4、static(静态定位)。
本教程操作环境:windows7系统、CSS3版、Dell G3电脑。
css定位有四种不同类型,position值分别为:static, relative,absolute,fixed
1、relative(相对定位)
相对定位的偏移参考元素是元素本身,不会使元素脱离文档流。元素的初始位置占据的空间会被保留。相对定位元素常常作为绝对定位元素的父元素。并且定位元素经常与z-index属性进行层次分级
代码实例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> .rel{ width: 200px; height:200px; background: red; position: relative; top:200px; left: 200px; } </style> </head> <body> <p class="rel">相对定位</p> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> </body> </html>
效果图:
尽管rel元素产生了偏移,但是文字并没有填补它的原来的位置,可以看出相对定位元素没有脱离文档流,原来的位置依然会被保留。
2、absolute(绝对定位)
绝对定位元素以父辈元素中最近的定位元素为参考坐标,如果绝对定位元素的父辈元素中没有采用定位的,那么此绝对定位元素的参考对象是html,元素会脱离文档流。就好像文档流中被删除了一样。并且定位元素经常与z-index属性进行层次分级
代码实例:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> .abs{ width: 200px; height:200px; background: red; position: absolute; top: 200px; left: 200px; } </style> </head> <body> <div>绝对定位</div> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> </body> </html>
效果图:
在此辟谣一下哈!如果绝对定位元素的父辈元素中没有采用定位的,那么此绝对定位元素的参考对象是谁呢,有的人说是body,有的人会说是document,其实都不是,看了MDN上的介绍,以initial containing block为参考,它的尺寸是和视口是一致的,但不是由Viewport所产生的,而是由根元素100db36a723c770d327fc0aef2ce13b1所产生的。
代码实例:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style> * { margin:0px; padding:0px; } body { height:1500px; } div { width:100px; height:100px; background:green; position:absolute; bottom:0px; } </style> </head> <body> <div></div> </body> </html>
实例效果图:
如果参考对象是body或者document的话,p元素肯定要位于页面的最底部,注意到这里有滚动条,元素只是位于视口的最底部。
3、fixed (固定定位)
位移的参考坐标是可视窗口,使用fixed的元素脱离文档流。并且定位元素经常与z-index属性进行层次分级
实例代码:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> .fix{ width:200px; height: 200px; background: red; position: fixed; top: 200px; left: 200px; } </style> </head> <body> <div>固定定位</div> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> 阿什顿发斯蒂芬阿斯蒂芬阿斯蒂芬阿斯蒂芬</br> </body> </html>
实例效果图:
fixed固定定位和absolute绝对定位比较类似,它们都能够让元素产生位移上面演示了固定定位;如果到目前为止还没有看到与绝对定位的区别,那么我们可以在文中多加些文字是浏览器产生滚动条,拖动滚动条就可以看到两个定位方式的区别,固定定位的元素如其名一样,能够固定在某个位置。而绝对定位就会随着滚动条滚动而移动位置。
4、static (静态定位)
默认值,元素框正常生成的,top left bottom right这几个偏移属性不会影响其静态定位的正常显示
(学习视频分享:css视频教程)
以上是css3定位有几种的详细内容。更多信息请关注PHP中文网其他相关文章!