2020年4月30日总结(二)

255 阅读5分钟

2020年4月30日总结(二)

一、元素的类型

1.1.inline-block

  • 可以让元素同时具备块级、行内级元素的特征

    • 跟其他行内级元素在同一行显示
    • 可以随意设置宽高
    • 宽高默认由内容决定
  • 可以理解为:

    • 对外来说,是一个行内级元素
    • 对内来说,是一个块级元素
  • 常见用途

    • 让行内级非替换元素(比如a、span等)能够随时设置宽高
    • 让块级元素(比如div、p等)能够跟其他元素在同一行显示

1.2.visibility

  • visibility,能控制元素的可见性,有两个常用值:

    • visible: 显示元素
    • hidden: 隐藏元素
  • display: none;和visibility: hidden;的区别:

    • visibility: hidden;虽然元素看不见了,但元素的框依旧还留着,还会占着原来的位置
    • display: none;不仅元素看不见了,而且元素的框也会被移除,不会占着任何位置

1.3.overflow

  • overflow用于控制内容溢出时的行为

    • visible:溢出的内容照样可见

    • hidden:溢出的内容直接裁剪

    • scroll:溢出的内容被裁剪,但可以通过滚动机制查看

      • 会一直显示滚动条区域,滚动条区域占用的空间属于width、height
    • auto:自动根据内容是否溢出来决定是否提供滚动机制

    • 还有overflow-x、overflow-y两个属性,可以分别设置水平垂直方向

1.4.元素之间的空格

  • 目前建议的解决方法:

    • 1.元素代码之间不要留空格

    • 2.注释钓空格

    • 3.设置父元素的font-size为0,然后在元素中重新设置自己需要的font-size

      • 此方法在Safari不适用
    • 4.给元素加float(建议)

1.5.注意点:

  • 块级元素、inline-block元素

    • 一般情况下,可以包含其他任何元素(比如块级元素、行内级元素、inline-block元素)
    • 特殊情况,p元素不能包含其他块级元素
  • 行内元素(比如a、span、strong等)

    • 一般情况下,只能包含行内元素

二、盒子模型

2.1.盒子模型

  • HTML中每一个元素都可以看成一个盒子

    • 内容(content)

      • 盒子里面装的东西
    • 内边距(padding)

      • 盒子边缘和里面装的东西之间的间距
    • 边框(border)

      • 就是盒子的边框,边缘部分
    • 外边距(margin)

      • 盒子和其他盒子之间的间距

2.2.内容相关属性

  • width:宽度
  • min-width:最小宽度,无论内容多少,宽度都大于或等于min-width
  • max-width:最大宽度,无论内容多少,宽度都小于或等于max-width
  • height:高度
  • min-height:最小高度,无论内容多少,高度都大于或等于min-height
  • max-height:最大高度,无论内容多少,高度都小于或等于max-height

2.3.内边距相关属性

  • padding-left:左内边距
  • padding-right:右内边距
  • padding-top:上内边距
  • padding-bottom:下内边距
  • padding:时padding-top、padding-right、padding-bottom、padding-left的简写属性
  • padding的取值规律:
    • 按照顺时针方向取值:top、right、bottom、left
    • 如果缺少left,那么left就使用right的值
    • 如果缺少bottom,那么跟随top的值

2.4.word-break:

  • word-break: break-all;就可以在文本中换行

2.5.外边距相关属性

  • margin-left:左外边距
  • margin-right:右外边距
  • margin-top:上外边距
  • margin-bottom:下外边距
  • margin:是margin-top、margin-right、margin-bottom、margin-left的简写属性
  • margin的取值规律:
    • 按照顺时针方向取值:top、right、bottom、left
    • 如果缺少left,那么left就使用right的值
    • 如果缺少bottom,那么跟随top的值

2.6.上下margin的传递

  • margin-top传递

    • 如果块级元素的顶部线和父元素的顶部线重叠,那么这个块级元素的margin-top的值会传递给父元素
  • margin-bottom传递(不常用)

    • 如果块级元素的底部线和父元素的底部线重叠,并且父元素的高度是auto,那么块级元素的margin-bottom值会传递给父元素
  • 如何防止出现传递问题?

    • 给父元素设置padding-top\padding-bottom
    • 给父元素设置border
    • 触发BFC(block format context)
      • 结界
      • 浮动可以出发
      • 设置一个元素的overflow为auto\hidden
  • 建议:

    • margin一般是用来设置兄弟元素之间的间距
    • padding一般是用来设置父子元素之间的间距

2.7.上下margin的折叠

  • 垂直方向上相邻的2个margin(margin-top、margin-bottom)有可能会合并为1个margin,这种现象叫collapse(折叠)

  • 水平方向上的margin(margin-left、margin-right)永远不会collapse

  • 折叠后最终值得计算规则:

    • 两个值进行比较,取较大的值
  • 如何防止margin collapse?

    • 只设置其中一个元素的margin(常用)

2.8.border(边框)相关的属性

  • 边框宽度

    • border-top-width、border-right-width、border-bottom-width、border-left-width
    • border-width是上面4个属性的简写属性
  • 边框颜色

    • border-top-color、border-right-color、border-bottom-color、border-left-color
    • border-color是上面4个属性的简写属性
  • 边框样式

    • border-top-style、border-right-style、border-bottom-style、border-left-style
    • border-style是上面4个属性的简写属性
    • dashed和solid比较常用
  • border: 10px solid yellow; 宽度、样式、颜色

  • 边框的形状:

    • 边框的形状可能是:
      • 矩形、梯形、三角形等形状
  • 行内非替换元素的注意点:

    • 以下属性对行内级非替换元素不起作用

      • width、height、margin-top、margin-bottom
    • 以下属性对行内非替换元素的效果比较特殊

      • padding-top、padding-bottom、上下方向的border

2.9.圆角

  • CSS属性:border-x-x-radius

  • 圆角半径相关的属性有:

    • border-top-left-radius,border-top-right-radius
    • border-bottom-left-radius,border-bottom-right-radius
  • border-x-x-radius定义的是四分之一椭圆的半径

    • border-top-left-radius: 50px 50px;

    • 第1个值是水平半径

    • 第2个值是垂直半径(如果不设置,就跟随水平半径的值)

  • 设置百分比

    • border-top-left-radius: 50%;
    • 参考的是border-box的宽度
  • border-radius是一个缩写属性

    • border-radius: 50px;

    • /* 强调:border-radius参考的是当前元素的border+padding+width */

      border-radius: 50%;