html5+css3常见面试题(一)

html-css06

html5+css3常见面试题(一),第1张

1. Doctype作用? 严格模式与混杂模式如何区分?它们有何意义?

1.声明位于文档中的最前面,处于 标签之前。告知浏览器的解析器,用什么文档类型 规范来解析这个文档。

2.严格模式的排版和 JS 运作模式是  以该浏览器支持的最高标准运行。

3.在混杂模式中,页面以宽松的向后兼容的方式显示。模拟老式浏览器的行为以防止站点无法工作。

4.DOCTYPE不存在或格式不正确会导致文档以混杂模式呈现。

2.

水平居中的text-align:center 和 margin:0 auto

这两种方法都是用来水平居中的,前者是针对父元素进行设置而后者则是对子元素。他们起作用的首要条件是子元素必须没有被float影响,否则一切都是无用功。margin:0 auto

也可以被写成margin:0 auto 0 auto。不能理解的童鞋们可以自己去找找关于css缩写的内容。

垂直居中的line-height

什么?!margin在垂直居中里不起作用了?显然事情确实如此,我们仅有margin:0 auto的用法而没有auto 0的情况。至于line-height,他也是作用在父元素上,当他的值等于父元素的height值时

,内部的文字就会自动的垂直居中了。此处好像仅仅只能是文字而已,遗憾。

万能的position大法

这个方法可以说真的是万能的。当你为一个元素无法居中而困扰的时候,可以果断的使用他,而且几乎没有后遗症,绝对是前端工程师们居家旅行必备的手段之一。

具体的做法很简单,首先给父元素写上positon:relative,这么做是为了给子元素打上position:absolute的时候不会被定位到外太空去。接下去,写上子元素的height和width,这个似乎是必须的

,某些浏览器在解析的时候如果没有这2个值的话会出现意想不到的错位。接着就是整个方法的核心,给子元素再打上top:50%left:50%以及margin-top:一半的height值的的负数

margin- left:一半的weight值的负数。整理一下之后,可能你会给你的子元素写上这样的css(当然,父元素也要先写上width和height)

{width:100pxheight:80pxposition:absolutetop:50%left:50%margin-left:50pxmargin-top:40px}

接下去就刷新页面吧,你的子元素已经是居中显示了。

使用这个方法的好处在于无论你是什么形式的内容都可以马上居中,而缺点就是必须对元素有确定的宽高值,否则的话可能就需要通过javascript来进行一些小计算了。

nth-child()括号里面的顺序号是指“兄弟姐妹”之间的序号,并不是整个家族不分辈分的序号。在你的代码中,第一个div和第二个div是兄弟关系,它们的序号是1和2,所以它们分别获得了第1个和第2个样式,而3-1和3-2这两个div则是前两个div的“侄子”(它们外面所套的那个div则是它们的“父亲”),所以它们的序号会重新分配为1和2,并分别匹配第1和第2个样式。听懂没有?

改成这样就行:

12345<style>body>div:nth-child(1) {background:#78caf1

/*蓝*/}body>div:nth-child(2) {background:#ffc04c

/*橙*/}div>div:nth-child(1) {background:#33bf51

/*绿*/}</style>