第三章-流、元素和基本尺寸

  • 由于块元素具有换行特性、可以用它清除浮动
.clear:after{
    content:'';
    display:table;
    clear:both;
}

不使用list-item原因:IE11不支持after,beforedisplaylist-item,因为ie11不支持标记盒子;

  • width:auto 详解
    四种宽度表现:
    1.充分利用可用空间,比如divp,叫做fill-available;
    2.收缩与包裹。典型代表就是浮动、绝对定位、inline-block元素或table元素,成为shrink-to-fit。css3中的fit-content指的就是这种包裹性表现。
    3.收缩到最小。最容易出现在table-layoutauto的表格中。
    4.超出容器限制。出现情况:内容很长的连续的英文和数字,或者内联元素被设置了white-space:nowrap,则表现为:“恰似一江春水向东流,流到断崖也不回头。”

  • 外部尺寸与流体特性
    以上四种width:auto表现,第一种是外部尺寸表现,其余的都是内部尺寸表现
    1.正常流宽度:尽量避免设置width:100%,利用流的特性自动填满;
    2.格式化宽度:仅出现在绝对定位中,也就是出现在position:absolutefixed中,默认情况下,绝对定位元素的宽度表现是“包裹性”,宽度由内部尺寸决定。但是,对于非替换元素,当left/right,top/bottom对立方位的属性值同时存在的时候,元素的宽度表现为格式化宽度,其宽度大小相对于最近的具有定位特性的祖先元素计算。

  • 内部尺寸与流体特性
    1.包裹性:对于一个元素,如果其display属性是inline-block,那么即使其里面内容再多,只要是正常文本,宽度也不会超过容器。于是,图文混排的时候,我们只要关心内容。除非首选最小宽度比容器宽度还要大,否则我们完全不需要担心某个元素内容太多而破坏了布局。
    包裹性的例子:<button><input type="button">,按钮文字越多宽度越宽,但如果文字足够多,则会在容器的宽度处自动换行。input按钮不会换行,因为input标签按钮,默认white-space:pre是不会换行的,需要将pre设置为normal;
    2.首选最小宽度:每个汉字的宽度,或者连续的英文字符单元的宽度,如果想让英文字符和中文一样,每一个字符都用最小宽度单元,可以试试word-break:break-all。类似图片这样的替换元素的最小宽度就是该元素内容本身的宽度。
    3.最大宽度。最大宽度就是元素可以有的最大宽度。“最大宽度”实际等同于“包裹性”元素设置white-space:nowrap声明后的宽度。如果内部没有块级元素或者块级元素没有设置宽度,则最大宽度实际上是最大连续内联盒子的宽度。

  • width的作用和细节
    1.宽度分离原则:父元素设置宽度,子元素不设置宽度,只设置margin、padding。子元素会如流水般自动填满父容器。
    2.box-sizing:对于替换元素,尺寸不受display:block水平影响,无法实现尺寸100%适应父容器。像textarea标签又需要padding值,这时候使用box-sizing:border-box是最方便的了。

  • 相对简单而单纯的height:auto
    1.为何父级没有具体高度值的时候,height:100%会无效?
    先了解一下浏览器渲染基本原理:首先,先下载文档内容,加载头部的样式资源,然后按照从上而下、自外而内的顺序渲染DOM内容。因此,当渲染到父元素的时候,子元素的width:100%并没有渲染,宽度就是图片加文字内容的宽度;等渲染到文字这个子元素的时候,父元素的宽度已经固定,此时的width:100%就是已经固定好的父元素的宽度。宽度不够怎么办。溢出就好了,overflow属性就是为此而生的。
    为何宽度支持,高度不支持?如果包含块的高度没有显式指定(即高度由内容决定),并且该元素不是绝对定位,则计算值为auto关键字。(auto 是无法和百分比进行计算的)。
    但是宽度的解释:如果包含块的宽度取决于该元素的宽度,那么产生的布局在css2.1中是未定义的。

  • 如何让元素支持height:100%的效果
    1.设定显式的高度值。如:

html,body{
  height:100%;
}

2.使用绝对定位。

div{
  height:100%;
  position:absolute;
}

区别:绝对定位中即使祖先元素的height计算为auto,也可以生效。而显式则不行。另外绝对定位元素的宽高百分比计算是相对于padding box的,而显式的则相对于content-box;

  • min-width/max-width和min-height/max-height二三事
    初始值:min-*:auto; max-*: none
    1.超越!important,超越最大。优先级:min-width > max-width > !important;
    技巧:利用max-height实现展开动画。注意:max-height不能过大,不然动画会有很长的停留时间。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,723评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,485评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,998评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,323评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,355评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,079评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,389评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,019评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,519评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,971评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,100评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,738评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,293评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,289评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,517评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,547评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,834评论 2 345

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,728评论 1 92
  • 在接下来的五章中,您将构建一个名为 WorldTrotter 的应用程序。 完成后,此应用程序将转换华氏温度和摄氏...
    titvax阅读 979评论 0 3
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,422评论 1 45
  • 分支结构 if-else 构成分支 结构1: 执行流程:判断表达式是否成立,如果成立,执行语句块,如果不成立,跳过...
    chad_it阅读 206评论 0 1
  • 每年生日,只要有我妈参与的那天,一定会发生很多不开心的事情,我们俩一定是世界上最不适合的一对母女。 农历重阳节,公...
    QUEEN_C阅读 332评论 0 0