前端学习-day4

101 阅读4分钟

盒模型应用

改变宽高范围

默认情况下,width和height设置内容盒宽高

页面重构:将psd文件(设计稿)制作为静态页面

衡量设计稿尺寸的时候往往使用的是边框盒,但设置width和height却设置的是内容盒,就会导致边框盒的尺寸发生变化

解决办法:

  1. 精确计算
  2. CSS3:将box-sizing的值设置为border-box(边框盒),则width和height影响的就是边框盒的宽高

改变背景覆盖范围

默认情况下,背景覆盖边框盒

通过设置background-cilp的值,调整背景覆盖范围

溢出处理

通过设置overflow的值,控制内容溢出边框盒后的处理方式

visible,溢出部分可见

hidden,溢出部分隐藏

scroll,滚动条(scroll-y纵向滚动条,scroll-x横向滚动条)

auto,自动,当需要时会出现滚动条

断词规则

word-break会影响文字在什么位置被截断换行

normal:普通。对于CJK(中、日、韩)字符,在文字位置截断;对于非CJK字符,在单词位置截断

break-all:截断所有。所有字符都会在文字处截断

keep-all:保持所有。所有文字都在单词之间截断

空白处理

white-space:nowrap

(pre,文本预格式化,不会空白折叠)

<head>
...
    <style>
        li{
            border-bottom: 1px dashed #ccc;
            line-height: 2;
            border-left: 3px solid #008c8c;
            padding-left: 10px;
            margin: 1em 0;
            width: 200px;
            white-space: nowrap;
            overflow: hidden;/*溢出部分隐藏*/
            text-overflow: ellipsis;/*文本溢出部分圆点显示*/
        }
    </style>
</head>
<body>
    <ul>
        <li>Lorem ipsum dolor sit amet.</li>
        <li>Atque animi delectus corporis hic!</li>
        <li>Reiciendis quos ratione culpa saepe.</li>
        <li>Deserunt voluptas numquam doloremque beatae!</li>
        <li>Cum architecto nulla dolorem at.</li>
        <li>Repudiandae deserunt temporibus tempora quaerat?</li>
        <li>Dolores laborum veritatis fuga commodi!</li>
        <li>Velit explicabo dicta doloremque unde!</li>
        <li>Sed magnam ratione quaerat ducimus!</li>
        <li>Explicabo perspiciatis aspernatur maiores. Accusantium?</li>
    </ul>
</body>

行盒的盒模型

常见的行盒:包含具体内容的元素

span、strong、em、i、img、video、audio、a

行盒的显著特点

  1. 盒子沿着内容延伸
  2. 行盒不能设置宽高

调整行盒的宽高应该使用字体大小、行高、字体类型,间接调整

  1. 内边距(填充区,padding)

水平方向有效,垂直方向仅会影响背景颜色,不会实际占据空间。

  1. 边框 (border)

水平方向有效,垂直方向不会实际占据空间。

  1. 外边距 (margin)

水平方向有效,垂直方向不会实际占据空间。

行块盒

指display属性等于inline-block的盒子

  1. 不独占一行
  2. 盒模型中所有尺寸都有效

经常用来做分页

空白折叠

空白折叠,发生在行盒(行块盒)内部 或 行盒(行块盒)之间

可替换元素和非可替换元素

大部分元素,页面上显示的结果,取决于元素内容,称为****非可替换元素****

少部分元素,页面上显示的结果,取决于元素属性,称为****可替换元素****

可替换元素:img、video、audio

绝大部分可替换元素均为行盒。

可替换元素类似于行块盒,盒模型中所有尺寸都有效。

object-fit,用于视频、图片,表示适用方式,默认取值为:fill填充

常规流

盒模型:规定单个盒子的规则

视觉格式化模型(布局规则):页面中的多个盒子排列规则

视觉格式化模型,大体上将页面中盒子的排列分为三种方式:

  1. 常规流

  2. 浮动

  3. 定位

常规流布局

常规流、文档流、普通文档流、常规文档流

所有元素,默认情况下,都属于常规流布局

总体规则:块盒独占一行,行盒水平依次排列

包含块(containing block):每个盒子都有它的包含块,包含块决定了盒子的排列区域

绝大部分情况下:盒子的包含块,为其父元素的内容盒

块盒

  1. 每个块盒的总宽度,必须刚好等于包含块的宽度

width 的默认值是auto

margin的取值也可以是auto,默认值0

auto:将剩余空间吸收掉

width吸收能力强于margin

若宽度、边框、内边距、外边距计算后,仍然有剩余空间,该剩余空间被margin-right全部吸收

在常规流中,块盒在其包含块中居中,可以定宽、然后左右margin设置为auto。

  1. 每个块盒垂直方向上的auto值

height:auto, 适应内容的高度

margin:auto, 表示0

  1. 百分比取值

padding、宽、margin可以取值为百分比

以上的所有百分比都是相对于包含块的宽度

高度的百分比:

1). 包含块的高度是否取决于子元素的高度,设置百分比无效

2). 包含块的高度不取决于子元素的高度,百分比相对于父元素高度

  1. 上下外边距的合并

两个常规流块盒,上下外边距相邻,会进行合并。两个外边距取最大值。