css基础面试题,附答案

218 阅读2分钟

1.标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的?

CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。

标准盒子模型:宽度=内容的宽度(content)+ border + padding + margin
低版本IE盒子模型:宽度=内容宽度(content+border+padding)+ margin

  • 在标准的盒子模型中,width指content的宽度
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css盒模型</title>
</head>
<style type="text/css">
.content {
	width: 300px;
	height: 400px;
	border: 5px solid #242424;
	padding: 20px;
	background-color: #898989;
}
</style>
<body>
	<div class="content" id="zwkkkk1"></div>
</body>
</html>

  • 在这张图中,我们发现我们设置的300*400出现在了最里面的那个蓝框中,与此同时我们可以发现在这个盒模型中除了我们设置的内容(content),还有margin(外边距)、border(边框)、padding(内边框)

  • 为了正确设置元素在所有浏览器中的宽度和高度,你需要知道盒模型是如何工作的。

    而我们在测试效果图看到的350*450盒子,

    350(width) = 300(content) + 20(padding)* 2 + 5(border)* 2

    450(height)= 400 (content)+ 20(padding)* 2 + 5(border)* 2

box-sizing的使用

box-sizing: content-box 是W3C盒子模型

box-sizing: border-box 是IE盒子模型

  • 只要上面代码style中添加 box-sizing: border-box,结果会有明显的不同
  • 宽度依旧是300px
  • 在IE盒子模型中,width表示content+padding+border这三个部分的宽度

2.CSS选择器有哪些?哪些属性可以继承?

CSS选择符:
	id选择器(#myid)、
   	类选择器(.myclassname)、
    	标签选择器(div, h1, p)、
    	相邻选择器(h1 + p)、
    	子选择器(ul > li)、
    	后代选择器(li a)、
    	通配符选择器(*)、
    	属性选择器(a[rel="external"])、
    	伪类选择器(a:hover, li:nth-child)
  
可继承的属性:font-size, font-family, color

不可继承的样式:border, padding, margin, width, height

优先级(就近原则):!important > [ id > class > tag ]
!important 比内联优先级高

3.CSS优先级算法如何计算?

元素选择符: 1
class选择符: 10
id选择符:100
元素标签:1000

!important声明的样式优先级最高,如果冲突再进行计算。
如果优先级相同,则选择最后出现的样式。
继承得到的样式的优先级最低。