1.有的js文件为什么要放到body最下面?
1. 执行script时候如果页面还没渲染完成 则无法操作相关dom。当然可以等到domReady 后再操作dom。
2. script如果是外部引入的,那么会阻塞页面。网络不好、执行时间长等原因会导致渲染到 script处暂停渲染知道script执行完成。
2.使用 CSS 自定义属性(变量)
自定义属性(有时候也被称作CSS 变量或者级联变量)是由 CSS 作者定义的,它包含的值可以在整个文档中重复使用。由自定义属性标记设定值(比如: --main-color: black;),由var() 函数来获取值(比如: color: var(--main-color);)
基本用法:声明一个自定义属性,属性名需要以两个减号(--)开始,属性值则可以是任何有效的 CSS 值。和其他属性一样,自定义属性也是写在规则集之内的.
3.css自带的计算属性: CSS calc() 函数
calc() 函数用于动态计算长度值。
需要注意的是,运算符前后都需要保留一个空格,例如:width: calc(100% - 10px);
任何长度值都可以使用calc()函数进行计算;
calc()函数支持 "+", "-", "*", "/" 运算;
calc()函数使用标准的数学运算优先级规则;
4.rgba 和opacity的区别
使用 opacity 时当前元素以及子元素均会透明;而使用 rgba 调整时,只会使当前
元素透明,不会改变子元素透明度。
5.translate以自身的宽高进行平移。
6.块级元素与行级元素的区别。
·块级元素
1.总是从新的一行开始,即各个块级元素独占一行,默认垂直向下排列;
2.高度、宽度、margin及padding都是可控的,设置有效,有边距效果;
3.宽度没有设置时,默认为100%;
4.块级元素中可以包含块级元素和行内元素。
·行内元素
1.和其他元素都在一行,即行内元素和其他行内元素都会在一条水平线上排列;
2.高度、宽度是不可控的,设置无效,由内容决定。
3.根据标签语义化的理念,行内元素最好只包含行内元素,不包含块级元素。
7.margin塌陷
什么是margin塌陷
在垂直方向如果有两个元素的外边距有相遇的,浏览器中加载的真正的外边距不是两个间距的加和,而是两个边距中值较大的,边距值小的塌陷到了边距值大的值内部。
塌陷分为两种同级元素塌陷和父子元素塌陷,我分别给大家举个例子看看。
同级元素塌陷
上面的元素有下边距,下面的元素有上边距,两个边距相遇,真正的盒子间距离是较大的那个值。
父子元素塌陷
父子元素之间也会出现 margin 塌陷,父元素和子元素都设置了同方向的
margin-top 值,两个属性之间没有其他的内容进行隔离,导致两个属性相遇,发生 margin 塌陷。
还有一种情况是:本身父元素与上一个元素的距离是0,子元素如果设置了垂直方向的上边距,会带着父级一起掉下来。
解决 margin 塌陷问题的方法
同级元素:如果两个元素垂直方向有间距,只需要设置给一个元素,不要进行拆 分。
父子元素:让两个边距不要相遇,中间可以使用父元素 border 或 padding 将边距 分隔开;更加常用的方法,父子盒模型之间的距离就不要用儿子的 margin 去踹出来, 而是父级的 padding 挤出来。
另外注意:水平方向的 margin 没有塌陷现象。
8.align-self
align-self 属性定义flex子项单独在侧轴(纵轴)方向上的对齐方式。
注意:align-self 属性可重写灵活容器的 align-items 属性。
CSS 语法
align-self: auto|stretch|center|flex-start|flex-end|baseline|initial|inherit;
9.align-content
定义和用法
align-content 属性在弹性容器内的各项没有占用交叉轴上所有可用的空间时对齐容器内的各项(垂直)。
提示:使用 justify-content 属性对齐主轴上的各项(水平)。
注意:容器内必须有多行的项目,该属性才能渲染出效果。
CSS 语法
align-content: stretch|center|flex-start|flex-end|space-between|space-around|initial|inherit;
10.align-items
align-items 属性定义flex子项在flex容器的当前行的侧轴(纵轴)方向上的对齐方式。
提示:使用每个弹性对象元素的 align-self 属性可重写 align-items 属性。
CSS 语法
align-items: stretch|center|flex-start|flex-end|baseline|initial|inherit;