1.《css世界》中深藏不露的width:auto;总结

2. width属性的默认值是auto,有四种特性

  1. 充分利用可用空间,典型的就是p, div这些块级元素。默认是填满整个父元素的宽度。
  2. 收缩与包裹,典型的就是浮动,绝对定位,inline-block, table元素
  3. 收缩到最小。
  4. 超出容器限制。

我来一个一个解读这些特性。
1.充分利用可用空间,主要是以div,p这些块级元素为主。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div {background-color: red;height: 100px;}</style>
</head>
<body><div></div>
</body>
</html>


这里我们没有设置width,但是他的width的宽度是填满这个父元素的宽度。这就是充分利用有空间。

  1. 收缩与包裹,典型的就是浮动,绝对定位,inline-block, table元素
    收缩,意思就是元素会收缩到最小为止,这时的最小的宽度由元素的内容来决定。
    包裹,意思就是元素的宽度会随着内容的元素的内容的增多而变长。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div {background-color: red;height: 100px;position: absolute;}</style>
</head>
<body><!-- <div>5</div> --><div>52222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222</div>
</body>
</html>


我们没有指定div的宽度,但是还是有宽度,宽度有内容来决定。

3.超出容器限制

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.fath {background-color: red;width: 200px;}.son {background-color: black;color: blue;}</style>
</head>
<body><!-- <div>5</div> --><div class="fath"><div class="son">52222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222</div></div>
</body>
</html>

3.内外部尺寸与流体特性。

1.外部尺寸
简单理解为就是,元素的尺寸由外部元素(父元素)来决定,典型的就是块级元素。
外部尺寸与流体特性–>格式化宽度。

2.格式化宽度

  1. 仅在绝对定位模型中,也就是出现在position的属性值为absolute或fixed的元素中,宽度右内部尺寸决定,是具有包裹性的。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div {position: absolute;background-color: red;}</style>
</head>
<body><div>66</div>
</body>
</html>


2. 当left/right或top/bottom 对立方位属性值同时存在的时候,元素的宽度表现为 “格式化宽度”,其宽度大小相对于最近的具有定位特性position属性值不是static的祖先元素计算。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.fath {position: relative;background-color: blue;height: 100px;}.son {position: absolute;left: 100px;height: 100%;right: 100px;background-color: red;}</style>
</head>
<body><div class="fath"><div class="son"></div></div>
</body>
</html>

此时son的宽度为, fath的宽度 - 100px - 100px。

son的宽度 = fath的宽度 - 100px - 100px

效果图

1.内部尺寸

内部尺寸: 假如这个元素里面没有内容,宽度时为0,那这个元素就是"内部尺寸"

特性
2. 包裹性
3. 首选最小宽度
4. 最大宽度

《css世界》中深藏不露的width:auto;总结相关推荐

  1. 字母‘x‘在CSS世界中的角色和故事

    字母'x'在CSS世界中的角色和故事 by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wordp ...

  2. CSS世界-第四章 盒尺寸四大家族

    盒尺寸的4个盒子:content box,padding box,border box,margin box 一 深入理解 content 1.根据可替换性把元素分为替换元素和非替换元素 <im ...

  3. 《CSS世界》笔记二:盒模型四大家族

    上一篇:<CSS世界>笔记一:流/元素/尺寸 下一篇:<CSS世界>笔记三:内联元素与对齐 写在前面 在读<CSS世界>第四章之前,粗浅的认为盒模型无非是margi ...

  4. 层叠上下文-《CSS 世界》阅读笔记

    层叠规则 目录 层叠规则 目录 z-index 什么是层叠上下文 什么是层叠水平 层叠顺序 层叠准则 层叠上下文的特性 笔者个人理解 层叠上下文的创建 定位元素与传统层叠上下文 层叠上下文与层叠顺序 ...

  5. 《CSS 世界》读书笔记-流与宽高

    大厂技术  坚持周更  精选好文 1. 前言 在学习 CSS 的过程中,我经常会被数不清的属性和特性弄得晕头转向.作为前端新手,经常会坐在显示器前花很多很多时间去 "追" 视觉稿, ...

  6. css中width:100%与width:auto的区别

    在布局中,width:100%和width:auto都会经常用到,那么,二者究竟有何区别呢?下面就来探讨下. 先上代码 <style>* {margin: 0;padding: 0;}.p ...

  7. CSS的width:100%和width:auto区别

    CSS的width:100%和width:auto区别 一.   问题 前段时间在调整树结构的时候,发现如果树的节点名称比较长的话在IE6下则不会撑开外面的元素,导致节点的名称只显示了一半,同时图标和 ...

  8. css属性width默认值width: auto与width: 100%区别

    width: auto 子元素(包括content+padding+border+margin)撑满整个父元素的content区域. 子元素有margin.border.padding时,会减去子元素 ...

  9. 【每日CSS】宽度自适应 width=100%还是width=auto?

    width怎样设置宽度随着窗口大小自适应? 我一般会想到width=100% 但如果使用width=100%,当div设置了左右margin或padding值,盒子将进一步"撑大" ...

  10. 《css世界》的那些实用技巧

    下面所有的内容都来至张鑫旭所著的<css世界>. <css世界>这是一本专门写css的书,书中并没有涉及css3的知识,但是它所展现的东西很多都是我从未知道或以前未重视的.这是 ...

最新文章

  1. 前端开发js运算符单竖杠“|”的用法和作用及js数据处理
  2. linux命令行安装使用KVM
  3. php 复制文件夹并压缩到最小_php与语音识别功能如何对接
  4. Unity 编辑器内建图标获得
  5. Python 异常(Exception)
  6. 也谈政府机关服务器资源的有效利用
  7. 质子和中子数量的一点疑问
  8. 基本概念---part3
  9. 北复交浙科哈航邮中上科保研之路
  10. 「吕本富」交易的四个阶段
  11. python量化策略——改进的美林时钟介绍(0)
  12. SpreadJS 表格控件相关基础知识
  13. 2019年杭电多校第一场 1001题blank(DP)HDU6578
  14. java模拟三人爬山_java笔记——模拟多人徒步爬山例子
  15. ¥1-3 SWUST oj 942: 逆置顺序表
  16. Python学记(三)turtle库
  17. 各行业不一样,WMS该如何入手?
  18. C语言实现100的阶乘
  19. STTH6010-Y-ASEMI原厂代理意法超快恢复二极管STTH6010-Y
  20. 这些年造过的一些轮子

热门文章

  1. Java二维码生成代码
  2. c语言实验11实验报告,c语言 实验报告11 12.doc
  3. JML 规格设计分析
  4. 神经网络与机器学习导言笔记——网络结构与知识表示
  5. springboot毕业设计 基于springboot旅游景区景点购票系统毕业设计设计与实现参考
  6. 计算机毕业设计之社区自行车租赁管理系统
  7. PS2接口鼠标转换成USB接口接线图
  8. 查询系统css portal,详细论述 Portal 的样式单 --- Portal.css
  9. IoTDB MPP框架源码解读之SQL的一生(襁褓)
  10. [转载] 关于Windows Boot Manager、Bootmgfw.efi、Bootx64.efi、bcdboot.exe 的详解