来谈谈你对CSS盒模型的认识?
任何一个网页的搭建都离不开盒模型的堆砌。应该说css模型是web的一个根基,最后呈现出来的效果不同无非就是在高宽、内容与背景删的区别而已。
那么CSS模型有什么认识的呢?
首先,css盒模型有几种呢?两种。
1、标准模型 2、IE模型
先来说说这两种盒模型的区别在哪里,看图说话:

标准模型与IE模型最大的区别在于两者计算方式的不同,标准盒模型的高宽就是content的高宽度。而IE模型的高宽的计算是包含padding与border的宽高在内的。在设置是我们可以通过设置box-sizing来达
到两者的区分。
box-sizing的值
content-box:标准盒模型。
border-box:IE盒模型。
那么什么时候要用到IE盒模型呢?笔者的感觉用到的地方不多,但是有一种情况就很需要。当在设置一个元素hover上去后给它增加边框,如果这个时候采用的标准盒模型则会出现样式的错乱,观感就是
元素被硬生生的挤进去了一个1px的边框很不美观。然而设置box-sizing:border-box可以很好的解决这个问题。
其次,利用js如何来获取一个元素宽高呢?
我们先把方法甩出来再来讲区别。
document.getElementById('id').style.width/height :只限于获取内联样式取得宽高。
document.getElementById('id').currentStyle.width/height:可以获取浏览器及时渲染后的宽高,这个方法更准确但是只能支持IE。(既要准确又要大家都能用看下面这个方法)
window.getComputedStyle(dom).width/height:这个方法可以兼容chrome与firefox浏览器。
document.getElementById('id').getBoundingClientRect().width/height:该方法也可以及时拿到元素的宽高,计算一个元素的绝对位置并且同时拿到top、left、width、height四个值。
说到css盒模型就必须要引出BFC这个概念(块级格式化上下文),关于这一部分内容网上有更详细的介绍我就不再这里重复造轮子了,只是简单提一下。
BFC的原理
1、在BFC这个元素的垂直方向的边距会发生重叠。
2、BFC的区域不会与浮动元素的BOX重叠。
3、BFC是一个独立的容器,外面的元素不会影响里面的元素。
4、计算BFC高度的时候浮动元素也会参与计算。
如何创建BFC
1、overflow:hidden、auto;
2、float的值不为none;
3、position的值不为默认或者是realative
4、display:inline-block、table-cell、table
来谈谈你对CSS盒模型的认识?的更多相关文章
- 大前端学习笔记整理【一】CSS盒模型与基于盒模型的6种元素居中方案
概览 CSS盒模型,规定了元素框来处理元素的 内容.内边距.边框和外边距的方式 元素部分是指内容部分,也是最实际的内容,包围内容的称之为内边距,内边距外围是边框,边框外围就是外边距:且外边距是透明的, ...
- CSS盒模型
CSS盒模型是CSS 可视化格式化系统的基石,它是理解样式表如何工作的核心概念.盒模型用于元素定位和页面布局.元素框的最内部分是实际的内容,直接包围内容的是内边距.内边距呈现了元素的背景.内边距的边缘 ...
- 第 16 章 CSS 盒模型[下]
学习要点: 1.元素可见性 2.元素盒类型 3.元素的浮动 主讲教师:李炎恢 本章主要探讨 HTML5 中 CSS 盒模型,学习怎样了解元素的外观配置以及文档的整体布局. 一.元素可见性 使用 vis ...
- 第 16 章 CSS 盒模型[上]
学习要点: 1.元素尺寸 2.元素内边距 3.元素外边距 4.处理溢出 主讲教师:李炎恢 本章主要探讨 HTML5 中 CSS 盒模型,学习怎样了解元素的外观配置以及文档的整体布局. 一.元素尺寸 C ...
- 【前端盲点】DOM事件流论证CSS盒模型是否具有厚度
前言 很久没有扯淡了,我们今天来扯淡吧. 我今天思考了一个问题,我们页面的dom树到底是如何渲染的,而CSS盒模型与javascript是否有联系,于是便想到一个问题: CSS的盒模型具有厚度么??? ...
- [k]css盒模型
box-sizing : content-box || border-box || inherit 1.content-box:此值为其默认值.元素的宽度/高度(width/height)等于元素边 ...
- 尖刀出鞘的display常用属性及css盒模型深入研究
一:diplay:inline-block 含义:指元素创建了一个行级的块级元素,该元素内部(内容)被格式化成一个块级元素,同时元素本身则被格式化成一个行内元素.更简单的说就是说inline-bloc ...
- 7.css盒模型
所谓的盒模型,其实就是把元素当成盒子,元素里的文本就是盒子里的东西. 而根据元素的特效,其盒模型的特效也不同,下面是一些总结: 1.块级元素(区块) 所谓块级元素,就是能够设置元素尺寸.有隔离其他元素 ...
- css盒模型和块级、行内元素深入理解
盒模型是CSS的核心知识点之一,它指定元素如何显示以及如何相互交互.页面上的每个元素都被看成一个矩形框,这个框由元素的内容.内边距.边框和外边距组成,需要了解的朋友可以深入参考下 一.CSS盒模型 盒 ...
随机推荐
- Levenshtein字符串距离算法介绍
Levenshtein字符串距离算法介绍 文/开发部 Dimmacro KMP完全匹配算法和 Levenshtein相似度匹配算法是模糊查找匹配字符串中最经典的算法,配合近期技术栏目关于算法的探讨,上 ...
- POJ3666 Making the Grade
POJ3666 Making the Grade 题意: 给定一个长度为n的序列A,构造一个长度为n的序列B,满足b非严格单调,并且最小化S=∑i=1N |Ai-Bi|,求出这个最小值S,1<= ...
- P2300 合并神犇
题目链接 题意分析 首先这道题不可以使用简单的贪心来做 根据\(DP\) 我们令\(dp[i]\)表示当前到了\(i\)一共做了\(dp[i]\)次合并 \(pre[i]\)表示当前合并到了\(i\) ...
- js常见报错解决方法
1.获得类名document.getElementsClassName(常出现一个问题): getClassName("gn","pt")[0].appendC ...
- Behind the scenes of the C# yield keyword(转)
https://startbigthinksmall.wordpress.com/2008/06/09/behind-the-scenes-of-the-c-yield-keyword/ Behind ...
- 通过shell处理多行数据
### 源文件 cat > tmpb <<'EOF' dbname:db_a,start_time::: query_end_time:::,query_total_time:,da ...
- 超大图片显示,可任意缩放,移动,不用DiskLruCache
1.演示,代码 下载示例apk 下载项目 : https://gitee.com/xi/LImage.git 2.遇到的问题 想省内存,不太可能 只支持拖拽手势,不支持缩放相对简单,解码v ...
- Spring Roo 想知道源码,怎么实现自动生成枯燥的有规律的文件
简介 似乎是社区在维护的,不在 Spring 官网的 main projects 列表里,而是在 社区projects 列表里 是工具,不是像Spring Boot 一样的框架 http:// ...
- Verilog三段式状态机描述
时序电路的状态是一个状态变量集合,这些状态变量在任意时刻的值都包含了为确定电路的未来行为而必需考虑的所有历史信息. 状态机采用VerilogHDL语言编码,建议分为三个always段完成. 三段式建模 ...
- (转)使用LVS实现负载均衡原理及安装配置详解
使用LVS实现负载均衡原理及安装配置详解 原文:https://www.cnblogs.com/liwei0526vip/p/6370103.html