1. display:none;与visibility:hidden;的区别?
display:none;与visibility:hidden;功能:隐藏元素
区别:
1. display:none不占位置,visibility:hidden;占位置。
2. display:none会进行回流和重绘。visibility:hidden只进行重绘【重点】
触发回流必定触发重绘。
触发重绘不一定会触发回流。
重绘:盒子font-size、background...
回流:尺寸大小、位置(left、top)
2. display:inline-block,block,inline元素的区别
1. display:block将元素显示为块级元素,从而可以更好地操控元素的宽高,以及内外边距,每一个块级元素都是从新的一行开始。
2. display: inline
① 元素不会独占一行,多个相邻的行内元素会排列在同一行里,直到一行排列不下,才会新换一行,其宽度随元素的内容而变化。
② inline元素设置width,height属性无效。
③ inline元素的margin和padding属性,水平方向的padding-left, padding-right, margin-left, margin-right都产生边距效果;但竖直方向的padding-top, padding-bottom, margin-top, margin-bottom不会产生边距效果。
3. display:inline-block看上去值名inline-block是一个混合产物,实际上确是如此,将元素显示为行内块状元素,设置该属性后,其他的行内块级元素会排列在同一行。比如我们li元素一个inline-block,使其既有block的宽度高度特性,又有inline的同行特性,在同一行内有不同高度内容的元素时,通常要设置对齐方式如vertical-align: top;来使元素顶部对齐。
3. CSS样式权重和优先级
!important > 行内样式 > id选择器 > class选择器/属性选择器 > 标签选择器 > 通配符*
4. title与h1的区别、b与strong的区别、i与em的区别
title标签与h1标签的区别:
1. title是网页标题,h1是内容。
2. 在做网站seo的层面上:title > h1。
b与strong的区别:
1. 语义化
2. b只是一个加粗的标签,没什么特殊含义。
strong也是一个加粗标签,但有特殊含义(前端、阅读器、seo)。
i与em的区别:
1. 语义化
2. 都是倾斜,i没有特殊含义,em有特殊含义,i一般用来现在做图标了。