CSS中的各种width(宽度)
一 window对象的innerWidth、outerWidth
innerWidth是可用区域的宽度(内容区 + 滚动条)
outerWidth是浏览器窗口的宽度(可用区域的宽度+审查元素区域的宽度)
二 HTMLELement对象的offsetWidth、clientWidth、width
width是纯内容区
clientWidth是纯内容区+补丁
offsetWidth是纯内容区+补丁+边框+滚动条
说明:
1 桌面版浏览器(chrome、Safari)的滚动条占用HTMLElement的宽度(会导致HTMLElement的宽度减少15px)
移动版浏览器(Chrome、Safari)的滚动条不占用HTMLELement的宽度
2 getBoundingClientRect().right-getBoundingClientRect().left与offsetWidth意义相同,但前者提供精确的小数,而offsetWidth是整数。
3 Framework框架的Dom7的outerWidth()实际上是offsetWidth+margin
三 示例代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui">
<title>各种宽度</title>
<style type="text/css">
*{margin:0;border: none;padding: 0;}
.outer{
margin:9px;
border:7px solid black;
padding:3px;
width:300px;
height: 100px;
overflow-y: auto;
background-color: gray;
}
.inner{
height: 1000px;;
}
</style>
<script>
document.addEventListener('DOMContentLoaded',function(e){
// window的各种width
console.log(`innerWidth : ${window.innerWidth} , outerWidth : ${window.outerWidth}`);
// HTMLElement的各种width
let outer = document.querySelector('#outer');
let styles = document.defaultView.getComputedStyle(outer,null);
console.log(`offsetWidth : ${outer.offsetWidth} , clientWidth : ${outer.clientWidth}, width : ${outer.width}`);
},false);
</script>
</head>
<body>
<div id="outer" class="outer">
<div class="inner"> </div>
</div>
<div id="box2" style="height:2000px;"></div>
</body>
</html>
CSS中的各种width(宽度)的更多相关文章
- html5之canvas困惑 在canvas标签内需要设置了宽跟高,如果在css中设置同样的宽跟高,画出来的图像变形了?
<canvas class="cvs"></canvas> 遇到的问题: 如css 中设.cvs{width:500px;height:400px;},也就 ...
- css中的width,height,属性与盒模型的关系
这段话很容易记住盒模型: css中盒子模型包含属性margin.border.padding.content,他们可以把它转移到我们日常生活中的盒子(箱 子)上来理解,日常生活中所见的盒子也具有这些属 ...
- 【CSS中width、height的默认值】
对于初学者来说,CSS中的width.height的默认值是很神奇的,因为经常看到如下这样的代码:明明只给一个#father标签(红色的div)设置了一个width,为啥它在浏览器中显示出来是有一个固 ...
- CSS中width和height与盒子模型的关系
盒子模型 css中盒子模型包含属性margin.border.padding.width与height,他们可以把它转移到我们日常生活中的盒子(箱子)上来理解,日常生活中所见的盒子也具有这些属性,所以 ...
- Css中实现一个盒子固定宽度,另一个盒子宽度自适应的方法
Css中实现一个盒子固定宽度,另一个盒子宽度自适应的方法 网上方法很多,个人认为以下两种思想是最为常用的. 一种是让第一个盒子脱离文档流,第二个盒子离左边有一定距离. 第二种方法是使用flex布局,不 ...
- table中的td限制宽度width也不能让字符过长变成省略号生效?
table中的td限制宽度width也不能让字符过长变成省略号生效? http://blog.csdn.net/java_mr_zheng/article/details/49423247 CSS t ...
- 理解css中min-width和max-width,width与它们之间的区别联系
css中,min-width是用来限制元素的最小宽度,max-width用来限制元素的最大宽度,也就是说当元素的width大于max-width,或者小于min-width.就被它们的值所代替,尤其适 ...
- 对CSS中的Position、Float属性的一些深入探讨
对CSS中的Position.Float属性的一些深入探讨 对于Position.Float我们在平时使用上可以说是使用频率非常高的两个CSS属性,对于这两个属性的使用上面可能大多数人存在一些模糊与不 ...
- CSS中一些常见的兼容性问题
CSS中一些兼容性问题就是浏览器兼容,而这些浏览器兼容问题主要是Ie和FF之间的争斗. CSS hack中的一些事: 我们为了让页面形成统一的效果,要针对不同的浏览器或不同版本写出对应可解析的CSS样 ...
随机推荐
- Java-Runoob-高级教程-实例-数组:07. Java 实例 – 数组合并
ylbtech-Java-Runoob-高级教程-实例-数组:07. Java 实例 – 数组合并 1.返回顶部 1. Java 实例 - 数组合并 Java 实例 以下实例演示了如何通过 List ...
- 学习笔记之Microsoft Azure
Microsoft Azure - Wikipedia https://en.wikipedia.org/wiki/Microsoft_Azure Microsoft Azure (formerly ...
- shell 8printf
printf printf使用引用文本或空格分隔的参数,外面可以在printf中使用格式化字符串,还可以制定字符串的宽度.左右对其方式等.printf不会像echo自动添加换行符,因此需要手动添加\n ...
- [UE4]动画序列面板
- Eclipse里面的Maven项目如果下载依赖的jar包的源码
Window---------Properties---------------Maven--------------勾选Download Artifact Sources和Download Arti ...
- 管理oracle 11g RAC 常用命令
1).检查集群状态: [grid@rac02 ~]$ crsctl check cluster CRS-4537: Cluster Ready Services is online CRS-4529: ...
- 解决npm下载包失败的问题
在我朝,用npm直接从官方的镜像下载包,经常会出现网络超时下载失败的问题,具体原因大家都懂,我就不说了. 不过,这些都无法阻挡我们对知识的渴望,一下提供几种我在工作中的解决办法,希望能帮助你. 1.安 ...
- ACM MM | 中山大学等提出HSE:基于层次语义嵌入模型的精细化物体分类
细粒度识别一般需要模型识别非常精细的子类别,它基本上就是同时使用图像全局信息和局部信息的分类任务.在本论文中,研究者们提出了一种新型层次语义框架,其自顶向下地由全局图像关注局部特征或更具判别性的区域. ...
- 更新OpenSSH
1.安装必要组件: yum install -y gcc openssl-devel pam-devel rpm-build 2.下载OpenSSH最新版本: https://ftp.openbsd. ...
- time,sys,os 模块
import time# 时间戳时间,格林威治时间,float数据类型 给机器用的 # 英国伦敦的时间 1970.1.1 0:0:0 # 北京时间 1970.1.1 8:0:0 # 153369312 ...