CSS中position的几个属性值

position的四种取值 :

    static:static定位就是不定位,出现在哪里就显示在哪里,这是默认取值,只有在你想覆盖以前的定义时才需要显示指定
relative:relative 就是相对元素static定位时的位置进行偏移,如果指定static时top是50象素,那么指定relative并指定top是10象素时,元素实际top就是60象素了。
    absolute:absolute绝对定位,直接指定top、left、right、bottom。有意思的是绝对定位也是“相对”的。它的坐标是相对其容器来说的。容器又是什么呢,容器就是离元素最近的一个定位好的“祖先”,定位好的意思就是其Position是absolute或fixed或relative。如果没有这个容器,那就使用浏览器初始的,也就是body或者html元素。标准是说只需要指定left和right,width可以自动根据容器宽度计算出来,可惜ie不支持。
    fixed:fixed才是真正的绝对定位,其位置永远相对浏览器位置来计算。而且就算用户滚动页面,元素位置也能相对浏览器保持不变,也就是说永远可以看到,这个做一些彩单的时候可以用。可惜的是ie还不支持

relative,absolute,fixed需要指定具体位置
    relative,absolute,fixed如果不指定它的top,left等属性,那么它的position实际上依然是static。使用了relative,absolute,fixed就必须指定具体的位置。

Java代码  
  1. <html >
  2. <head>
  3. <meta http-equiv="content-type" content="text/html" charset="gb2312">
  4. <style> *{margin:0;padding:0} </style>
  5. </head>
  6. <body>
  7. <div style="position:absolute;height:400px;width:400px;background:yellow;left:80px;top:80px;">
  8. <div style="position:absolute;height:200px;width:200px;background:red;left:100px;top:80px;"></div>
  9. <div style="position:relative;height:200px;width:200px;background:blue;left:186px;top:186px;"></div>
  10. <div style="position:fixed;height:140px;width:140px;background:black;left:20px;top:20px;"></div>
  11. <!--黑色(black)的是fixed的,所以它直接以浏览器窗口开始计算left和top的值
  12. 红色(red)和蓝色(blue)分别是absolute和relative他们都是从父对象开始计算left和top的值,
  13. 只是因为有一个是absolute所以产生了重叠效果,没有被另外一个挤走。
  14. -->
  15. </div>
  16. <div style="position:static;height:140px;width:140px;background:brown;left:220px;top:220px;"></div>
  17. <!--紫色(brown)的是static的,所以它的left和top没有起作用,一直跑到最上面去了
  18. 同时我也明白了另外一个道理,因为默认的类型都是static,所以当我们的页面长度等定位的不合理时一个会把一个挤走。
  19. -->
  20. </body>
  21. </html>
<html > <head> <meta http-equiv="content-type" content="text/html" charset="gb2312"> <style> *{margin:0;padding:0} </style> </head> <body> <div style="position:absolute;height:400px;width:400px;background:yellow;left:80px;top:80px;"> <div style="position:absolute;height:200px;width:200px;background:red;left:100px;top:80px;"></div> <div style="position:relative;height:200px;width:200px;background:blue;left:186px;top:186px;"></div> <div style="position:fixed;height:140px;width:140px;background:black;left:20px;top:20px;"></div> <!--黑色(black)的是fixed的,所以它直接以浏览器窗口开始计算left和top的值 红色(red)和蓝色(blue)分别是absolute和relative他们都是从父对象开始计算left和top的值, 只是因为有一个是absolute所以产生了重叠效果,没有被另外一个挤走。 --> </div> <div style="position:static;height:140px;width:140px;background:brown;left:220px;top:220px;"></div> <!--紫色(brown)的是static的,所以它的left和top没有起作用,一直跑到最上面去了 同时我也明白了另外一个道理,因为默认的类型都是static,所以当我们的页面长度等定位的不合理时一个会把一个挤走。 --> </body> </html>

有时候我们需要针对某一个容器的悬浮效果,而不是针对窗口的。这时候通过高度、宽度的计算不但麻烦,而且几乎无法完美实现效果。我一开始也无能为力,后来发现只要把其上一级的样式属性 position设置为relative就可以了。
也就是说,position的属性值的效果,直接受其容器样式中position属性值影响。
例如如下A-B的嵌套结构
<div id="A">
<div id="B">
</div>
</div>

有时候我们需要针对某一个容器的悬浮效果,这时候通过高度、宽度的计算不但麻烦,而且几乎无法完美实现效果。只要把其上一级的样式属性 position设置为relative就可以了。
也就是说,position的属性值的效果,直接受其容器样式中position属性值影响。
例如如下A-B的嵌套结构

Java代码  
  1. <div id="A">
  2. <div id="B">
  3. </div>
  4. </div>
<div id="A"> <div id="B"> </div> </div>


    当A的position为relative时,B的position为absolute才有效。这时候left:0、top:0就不再针对窗口文档,而是针对id为A的这个div了。

<img> 都有width属性,如img.width 值没有px 但style.width 是有px的,必须用parseInt去除,不然会报错,当<img>定义了固定宽度时,可用var image = new Image();
image.src = img.src;得到原图像的原大小

