zoukankan      html  css  js  c++  java
  • 快捷位置和尺寸

    一、DOM语句提供给我们计算后样式,但是还是觉得不太方便,因为通过计算后的样式得到的属性值都是字符串格式,不能直接参与程序计算。

    所以DOM又提供了一些API:得到的是number类型的数据,是可以直接进行计算。

    offsetLeftoffsetTop

    offsetWidthoffsetHeight

    clientWidthclientHeight

    每一个元素添加都有一个属性,叫做offsetParent,表示自己的“偏移的参考盒子”。offsetParent就是自己祖先元素中,离自己最近的已经定位的元素。如果自己的祖先元素中,没有任何定位,那么offsetParent对象就是body

    var op = document.getElementsByTagName('p')[0];
    alert(op.offsetLeft); //获取元素左侧的距离
    alert(op.offsetParent.className); //获取元素的参考盒子,默认是body

    IE67offsetParent对象是谁,和高级浏览器不一样。

    情形1:自己没有定位属性,那么直接的offsetParent对象就是自己的祖先元素中,离自己最近的有width或有height属性的元素。如果父亲都没有宽高和定位,就以body

    offsetWidthoffsetHeight属性

    自己盒子的属性,跟别人无关。

    一个盒子的offsetWidth值就是:width+左右padding+左右border的宽度

    var oDiv = document.getElementsByTagName('div')[0];
    alert(oDiv.offsetWidth);  //420,width+padding+border的值
    alert(oDiv.offsetHeight); //320,height+padding+border的值

    clientWidthclientHeight属性

    全线兼容,就IE6有一点小问题。

    var oDiv = document.getElementsByTagName('div')[0];
    alert(oDiv.clientWidth);  //400,width+padding的值
    alert(oDiv.clientHeight); //300,height+padding的值

    clientWidthclientHeight就是width+padding的值,也就是说,比offsetWidth少算了border

    如果盒子没有宽度,那么所有的浏览器都把px值当做clientWidth,而不是100%

    如果盒子没有高度,用文字和padding撑开,所有的浏览器都把px当做offsetHeight

    但是IE6/7/8clientWidthclientHeight不能被内容撑开,值为0

  • 相关阅读:
    PHP导出数据到淘宝助手CSV的方法分享
    创业日志:壹百款购物客户中心正式上线啦!
    THINKPHP+JS缩放图片式截图的实现
    入园3年来的感慨
    CentOS 5 全攻略 一步一步配置详解
    创业日记:进入电子商务领域,需未雨绸缪,更要步步谨慎
    IT商悟读书笔记
    震惊的事情一波接一波的,找自己的FREE
    创业日记:微团队,技术应用思考
    博客园我回来了!
  • 原文地址:https://www.cnblogs.com/smivico/p/7798128.html
Copyright © 2011-2022 走看看