HTML5/CSS3-面试集锦

什么是盒子模型?

在我们平时看到的网页中,内部的每一个标签元素都是由几个部分构成的: 内容(content),边框(border),内边距(padding)和外边距(margin)。关于盒子模型重点需要掌握的是IE盒模型和标准盒模型的区别:
两者的区别在于content的不同,IE盒模型的content包括padding、border。

position的四个属性及它们的区别

  • static(静态定位): 默认值,无定位,元素出现在正常的流中。(忽略top/left/right/bottom/z-index声明)
  • fixed(固定定位): 相对于浏览器窗口定位,可通过z-index进行层次分级。
  • absolute(绝对定位): 若存在一个position为relative的父级,则相对父级定位,否则相对浏览器窗口定位,脱离文档流,但其在文档流的位置不再存在。可通过z-index进行层次分级。
  • relative(相对定位): 相对于其正常(原先本身)的位置定位,脱离文档流,但其在文档流的位置依然存在。可通过z-index进行层次分级。

什么是文档流?

将窗体自上而下分成一行行,并按每行中从左至右的顺序排放元素,即为文档流。
只有三种情况会使得元素脱离文档流:浮动、绝对定位和相对定位

z-index属性

z-index,又称为对象的层叠顺序,它用一个整数来定义堆叠的层次,整数值越大,则被层叠在越上面,当然这是指同级元素间的堆叠,如果两个对象的此属性具有同样的值,那么将依据它们在HTML文档中流的顺序层叠,写在后面的将会覆盖前面的。需要注意的是,父子关系是无法用z-index来设定上下关系的,一定是子级在上父级在下。

note:使用static定位或无position定位的元素z-index属性是无效的。

页面导入样式有几种方法? 它们的区别是?

  • link标签引入,当下最常用的一种方式。它属于XHTML标签,除了能加载CSS外,还能定义rel、type、media等属性。
  • @import引入,这种方式是由CSS提供的,只能用于加载CSS。
  • style嵌入方式引入,这种方式的优点是减少页面请求,缺点是只会对当前的页面有效,无法复用导致代码冗余、不利于项目维护。
    note:页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载,且link是XHTML标签,无兼容问题; link支持动态js去控制DOM节点去改变样式,而@import不支持

HTML语义化

根据内容的结构化,选择合适的标签,便于开发者阅读和写出更优雅的代码的同时,让浏览器的爬虫和机器更好的解析。

  • 有利于SEO,有助于爬虫抓取更多的有效信息,爬虫是依赖于标签来确定上下文和各个关键字的权重。
  • 语义化的HTML在没有CSS的情况下也能呈现较好的内容结构与代码结构。
  • 便于开发和维护。
  • 方便其它设备的解析。

##CSS中的单位px,em与rem
OnionSpace!

0%