各种height/width总结

CSS盒模型是比较复杂的,尤其是当页面中有滚动条时,仅仅通过css来操作高度宽度是不够的,幸运的是Javascript提供了不少这样的接口。Javascript中clientHeight / cliengWidth, scrollHeight /scrollWidth, offsetHeight / offsetWidth, height / width 都可以获取高度和宽度,但是他们有一些细微的差别:

  • offsetHeight / offsetWidth:可见区域包含border,对于display:block的元素通过width/height + padding + border可以计算出来。
  • clientHeight / cliengWidth:可见区域包含padding,不包含border和滚动条,不能通过CSS样式计算出来,取决于滚动条的大小。
  • scrollHeight / scrollWidth:内容区域的大小,不包含border,包含不在可见区域内的隐藏部分,不能通过CSS样式计算出来。
  • height / width:不包含borderpadding

另外:滚动条的宽度可以通过如下方式计算:

scrollbarWidth = offsetWidth - clientWidth - getComputedStyle().borderLeftWidth - getComputedStyle().borderRightWidth  
时间: 2024-12-22 02:10:30

各种height/width总结的相关文章

opencv 中x,y,height, width,rows,cols 的关系

opencv中图像的x,y 坐标以及 height, width,rows,cols 他们的关系经常混淆. rows 其实就是行,一行一行也就是y 啦.height高度也就是y啦. cols  也就是列,一列一列也就是x啦.width宽度也就是x啦. 备忘一下.

IOS UI Frame 相对位置调整 与优化方法 Height Width X Y 调整

不使用xib ,纯代码开发的过程中,动态UI  需要改对象的大小位置 反复使用CGRectMake 去 setFrame  非常低效耗时,而且 牵一发动全身. 以下整理出几个方法,方便动态布局 1.set 方法 重新布局 #import <Foundation/Foundation.h> @interface HuofarUtils : NSObject @end CGRect CGRectSetWidth(CGRect rect, CGFloat width); CGRect CGRectS

easyui datagrid height width =0的问题

对于一个页面中应用了datagrid的table控件来说,如在页面打开时为隐藏,在页面的应用中再动态显示,这样,显示出来的table数据则会隐藏不可见,table的标题,工具栏,分页栏则会压缩在一起,而需要显示的数据却未能正常显示出来. 也就是宽度或高度为0: 解决办法是: 1.div加 easyui-panel,必须是隐藏的外层div也就是说div只能有一个class属性,如果不行自己在外面多加几个div,达到效果: 示例: <div id="con_zzjs_1" class

[WPF系列]- Style - Specify width/height as resource in WPF

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Page.Resources> <sys:Double x:

jQuery height() innerHeight() outerHight() width() innerWidth() outerWidth()源码解读

在第二层each,传入的对象以height举例是这样的,{padding:innerHeight,content:height,"":outerHeight} 对它遍历调用function(defaultExtra,funcName),也就是说传入的defaultExtra是键 padding/content/"",而funcName是对应的innerHeight,height,outerHeight. jQuery.fn[funcName]内部有四个分支:1.$(

通过继承Rect类编写一个具有确定位置的矩形类PlainRect,其确定位置用 矩形的左上角坐标来标识,包含: 添加两个属性:矩形左上角坐标startX和startY。 两个构造方法: 带4个参数的构造方法,用于对startX、startY、width和height属性 初始化; 不带参数的构造方法,将矩形初始化为左上角坐标、长和宽都为0 的矩形; 添加一个方法: 判断某个点是否在矩形内部的方法

package b; public class Rect { Double width; Double height; public Double getWidth() { return width; } public void setWidth(Double width) { this.width = width; } public Double getHeight() { return height; } public void setHeight(Double height) { this

CSS进阶(一)width &amp; height

禁用默认行为可以使拖动行为更加流畅,如a标签 块级元素不是指拥有display:block声明的元素 块级元素具有的换行特性,它们都可以使用clear来清除浮动带来的效果 display:inline-block实际上是两个容器,外在容器负责布局,内在容器负责大小 width深入 inline-block 浮动元素 绝对定位元素都有智能的包裹性 首选最小宽度 width设置为0时,图片和文字的权重大于布局 (1)东亚文字显示为单个最小文字的宽度 (2)西方文字特定的最小宽度由英文字符单元决定.一

width(),innerHTML(),outerHTML()

HTML代码: <div id="box"> <p>哈哈,随便写点内容</p> <p>删除的实例</p> <p>蛮试试看</p> </div> <button id="btn">点击</button> CSS: #box { border: 1px solid #ccc; background: #fefefe; width: 400px; hei

重新实践《轻量级DJANGO》这本书

从手到尾,手写的DJANGO,不借助命令,效果一样的呢. import os import sys import hashlib from django.conf import settings DEBUG = os.environ.get('DEBUG', 'on') == 'on' SECRET_KEY = os.environ.get('SECRET_KEY', '%jv_4#hoaqwig2gu!eg#^ozptd*[email protected](aasv7z!7xt^5(*i&k'