1.文档流的概念指什么?有哪种方式可以让元素脱离文档流?
- 文档流是文档中可显示对象在排列时所占用的位置,行内元素从左到右,块级元素从上到下显示.
- 浮动(float)
绝对定位(absolute)
固定定位(fixed)
2.有几种定位方式,分别是如何实现定位的,使用场景如何?
- 有四种定位方式分别如下:
static(默认)
当你没有为一个元素(例如div)指定定位方式时,默认为static,也就是按照文档的流式(flow)定位,将元素放到一个合适的地方。所以在不同的分辨率下,采用流式定位能很好的自适合,取得相对较好的布局效果。
一般来说,我们不需要指明当前元素的定位方式是static——因为这是默认的定位方式。除非你想覆盖从父元素继承来的定位系统。
left,top属性对static没有效果,static是靠margin这些定位的。relative(相对定位)
在static的基础上,如果我想让一个元素在他本来的位置做一些调整(位移),我们可以将该元素定位设置为relative,同时指定相对位移(利用top,bottom,left,right)。
有一点需要注意的是,相对定位的元素仍然在文档流中,仍然占据着他本来占据的位置空间——虽然他现在已经不在本来的位置了。absolute(绝对定位)
如果你想在一个文档(Document)中将一个元素放至指定位置,你可以使用absolute来定位,将该元素的position设置为absolute,同时使用top,bottom,left,right来定位。
如果没有定位父元素,位置是相对于body来进行的。
绝对定位会使元素从文档流中被删除,结果就是该元素原本占据的空间被其它元素所填充。fixed(固定定位)
我们知道absolute定位的参照物是“上一个定位过的父元素(static不算)”,那么如果我想让一个元素定位的参照物总是整个文档(viewport),怎么办呢?
答案是使用fixed定位,fixed定位的参照物总是当前的文档。利用fixed定位,我们很容易让一个div定位在浏览器文档的左上,右上等方位。
3.absolute, relative, fixed 偏移的参考点分别是什么?
- absolute 参考static 定位以外的第一个父元素进行定位,会一层层往上找,没有的话将参考body进行定位。
- relative 参考点是自己。
- fixed 参考点是浏览器窗口。
4.z-index 有什么作用? 如何使用?
z-index可以设定定位元素的堆叠顺序。z-index:Nubmer;正负值均可;
数值越大,越在上面。
如下所示:
5.position:relative和负margin都可以使元素位置发生偏移?二者有什么区别?
- 使用position:relative设置偏移时,相对定位的元素仍然在文档流中,仍然占据着他本来占据的位置空间,不影响其他元素的布局。
- 使用负margin设置偏移时,元素会放弃自己原本占据的空间,不但改变了自己的位置,还会影响其他元素的位置。
6.如何让一个固定宽高的元素在页面上垂直水平居中?
先通过绝对定位,让元素其中一个点位于页面中心,然后根据元素的宽高,设定负margin值(其值等于元素宽高的一半),然后就可以使元素在页面上垂直水平居中。
7.浮动元素有什么特征?对其他浮动元素、普通元素、文字分别有什么影响?
- 浮动元素脱离文档流,其原文档流位置会被其他元素顶替;
- 浮动元素之间不会相互重叠,只会按照顺序依次按照顺序排列
对于其他文字,会环绕浮动元素进行分布;
对于行内元素以及块级元素都会移动至元素浮动前的位置;
行内框与一个浮动元素重叠时,其边框背景和内容都在浮动元素上显示;
块级框与一个浮动元素重叠时,其边框和背景在浮动元素之下显示,而内容在其上显示;
8.清除浮动指什么? 如何清除浮动?
- 清除浮动是因为浮动会对正常文档流产生影响,比如文字会围绕浮动元素,为了消除这种影响,所以要清除浮动。
- 清除浮动方式:
clear:none:允许两边有浮动,默认值。
clear:left:不允许左边有浮动。
clear:right:不允许右边有浮动。
clear:both:两边都不允许有浮动。