宽度和高度

对于编写css代码时,宽度和高度就是width和height

但是在JavaScript中,还有其他的宽度和高度,比如offsetWidth,offsetHeight,clientX,clientY,clientWidth,clientHieght,pageX,pageY,scrollWidth,scrollHeight等等这些,用的地方很多,但很少明白它们之间的区别,以及它们主要用在什么地方。

下面我将详细地说明它们具体是做什么的,以及它们之间的区别。

width:设置元素的宽度,定义元素内容区域的宽度。另外,width设置100%和auto是有区别的。

设置为100%,是不包含margin-left和margin-right属性值的;

设置为auto,是包含margin-left和margin-right属性值的。width:auto;总是占据整行的。

height:设置元素的高度,定义元素内容区域的高度。另外,增加内边距,边框,外边距不会影响内容区域的尺寸,但会影响元素框的尺寸。

offsetWidth:(width+padding+border)对象整体的实际宽度,包含滚动条,会随对象的显示大小而变化

offsetHeight:(height+padding+border)当前对象的实际高度

clientWidth:对象的内容可视区域,不包括滚动条会随着对象的显示大小而变化

clientHeight:对象可见内容的高度,不包含滚动条,不包含边框

scrollWidth:对象实际内容的宽度,不包含边线,会随着对象的内容区域超过可视区后而变大

scrollHeight:对象的滚动宽度,不包含滚动条,不包含边框

IE6.0

clientWidth = width + padding

clientHeight = height +padding

offsetWidth = width + padding + border

offsetHeight = height + padding + border

情况1:

元素无内容或内容不超过可视区,滚动不出现或不可用的情况下,

scrollWidth=clientWidth,两者皆为内容可视区的宽度。

offsetWidth为元素的实际宽度。

情况2:

元素的内容超过可视区域,滚动条出现和可用的情况下。

scrollWidth>clientWidth,scrollWidth为实际内容的宽度,clientWidth是内容可视区域的宽度,offsetWidth是元素的实际宽度。

pageX:页面坐标的位置,属性表示鼠标光标在页面中的位置,因此坐标是从页面本身而非视口的左边和定边计算的。

pageY:页面的垂直坐标位置

在页面没有滚动的情况下,pageX和pageY的值与clientX和clientY的值相等。

IE8及之前的版本不支持事件对象上的页面坐标,不过使用客户区坐标和滚动信息可以计算出来。这时候需要用到document.body(混杂模式)和document.documentElement(标准模式)的scrollLeft和scrollTop属性。

clientX:事件属性返回当前事件被触发时鼠标指针指向对于浏览器页面的水平坐标,它们的值表示事件发生时鼠标指针

clientY:事件属性返回当前事件被触发时鼠标指针指向对于浏览器页面的垂直坐标

