深入CSS

49 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天

1.继承

盒子模型不会继承父元素,color、font可以被继承,使用inherit关键字可以让不可继承的属性可以继承,并且它继承的是父元素的计算值,initial将属性显示重置为初始值。

2.求值过程

首先根据属性的特殊性选则应该采取的属性值,然后将相对值转化为绝对值

3.计算值和使用值的区别

像em转化为px或者相对路径转化为绝对路径这种单纯的知道css就知道其值的为计算值,像关键字和百分比这种知道实际布局才知道值的为使用值

4.布局

布局是确定内容的大小和位置的算法

5.布局方式

1.常规流
2.浮动
3.绝对定位

6.盒模型

1.盒模型分为标准盒模型和IE盒模型,其区别在于

标准盒模型设置的宽度=content
IE盒模型设置的宽度=content+padding+border+margin

2.盒模型的元素注意点及衍生

1.content
2.padding:其百分比相对于容器的宽度
3.border:其属性为三个属性的值 width style color,当四边颜色不同时会出现相切的情况,从而延伸出,如果将宽高设为0,则只剩下border,四边交界处相切,形成四个三角形,我们需要哪个三角形只需将其他的隐藏
5.margin:1.margin:auto,由于左右margin会均分,所以可以实现水平居中2.垂直方向上会存在margin合并,会以margin较大的作为上下两个元素的间距

3.利用盒子模型中的border属性实现三角形

如果将宽高设为0,则只剩下border,四边交界处相切,形成四个三角形

 div {
            width: 0px;
            height: 0px;
            border: 100px solid;
            /* border-color: aqua rebeccapurple palevioletred yellowgreen; */
            /* 设置直角指向右边的三角形 */
            border-color: transparent transparent transparent yellowgreen;
        }

image.png

image.png

7.overflow

内容溢出盒子时处理情况 visible:将溢出内容设置为可见
hidden:将溢出内容隐藏
scroll:将盒子的内容滚动起来

8.块级和行级

1.块级元素生成块级盒子,行级元素生成行级盒子
2.可以使用display属性来将块级盒子和行级盒子相互转化
3.块级排版内的盒子的margin不会与外面的margin合并,所以我们如果要避免垂直方向上的magin合并,可以采用用两个div分别包裹两个元素的形式

9,flex box

将容器设置为flex之后,容器内的元素都会遵循flex排版上下文,而不会遵循原来的块级排版上下文和行级排版上下文
我们将不同方向分为主轴和侧轴,侧轴就是与主轴垂直的轴

image.png

image.png

9.1flexibility

flex是弹性布局,其元素都是有弹性的,flex-grow的属性值都是按照剩余空间来拉伸的
缩写为 flex:flex-grow flex-shrink flex-basic 只有flex-basic的单位是px,前面两个为比例,所以是没有单位的

10.grid布局

是二维的布局,nfr是将剩余的分成几份

grid-row-start
grid-column-start
grid-row-end
grid-column-end
简写:grid-area

11.float

现在一般用于文字环绕图片布局,将img设为float:left,则其兄弟元素p的文字环绕于该图片

12.position

static:默认值,非定位元素
relative:相对自身位置偏移,不脱离文档流
absolution:绝对定位,相对非static祖先元素定位
fixed:相对于视口绝对定位