Java代码  
  1. <html >
  2. <head>
  3. <meta http-equiv="content-type" content="text/html" charset="gb2312">
  4. <style> *{margin:0;padding:0} </style>
  5. </head>
  6. <body>
  7. <div id="Canvas" style="background-color:#cccccc;height:266px;width:284px">
  8. <table id="Crop" cellpadding="0" cellspacing="0" border="0" style="border: 1px solid green">
  9. <tr>
  10. <td style="height: 107px" colspan="3" class="Overlay"></td>
  11. </tr>
  12. <tr>
  13. <td style="width: 105px" class="Overlay"></td>
  14. <td style="width: 90px; height: 60px; border-width: 1px; border-style: solid; border-color: white;"></td>
  15. <td style="width: 105px" class="Overlay"></td>
  16. </tr>
  17. <tr>
  18. <td style="height: 107px" colspan="3" class="Overlay"></td>
  19. </tr>
  20. </table>
  21. <div style="position: relative;background-color:green; left:0; top: 0; border: 1px solid red" id="IconContainer">
  22. <img id="icon" src="1.gif" style="border-width: 0px; position: relative; left: 0px; top: 0px">
  23. </div>
  24. <div style="position: relative;background-color:red; left:16; top:16">fdsadsa</div>
  25. </div>
  26. <script type="text/javascript">
  27. <!--
  28. var canva = document.getElementByIdx_x("Canvas");
  29. var   obj = document.getElementByIdx_x("icon");
  30. var image = new Image();
  31. image.src = obj.src;
  32. alert(canva.style.width) //284
  33. alert(image.width)       //28
  34. alert(obj.width);        //28
  35. alert(obj.style.width);  //
  36. obj.style.left = (parseInt(canva.style.width) - image.width )/2 + "px";
  37. obj.style.top = -(parseInt(canva.style.height) + image.height)/2 + "px";
  38. //-->
  39. <!--
  40. 图片居中,这类问题一般都是算两者的width和height,再求left和top,都要求(最好放一起),position设为relative ,相对自己在父元素的原始位置的位移,向右下角移动为正
  41. -->
  42. </script>
  43. </body>
  44. </html>

posted on 2013-03-30 11:26 moonfans 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/moonfans/archive/2013/03/30/2990181.html

CSS中position的几个属性值相关推荐

  1. css中position的4个取值的含义

    css中position的4个取值的含义 一.在我们书写css代码的时候,position取值有4个,分别是: 1. Absolute:绝对定位,是相对于最近的且不是static定位的父元素来定位 2 ...

  2. CSS中position属性值有哪些?

    CSS中position属性值有哪些? 1.position:relative;相对定位 1> 不影响元素本身特性(无论区块元素还是内联元素会保留其原本特性) 2> 不会使元素脱离文档流( ...

  3. 【拼爹坑爹不比爹】深入理解css中position属性及z-index属性

    总结:拼爹坑爹不比爹 1,定位移动:距左上角left+top;(移动后对于移动前:如果值为负数,则直接换成整数:如果值为整数,则直接改变相对方向.) 2,单一父元素不设值,子z-index才奏效:&q ...

  4. 关于CSS中position属性和overflow属性的使用小结

    关于CSS中position属性和overflow属性的使用小结 position属性 用于设置某个元素的位置类型.取值类型可以有:static.relative.absolute.fixed.inh ...

  5. css中position属性(absolute/relative/static/fixed)

    css中position属性(absolute/relative/static/fixed): position:static   无特殊定位,是html元素默认的定位方式,对象遵循正常文档流.top ...

  6. [css] 说下你对css样式的这几个属性值initial、inherit、unset、revert的理解

    [css] 说下你对css样式的这几个属性值initial.inherit.unset.revert的理解 initial(初始).inherit(继承).unset(未设置).revert(还原) ...

  7. Position 的四种属性值

    Position和float这两个元素属性非常重要:今天主要来看一看position在定中的作用. 首先Position有四个属性值,分别是static .fixed. relative .absol ...

  8. CSS中的颜色值与颜色属性

    文章目录 颜色模型 CSS颜色值的类型 颜色名称 rgb[a] rgba的新写法 CSS元素的透明度 hex十六进制值 hsl[a] 颜色值关键字 transparent currentColor C ...

  9. js sort方法根据数组中对象的某一个属性值进行排序(实用方法)

    js sort方法根据数组中对象的某一个属性值进行排序 sort方法接收一个函数作为参数,这里嵌套一层函数用来接收对象属性名,其他部分代码与正常使用sort方法相同. var arr = [{name ...

最新文章

  1. nginx缓存功能的设置
  2. 如何根据keras的fit后返回的history绘制loss acc曲线
  3. 也欢迎您访问我的个人主页http://www.april1985.com(原hesicong.com或april1985.com)
  4. python中strip是什么意思啊_Python中的strip()的理解
  5. ansible基本模块使用
  6. Axis2;wsdl生成客户端和serverJava代码
  7. 【转载】作者苗晓平介绍的飞鸽传书
  8. 下面的一堆文字为了说明一件事情---.NET程序,内存溢出,如何控制.
  9. 2021华为杯建模---总结
  10. Ai极限真的存在吗?
  11. 近期新机一览:手机卖的越来越便宜了
  12. 比较两个对象是否一样的代码
  13. Eventbus 使用方法和原理分析
  14. linux 查看 java opts,linux查看java opts
  15. java垃圾收集方法_Java垃圾收集算法简介
  16. 微信支付查询订单V2 接口
  17. 关闭windows笔记本自带键盘
  18. 【Proteus仿真】【51单片机】LED点阵花样显示设计
  19. Android逐帧动画——让图片动起来
  20. 【CAT魔改】CAT-LOCAL项目的诞生

热门文章

  1. det--求矩阵的行列式
  2. pascal--生成Pascal矩阵
  3. LCS(最长公共子串)系列问题
  4. 【解决方案】requests.exceptions.SSLError: HTTPSConnectionPool
  5. 轧机用弹性阻尼体反力计算_三个典型的阻尼模型及相关理论
  6. Calling handler.OnEndpointsUpdate报错原因
  7. 可迭代对象、迭代器与生成器
  8. 【例3.5】位数问题
  9. Android系统--输入系统(一)必备的Linux知识_inotify和epoll
  10. 暂停更新CSDN博客