《CSS世界》读书笔记(四)--宽度分离
<!-- 《CSS世界》张鑫旭著 -->
CSS流体布局下的宽度分离原则
所谓“宽度分离原则”,就是CSS中的width属性不与影响宽度的padding/border(有时候包括margin)属性共存,也就是不能出现以下的组合:
.box { width:100px; border: 1px solid; }
或者
.box{ width:100px; padding: 20px; }
而是利用宽度分离原则,width独立占用一层标签,而padding、border、margin利用流动性在内部自适应呈现。
.father {
width: 180px;
}
.son {
margin: 0 20px;
padding: 20px;
border: 1px solid;
}
宽度分离便于维护。当一件事情的发展可以被多个因素左右的时候,这个事情最终的结果就会变数很大而不可预期。宽度在这里也是类似,由于盒尺寸中的4个盒子都能影响宽度,自然页面元素的最终宽度就很容易发生变化而导致意想不到的布局发生。
width、padding、border混用的时候,当我们需要修改padding或者border-width的时候,就要重新计算width,而使用width分离之后,我们没有任何计算,浏览器会自动计算,完全不用担心尺寸的变化,页面结构更加稳固。
宽度分离多使用了一层标签,增加了HTML成本。
而既无需计算,又无需额外嵌套标签的实现,就是改变width作用细节的box-sizing属性。
改变width/height作用细节的box-sizing
box-sizing被直译为“盒尺寸”,实际上,更准确的叫法应该是“盒尺寸的作用细节”,或者说更通俗一点,叫“width作用的细节”,也就是说,box-sizing属性的作用是改变width的作用细节。
box-sizing的值有content-box、padding-box、border-box;content-box是默认值,padding-box只有Firefox曾经支持过,border-box全线支持。
为何box-sizing不支持margin-box?
没有价值!如果我们使用width或height设定好了尺寸,margin不会影响offset尺寸。
并且对于box-sizing的margin-box效果,如果是IE10及以上版本浏览器,可以试试flex布局;如果是IE8及以上版本可以使用“宽度分离”,或者特定场景下使用“格式化宽度”来实现,也就是并不是强需求。
《CSS世界》读书笔记(四)--宽度分离的更多相关文章
- CSS揭秘读书笔记 (一)
CSS揭秘读书笔记 (一) 一.半透明边框 要想实现半透明边框可以使用border: border: 10px solid hsla(0,0%,100%,.5); background: ...
- CSS流体(自适应)布局下宽度分离原则——张鑫旭
by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=1463 一.简短的前言 ...
- CSS流体(自适应)布局下宽度分离原则
CSS流体(自适应)布局下宽度分离原则 这篇文章发布于 2011年02月28日,星期一,00:48,归类于 css相关. 阅读 73990 次, 今日 5 次 by zhangxinxu from h ...
- 《CSS世界》笔记二:盒模型四大家族
上一篇:<CSS世界>笔记一:流/元素/尺寸下一篇:<CSS世界>笔记三:内联元素与对齐 写在前面 在读<CSS世界>第四章之前,粗浅的认为盒模型无非是margin ...
- 《css世界》笔记之流、元素与基本尺寸
1. 块级元素 基本特性:就是一个水平流上只能单独显示一个元素,多个块级元素则换行显示. 块级元素和"display 为block 的元素"不是一个概念,display:list- ...
- 【转】Verilog HDL常用建模方式——《Verilog与数字ASIC设计基础》读书笔记(四)
Verilog HDL常用建模方式——<Verilog与数字ASIC设计基础>读书笔记(四) Verilog HDL的基本功能之一是描述可综合的硬件逻辑电路.所谓综合(Synthesis) ...
- 【转载】MDX Step by Step 读书笔记(四) - Working with Sets (使用集合)
1. Set - 元组的集合,在 Set 中的元组用逗号分开,Set 以花括号括起来,例如: { ([Product].[Category].[Accessories]), ([Product].[ ...
- how tomcat works 读书笔记四 tomcat的默认连接器
事实上在第三章,就已经有了连接器的样子了,只是那仅仅是一个学习工具,在这一章我们会開始分析tomcat4里面的默认连接器. 连接器 Tomcat连接器必须满足下面几个要求 1 实现org.apache ...
- 《精通CSS》读书笔记(一)
最近新添16本书,目前开始看陈剑瓯翻译的<精通CSS——高级Web标准解决方案>(Andy Budd, CSS Mastery -- Advanced Web Standards Solu ...
- css 揭秘-读书笔记
css 揭秘 [希]Lea verou 著 css 魔法 译 该书涵盖7大主题,47个css技巧,是css进阶必备书籍,开阔思路,探寻更优雅的解决方案.这本书完全用css渲染出的html写成的(布局. ...
随机推荐
- 【Dubbo 源码解析】02_Dubbo SPI
Dubbo SPI:(version:2.6.*) Dubbo 微内核 + 插件 模式,得益于 Dubbo SPI .其中 ExtentionLoader是 Dubbo SPI 最核心的类,它负责扩展 ...
- BackboneJS 源码注释
Backbone 作者在源码中做了很好的注释,这里只是锦上添花,补充一些个人的理解而已. // Backbone.js 1.2.3 // (c) 2010-2015 Jeremy Ashkenas, ...
- PHP异步请求之fsockopen()方法详解
正常情况下,PHP执行的都是同步请求,代码自上而下依次执行,但有些场景如发送邮件.执行耗时任务等操作时就不适用于同步请求,只能使用异步处理请求. 场景要求: 客户端调用服务器a.php接口,需要执行一 ...
- ubuntu中python3安装package
1.实验环境 Ubuntu16.04x86 + python3.5 ubuntu中同时存在python2.7 和 python3.5 2.pip使用说明 sudo pip install packag ...
- gym 101755
别问我为什么现在才发... 我怎么睡醒午觉吃了个饭就晚上九点半了啊????? 真实自闭场,感觉码力严重不足需要补魔. A: #include <bits/stdc++.h> using n ...
- python 接口自动化测试(五)其他-认证&代理&超时配置
有了前面几节的介绍,基本的接口测试是可以满足了.本节一些其它的高级技巧: 一.认证 1.基本认证: # -*- coding:utf-8 -*- import requests url = " ...
- 限时免费 | 12月6日,广州保利洲际酒店,ABC Summit 2018云智峰会来了!
随着科技的迅猛发展,人工智能技术也逐渐取得了各个突破.自20世纪70年代以来,作为计算机学科的一个分支,人工智能就被列为世界三大尖端技术之一.近年来,阿尔法狗战胜世界第一柯洁,使人工智能再度迎来新的热 ...
- IDEA创建Spring+SpringMVC+MyBatis(SSM)极简入门(上)
1. 创建项目 2. 添加Controller 3. pom+ properties+swager 4. 添加Mysql+ Mybatis 5. 调用Mybatis生成Mapper 1.创建 ...
- node_modules文件过长无法删除问题记录
执行指令 rimraf node_modules
- RoR - Creating and Modifying Table and Columns
自动生成的id 被当作primary key来使用 timestamp method生成 created_at 与 updated_at columns create_table 和 drop_tab ...