当前位置: 首页 > news >正文

CSS盒模型深入

CSS盒模型

标准模型IE模型

标准模型width表示content的宽度,IE模型width表示border+padding+content的宽度。

设置这两种模型可使用:

box-sizing: content-box;   /*浏览器默认*/
box-sizing: border-box;

获取宽高

dom.style.width/height

只有通过内联样式设置的宽高才能获取到,用<link>标签引入的css获取不到。

dom.currentStyle.width/height  //IE
window.computedStyle(dom).width/height  //标准

无论样式是什么类型,都可以获取到宽高,且是渲染后的实际宽高。

dom.getBoundingClientRect().width/height

获取元素的宽高,和相对于视口的lfet top

边距重叠

子元素的外边距会反应在父元素上,相邻元素外边距会取较大值,空元素上下外边距会取较大值。

BFC

BFC指块级格式化上下文,是一个有特别规则的区域,规定内部元素如何布局,与外部元素无关。

1.BFC有一下几个规则:

  • 内部上下相邻元素外边距会重叠。
  • BFC块不会与浮动元素重叠。
  • 内部浮动元素也参与BFC高度的计算。

2.BFC的触发:

  • float属性不为none;
  • position: absolute/fixed;
  • overflow: auto/hidden;
  • display: inline-block、table-cells、table-captions、或inline-flex

BFC应用

1.解决边距重叠问题

<style>
    div { overflow: auto; }
    p { margin: 5px auto 10px; }
</style>
<div>
    <p></p>
</div>
使 div触发 BFC,内部元素外边距不会反映到父级元素上。
<style>
    .wrap { overflow: auto; }
    p { margin: 5px auto 10px; }
    .bfc { overflow: auto; }
</style>
<div class='wrap'>
    <p></p>
    <div class='bfc'>
        <p></p>
    </div>
</div>
两个 <p>标签都有上下外边距,给 <p>标签加父级,且触发 BFC,外边距不会在重叠。

2.清除浮动

<style>
    div { overflow: auto; }
    p { float: left; }
</style>
<div>
    <p></p>
</div>
使 div触发 BFC,内部浮动元素元素也参与高度计算。

相关文章:

  • ASP.NET MVC 学习笔记-3.面向对象设计原则
  • 干货分享:MySQL之化险为夷的【钻石】抢购风暴
  • Canon背后的故事
  • Linux 搭建私有软件仓库
  • Blockchain钱包全方位支持比特币现金(BCH)
  • 量子通信能否跨越“死亡之谷”?2017年市场化的量子通信产品可能产生
  • 奇异量子物理系统:它既在“绝对零度”之下,又在“绝对高温”之上
  • leetcode-594-Longest Harmonious Subsequence
  • 在龙芯小本上安装Debain8.10
  • 数据智能创建能源领域“智能助手”
  • 数据库基础常用知识
  • “阿里架构师”的JVM之GC详解
  • 干货云集 WOT2016峰会揭密大数据背后的技术难点
  • 收藏好这篇,别再只说“数据劫持”了
  • input框限制只能输入正整数、字母、小数、汉字
  • 网络传输文件的问题
  • 78. Subsets
  • conda常用的命令
  • ECMAScript入门(七)--Module语法
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • Laravel Telescope:优雅的应用调试工具
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • nodejs实现webservice问题总结
  • spark本地环境的搭建到运行第一个spark程序
  • Spring声明式事务管理之一:五大属性分析
  • 编写符合Python风格的对象
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 从tcpdump抓包看TCP/IP协议
  • 大快搜索数据爬虫技术实例安装教学篇
  • 机器学习中为什么要做归一化normalization
  • 排序(1):冒泡排序
  • 配置 PM2 实现代码自动发布
  • 一文看透浏览器架构
  • 如何在招聘中考核.NET架构师
  • 说说我为什么看好Spring Cloud Alibaba
  • #WEB前端(HTML属性)
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (一)appium-desktop定位元素原理
  • (一)u-boot-nand.bin的下载
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转) Android中ViewStub组件使用
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .NET应用架构设计:原则、模式与实践 目录预览
  • .ui文件相关
  • @Bean注解详解
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @private @protected @public
  • [ C++ ] template 模板进阶 (特化,分离编译)
  • [3300万人的聊天室] 作为产品的上游公司该如何?