几道简单面经总结

80 阅读6分钟

说一说HTML语义化?

  1. 代码结构:让页面在没有CSS的情况下,也可以呈现出很好的内容结构
  2. 有利于SEO:爬虫依赖标签来确定关键字的权重,因此可以和搜索引擎建立良好的沟通,帮助爬虫抓取更多有效的信息
  3. 提升用户体验:例如title、alt可以用于解释名称或者解释图片信息,以及label标签的灵活运用
  4. 便于团队开发和维护:语义化使得代码更具有可读性,让其他开发人员可以更加理解我们的html结构,减少差异化
  5. 方便其他设备解析:如屏幕阅读器、盲人阅读器、移动设备等,以更有意义的方式来渲染网页

说一说盒模型?

CSS盒模型本质是一个盒子, 包含padding、border、margin、content。一共有两种盒模型:W3C标准盒模型和IE怪异盒模型。标准盒模型的width/height不包含padding和border,因此总宽高需要额外加上padding、border和margin的值。怪异盒模型width/height中包含padding和border,因此总宽高只需要额外加上margin的值。默认使用标准盒模型,也可以通过设置box-sizing属性决定盒模型:border-box表示怪异盒模型、content-box代表了标准盒模型。

说一说浮动?

  1. 浮动的作用,设置浮动的图片,可以实现文字环绕图片;设置了浮动的块级元素可以排列在同一行;设置了浮动的行内元素可以设置宽高,同时可以按照浮动设置的方向对齐排列盒子。
  2. 浮动的特点:设置了浮动,该元素脱离标准流。元素不占位置。浮动可以进行模式转换(行内块元素)
  3. 使盒子脱离文档流,如果父级盒子没有设置高度,需要被子盒子撑开,那么这时候父级盒子的高度就塌陷了,同时也会造成父级盒子后面的兄弟盒子布局受到影响。如果浮动元素后面还有其他兄弟元素,其他兄弟元素的布局也会受到影响。
  4. 三种清除浮动的特点和影响 伪元素清除浮动:不会新增标签,也不会有其他影响,是当下清除浮动最流行的方法
    overflow:hidden:不会新增标签,但是如果父级元素有定位元素超出父级,超出部分会隐藏,在不涉及父级元素有超出内容的情况,overflow:hidden比较常用,毕竟写法方便简洁
    标签插入法:清除浮动的语法加在新增标签上,由于新增标签会造成不必要的渲染,所以这种方法目前不建议使用

说一说样式优先级的规则是什么?

CSS样式的优先级应该分成四大类:
第一类!important,无论引入方式是什么,选择器是什么,它的优先级都是最高的。
第二类引入方式,行内样式的优先级要高于嵌入和外链,嵌入和外链如果使用的选择器相同就看他们在页面中插入的顺序,在后面插入的会覆盖前面的。
第三类选择器,选择器优先级:id选择器>(类选择器 | 伪类选择器 | 属性选择器 )> (后代选择器 | 伪元素选择器 )> (子选择器 | 相邻选择器) > 通配符选择器 。
第四类继承样式,是所有样式中优先级比较低的。 -第五类浏览器默认样式优先级最低。 使用!important要谨慎,一定要优先考虑使用样式规则的优先级来解决问题。只有在需要覆盖全站或外部 CSS 的特定页面中使用 !important。永远不要在你的插件中使用 !important,永远不要在全站范围的 CSS 代码中使用 !important 优先级的比较指的是相同的样式属性,不同样式属性优先级比较失效。

说一说CSS尺寸设置的单位

一共有五个:

  • px:pixel像素的缩写,绝对长度单位,它的大小取决于屏幕的分辨率,是开发网页中常常使用的单位。
  • em:相对长度单位,在 font-size 中使用是相对于父元素的字体大小,在其他属性中使用是相对于自身的字体大小,如 width。如当前元素的字体尺寸未设置,由于字体大小可继承的原因,可逐级向上查找,最终找不到则相对于浏览器默认字体大小。
  • rem:相对长度单位,相对于根元素的字体大小,根元素字体大小未设置,使用浏览器默认字体大小。
  • vw:相对长度单位,相对于视窗宽度的1%。
  • vh:相对长度单位,相对于视窗高度的1%。 rem应用:在移动端网页开发中,页面要做成响应式的,可使用rem配合媒体查询或者flexible.js实现。原理是通过媒体查询或者flexible.js,能够在屏幕尺寸发生改变时,重置html根元素的字体大小,页面中的元素都是使用rem为单位设置的尺寸,因此只要改变根元素字体大小,页面中的其他元素的尺寸就自动跟着修改。
    vw应用:由于vw被更多浏览器兼容之后,在做移动端响应式页面时,通常使用vw配合rem。原理是使用vw设置根元素html字体的大小,当窗口大小发生改变,vw代表的尺寸随着修改,无需加入媒体查询和flexible.js,页面中的其他元素仍使用rem为单位,就可实现响应式。

说一说BFC

【什么情况下可以让元素产生BFC】
1、float属性不为none
2、position为absolute或fixed
3、display为inline-block、table-cell、table-caption、flex、inline-flex
4、overflow不为visible
【BFC元素具有的特性】
1、在BFC中,盒子从顶部开始垂直地一个接一个排列
2、盒子垂直方向的距离由margin决定。同一个BFC的两个相邻盒子margin会重叠
3、BFC中,margin-left会触碰到border-left(对于从左至右的方式,反之)
4、BFC区域不会与浮动的盒子产生交集,而是紧贴边缘浮动
5、计算BFC高度时,自然会检测浮动的盒子高度
【主要用途】
1、清除内部浮动,父元素设置为BFC可以清除子元素的浮动(最常用overflow:hidden,IE6需加上*zoom:1):计算BFC高度时会检测浮动子盒子高度
2、解决外边距合并问题
3、右侧盒子自适应:BFC区域不会与浮动盒子产生交集,而是紧贴浮动边缘