美文网首页
张鑫旭《css世界》学习笔记

张鑫旭《css世界》学习笔记

作者: 超跑飞飞 | 来源:发表于2020-02-12 18:05 被阅读0次

    外部尺寸与流体特性

    1.正常流宽度:margin/border/padding/content内容区域自动分配水平空间
    2.格式化宽度:仅出现在“绝对定位模型”中

    内部尺寸与流体特性

    1.包裹性:包裹+自适应
    2.首选最小宽度:每个汉字宽度,每个英文字符单元
    3.最大宽度:最大的连续内联盒子的宽度

    内联元素

    可以和文字在同一行显示

    内联盒模型
    1.内容区域
    2.内联盒子
    3.行框盒子
    4.包含盒子

    幽灵空白节点

    HTML5文档声明中,内联元素的所有解析和渲染表现就如同每个行框盒子的前面有一个“空白节点”。这个空白节点永远透明,不占宽度,无法获取,但确实存在,表现如文本节点一样。

    替换元素

    根据是否具有可替换内容,可以把元素分为替换元素和非替换元素。
    典型的替换元素:<img><object><video><iframe><textarea><input>······
    替换元素特性:

    1.内容可替换
    2.内容的外观不受页面上的css影响
    3.有自己的尺寸
    4.在很多css属性上有自己的一套规则
    替换元素和非替换元素的区别:

    1.替换元素和非替换元素之间只隔了一个src属性
    2.替换元素和非替换元素之间只隔了一个CSS content属性

    content内容生成技术

    1.content辅助元素生成
    2.content字符内容生成
    3.content图片生成
    4.content开启闭合符号生成
    5.content计数器

    margin

    margin合并的3种场景

    1.相邻兄弟元素margin合并
    2.父级和第一个/最后一个子元素
    3.空块级元素的margin合并
    margin合并的计算规则:

    1.正正取大
    2.正负相加
    3.负负最负
    margin:auto的填充规则

    1.如果一侧定值,一侧auto,则auto为剩余空间大小
    可用于实现左对齐或右对齐
    2.如果两侧均是auto,则平分剩余空间
    注:触发margin:auto计算有一个前提,widthheight不能是auto

    margin无效情形:

    1.display计算值inline的非替换元素的垂直margin无效
    表格中<tr><td>元素设置display计算值是table-celltable-row的元素的margin都是无效的
    2.margin合并的时候
    3.绝对定位元素非定位方向的margin值“无效”
    4.定高容器的子元素的margin-bottom或者定宽容器的子元素的margin-right的定位“失效”
    5.鞭长莫及导致的margin失效
    6.内联特性导致的margin失效

    vertical-align

    vertical-align属性值分为4类:

    1.线类: baseline,top,middle,bottom
    2.文本类:text-top,text-bottom
    3.上下标类: sub,super
    4.数值百分比类: 如20px,2em,20%
    5.vertical-align作用的前提: 只能应用于内联元素以及display值为table-cell的元素

    width:auto

    auto默认值包含四种表现形式:

    1.充分利用可用空间:fill-available
    2.收缩与包裹: fit-content
    3.收缩到最小:min-content
    4.超出容器限制

    height:100%

    如果父元素高度为auto,只要子元素在文档流中,百分比值会被忽略。
    使height:100%生效:

    1.设置显示的高度值

    html,body {
      height: 100%;
    }
    

    2.使用绝对定位

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

    层叠上下文和层叠水平

    层叠顺序:

    1.正z-index
    2.z-index:0或者z-index:auto或者不依赖z-index的层叠上下文
    3.inline水平盒子
    4.float浮动盒子
    5.block块状盒子
    6.负z-index
    7.层叠上下文background/boder
    层叠领域的黄金准则

    1.谁大谁上
    2.后来居上
    z-index不犯二准则: 对于非浮层元素,避免设定z-index值,z-index值没有任何道理需要超过2。

    流向的改变

    1.direction
    2.unicode-bidi
    3.writing-mode

    关于display:block

    block属性具有最具代表性的流动性,天生默认宽度为父盒子的100%.流动性,当设置了宽度的时候,会打断流动性,所以张鑫旭建议布局无宽度.(当子盒子浮动或者定位,就会失去这个流动性)

    关于display:inline-block

    block的流动性不同,inline-block具有包裹性,也就是宽度由内部元素决定

    文字和图片最优原则

    就是你哪怕设置了父盒子的宽度为零,文字和图片依旧会显示的.如果设置了overflow:hidden,就可以隐藏起来,这是改变了渲染的规则.

    相关文章

      网友评论

          本文标题:张鑫旭《css世界》学习笔记

          本文链接:https://www.haomeiwen.com/subject/eqmcfhtx.html