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样 ...
随机推荐
- [转]修改DLL
部分内容来自:http://blog.csdn.net/csdncshuan/article/details/51477705 为没有源码的DLL文件添加强名称 如果项目中引用了其他没有源码的dll文 ...
- python 使用selenium和requests爬取页面数据
目的:获取某网站某用户下市场大于1000秒的视频信息 1.本想通过接口获得结果,但是使用post发送信息到接口,提示服务端错误. 2.通过requests获取页面结果,使用html解析工具,发现麻烦而 ...
- matplot 代码实例2
要画出如上图(注意原点有边距),怎么办呢? 简单而优雅,请看代码: #!/usr/bin/env python # coding=utf-8 import matplotlib.pyplot as p ...
- [UE4]引擎自身提供的无锁队列等无锁容器(TLockFreePointerList)
常用的接口: TLockFreePointerListFIFO<T>:先进先出: TLockFreePointerListLIFO<T>:后进先出: TLockFreePoin ...
- Python单例模式的4种实现方法
#-*- encoding=utf-8 -*- print '----------------------方法1--------------------------' #方法1,实现__new__方法 ...
- 基本数据结构:链表(list)
copy from:http://www.cppblog.com/cxiaojia/archive/2012/07/31/185760.html 基本数据结构:链表(list) 谈到链表之前,先说一下 ...
- mysql数据表自动导为python sqlalchemy可操作对象
1.pip install sqlacodegen pip install pymysql 在/usr/lib/python/site-packages/sqlacodegen/main.py中添 ...
- 红帽配置Centos仓库[红帽Redhat7替换Centos7网络源]
1.卸载红帽yum源 rpm -e $(rpm -qa|grep yum) --nodeps 2.删除所有repo相关文件 rm -rf /etc/yum.conf rm -rf /etc/yum.r ...
- zabbix 监控数据库 及 tcp连接数
参考网站: 监控sqlserver http://blog.51cto.com/13272050/2050601 http://blog.51cto.com/ultrasql/1927672 ...
- 28. 表单css样式定义格式
form>table>tbody>tr>td{padding:5px;font-size:14px;font-family:"Microsoft YaHei" ...