- 1. 元素类型
- 2. 盒模型
- 3. 定位(position)
- 4. 浮动,以及清浮动
- 5. CSS的居中问题
- 6. 描述
z-index
和叠加上下文是如何形成的 - 7. CSS规则继承,CSS选择器
- 8. CSS选择器的优先级
- 9. CSS Sprite的使用
- 10.如何居中div?如何居中一个浮动元素
@(13-02-前端笔记)
1. 元素类型
详细请参考附件CSS的几个核心概念 + 块级元素 + 内联元素 + 延伸一下关于display的总结,以及CSS3中的弹性盒模型知识。 + 更加深入的是BFC规范。
2. 盒模型
解释一下你对盒模型的理解,以及如何在 CSS 中告诉浏览器使用不同的盒模型来渲染你的布局。
请解释一下 * { box-sizing: border-box; }
的作用, 并且说明使用它有什么好处?
-
有两种, IE 盒子模型、标准 W3C 盒子模型; IE的content部分包含了 border 和 pading;在CSS中使用box-sizing来控制。content-box和border-box(IE标准),默认下是标准模式。
-
盒模型: 内容(content)、填充(padding)、边框(border)、边界(margin) .
box-sizing
属性主要用来控制元素的盒模型的解析模式。默认值是content-box
。content-box
:让元素维持W3C的标准盒模型。元素的宽度/高度由border + padding + content
的宽度/高度决定,设置width/height
属性指的是content
部分的宽/高border-box
:让元素维持IE传统盒模型(IE6以下版本和IE6~7的怪异模式)。设置width/height
属性指的是border + padding + content
加起来的和。- 标准浏览器下,按照W3C规范对盒模型解析,一旦修改了元素的边框或内距,就会影响元素的盒子尺寸,就不得不重新计算元素的盒子尺寸,从而影响整个页面的布局。
3. 定位(position)
详细请见附件CSS定位剖析
4. 浮动,以及清浮动
float,clear,详细的参考附件浮动问题,解释下浮动和它的工作原理
浮动的框可以向左或向右移动,直到他的外边缘碰到包含框或另一个浮动框的边框为止。由于浮动框不在文档的普通流中,所以文档的普通流的块框表现得就像浮动框不存在一样。浮动的块框会漂浮在文档普通流的块框上。可以再详细一点(详细的可以参考一下浮动的专题知识。)
a.浮动元素引起的问题和解决办法? 浮动元素引起的问题: 1. 父元素的高度无法被撑开,影响与父元素同级的元素 2. 与浮动元素同级的非浮动元素(内联元素)会跟随其后 3. 若非第一个元素浮动,则该元素之前的元素也需要浮动,否则会影响页面显示的结构
解决方法:
使用CSS
中的clear:both
;属性来清除元素的浮动可解决2、3问题,对于问题1,添加如下样式,给父元素添加clearfix
样式:
.clearfix:after{content: ".";display: block;height: 0;clear: both;visibility: hidden;}
.clearfix{display: inline-block;} /* for IE/Mac */
b.列举不同的清除浮动的技巧,并指出它们各自适用的使用场景 清除浮动的几种方式,各自的优缺点 1. 使用空标签清除浮动 clear:both(理论上能清楚任何标签,增加无意义的标签) 2. 使用overflow:auto(空标签元素清除浮动而不得不增加无意代码的弊端,,使用zoom:1用于兼容IE) 3. 浮动外部元素。但是会产生全局浮动,很明显是不合理的。 4. 为父元素设置高度,但是不是那个地方都可以用高度来解决的。 5. 是用afert伪元素清除浮动,代码如下:
.clearfix{*zoom:1}(针对IE的)
.clearfix:after{content:".";display:block;height:0;font-size:0;clear:both;visibility:hidden}
5. CSS的居中问题
详见附件之CSS居中问题
6. 描述z-index
和叠加上下文是如何形成的
见定位position详解
7. CSS规则继承,CSS选择器
附件之CSS3新应用
8. CSS选择器的优先级
- 选择器的种类 1.id选择器( # myid); 2.类选择器(.myclassname); 3.标签选择器(div, h1, p); 4.相邻选择器(h1 + p); 5.子选择器(ul > li); 6.后代选择器(li a); 7.通配符选择器( * ); 8.属性选择器(a[rel = “external”]); 9.伪类选择器(a: hover, li:nth-child);
- 可继承的样式: font-size font-family color;
- 不可继承的样式:border padding margin width height ;
- 优先级就近原则,同权重情况下样式定义最近者为准;
- 载入样式以最后载入的定位为准;其中style>内嵌style样式>外部样式>浏览器默认样式,最后形成一个新的虚拟的样式表,最终还会根据js渲染后,形成计算后的样式。
- 优先级为:!important(最高) >style(1000)> id(100) > class、伪类、属性选择器(10) > tag、伪元素选择(1)>通用符*(0)>浏览器默认的样式。(最低) 其中!important 比内联优先级高。
9. CSS Sprite的使用
见网站性能优化
10.如何居中div?如何居中一个浮动元素
给div设置一个宽度,然后添加margin:0 auto; 居中一个浮动元素,确定容器的宽高 宽500 高 300 的层设置层的外边距,其实就是绝对定位居中的问题。