javascript 宽度和高度的更多相关文章

  1. JavaScript获取屏幕和页面的宽度和高度

    JavaScript获取屏幕和页面的宽度和高度 1.设计源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN ...

  2. Javascript获取图片原始宽度和高度的方法详解

    前言 网上关于利用Javascript获取图片原始宽度和高度的方法有很多,本文将再次给大家谈谈这个问题,或许会对一些人能有所帮助. 方法详解 页面中的img元素,想要获取它的原始尺寸,以宽度为例,可能 ...

  3. jquery动态改变div宽度和高度

    效果体验:http://keleyi.com/keleyi/phtml/jquery/23.htm 完整代码: <!DOCTYPE html PUBLIC "-//W3C//DTD X ...

  4. jquery尺寸:宽度与高度

    width() 方法设置或返回元素的宽度(不包括内边距.边框或外边距). height() 方法设置或返回元素的高度(不包括内边距.边框或外边距). innerWidth() 方法返回元素的宽度(包括 ...

  5. 基于jQuery自适应宽度跟高度可自定义焦点图

    基于jQuery自适应宽度跟高度可自定义焦点图.这是一款带左右箭头,缩略小图切换的jQuery相册代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <section cl ...

  6. 设定网页最小最大宽度和高度(兼容IE6)

    http://www.cnblogs.com/double-bin/archive/2011/12/19/2293093.html /* 最小寬度 */ .min_width{min-width:30 ...

  7. php获取设备的宽度和高度

    php获取设备的宽度和高度 如果前台没有传输当前请求的宽度和高度,我们有时候需要用php借助javascript获取屏幕的宽和高,以控制现实的样式. 代码如下: <?php /* * 获取设备宽 ...

  8. JS获取图片的原始宽度和高度

    页面中的img元素,想要获取它的原始尺寸,以宽度为例,可能首先想到的是元素的innerWidth属性,或者jQuery中的width()方法.如下: <img id="img" ...

  9. 如何改变span元素的宽度与高度

    内联元素:也称为行内元素,当多个行内元素连续排列时,他们会显示在一行里面. 内联元素的特性:本身是无法设置宽度和高度属性的,但是可以通过CSS样式来控制,达到我们想要的宽度和高度. span举例1: ...

随机推荐

  1. tomcat标准化安装

    操作系统说明: 操作系统 版本 linux red hat release 6.4 关键软件包说明: 软件包 版本 目录 运行用户 jdk-7u79-linux-x64.gz 1.7 /usr/loc ...

  2. Laravel(PHP)使用Swagger生成API文档不完全指南 - 基本概念和环境搭建 - 简书

    在PHPer中,很多人听说过Swagger,部分人知道Swagger是用来做API文档的,然而只有少数人真正知道怎么正确使用Swagger,因为PHP界和Swagger相关的资料实在是太少了.所以鄙人 ...

  3. spring和mybatis整合遇到org.springframework.beans.factory.BeanDefinitionStoreException

    今天对spring和mybatis整合进行练习,通过MapperScannerConfigurer进行mapper扫描 但是在进行单元测试的时候,死活就是报错,具体报错如下: org.springfr ...

  4. 当移动数据分析需求遇到Quick BI

    我叫洞幺,是一名大型婚恋网站“我在这等你”的资深老员工,虽然在公司五六年,还在一线搬砖.“我在这等你”成立15年,目前积累注册用户高达2亿多,在我们网站成功牵手的用户达2千多万.目前我们的公司在CEO ...

  5. Windows Phpstrom svn 配置

    网上百度找到的解决方案行不通,就是下图两项都不选中.临时是可以的,但是到了第二天,又不行了. 以下是自己瞎弄的,居然可以了. 第一步:安装TortoiseSVN 1.8.* ,注意安装选项要选上com ...

  6. 2017年浙工大迎新赛热身赛 L cayun日常之赏月【易错特判】

    题目描述(https://www.nowcoder.com/acm/contest/51#question) 在cayun星球月亮大小都有一个规律,月亮为每30天一个周期,在这30天的周期里,月亮的大 ...

  7. 项目ITP(七) javaWeb 整合 Quartz 实现动态调度 而且 持久化

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u010378410/article/details/36255511 项目ITP(七) javaWe ...

  8. 在vue项目中同时使用element-ui和mint-ui,的时候,.babelrc配置文件怎么写

    我们安装vue组件库的时候,考虑到大小问题,需要根据需要仅引入部分组件 借助 babel-plugin-component,我们可以只引入需要的组件,以达到减小项目体积的目的. 但是在配置  .bab ...

  9. iOS 自定义Tabbar实现push动画隐藏效果

    http://wonderffee.github.io/blog/2013/08/07/hide-custom-tab-bar-with-animation-when-push/ 在之前的一篇文章(链 ...

  10. qt 鼠标拖动窗口放大缩小

    // 鼠标拖动 具体实现void mouseMoveEvent(QMouseEvent * pEvent) { if (pEvent->buttons() & Qt::LeftButto ...