前端学习任务十

2017-05-25  本文已影响0人  无目的

文档流的概念指什么?有哪种方式可以让元素脱离文档流?

清除浮动指什么? 如何清除浮动? 两种以上方法

<div class="outer">   
 <div class="div1">1</div>    
<div class="div2">2</div>    
<div class="div3">3</div>    
<div class="clear"></div>//添加一个div
</div>

CSS:

.clear{clear:both; height: 0; line-height: 0; font-size: 0}
<div class="outer overflow"> //添加class=overflow   
  <div class="div1">1</div>    
  <div class="div2">2</div>    
  <div class="div3">3</div>   
</div> 

CSS:

.over-flow{overflow: auto; zoom: 1;} //zoom: 1; 是在处理兼容性问题

注意:overflow有三个值,auto;hidden;visible。visible无法清除浮动,hidden虽然可以清除浮动,但是对SEO不友好。

.outer {zoom:1;}    /*==for IE6/7 Maxthon2==*/
.outer :after {clear:both;content:'.';display:block;width: 0;height: 0;visibility:hidden;}   /*==for FF/chrome/opera/IE8==*/

注意:

  1. clear:both;指清除所有浮动,content: '.'; display:block;对于FF/chrome/opera/IE8不能缺少;visibility:hidden;的作用是允许浏览器渲染它,但是不显示出来,这样才能实现清楚浮动。
  2. 下一标签直接清浮动兄弟标签浮动时,在下一标签的属性中直接写入清除clear:both;这样就可以清除以上标签的浮动而不用加入空标签来清除浮动。

有几种定位方式,分别是如何实现定位的,参考点是什么,使用场景是什么?

普通流与相对定位
CSS有三种基本的定位机制:普通流,相对定位和绝对定位
普通流是默认定位方式,在普通流中元素框的位置由元素在html中的位置决定,元素position属性为static或继承来的static时就会按照普通流定位,这也是我们最常见的方式
相对定位比较简单,对应position属性的relative值,如果对一个元素进行相对定位,它将出现在他所在的位置上,然后可以通过设置垂直或水平位置,让这个元素相对于它自己移动,在使用相对定位时,无论元素是否移动,元素在文档流中占据原来空间,只是表现出来的位置会改变

普通流
<div style="border: solid 1px #0e0; width:200px;"> <div style="height: 100px; width: 100px; background-color: Red;"> </div> <div style="height: 100px; width: 100px; background-color: Green;"> </div> <div style="height: 100px; width: 100px; background-color: Red;"> </div> </div>

绝对定位与固定定位
相对定位可以看作特殊的普通流定位,元素位置是相对于它在普通流中位置发生变化,而绝对定位使元素的位置与文档流无关,也不占据文档流空间,普通流中的元素布局就像绝对定位元素不存在一样

绝对定位的元素的位置是相对于距离最近的非static祖先元素
位置决定的。如果元素没有已定位的祖先元素,那么他的位置就相对于初始包含块html来定位demo

因为绝对定位与文档流无关,所以绝对定位的元素可以覆盖页面上的其他元素,可以通过z-index
属性控制叠放顺序,z-index越高,元素位置越靠上。

z-index 有什么作用? 如何使用?

position:relative和负margin都可以使元素位置发生偏移?二者有什么区别

BFC 是什么?如何生成 BFC?BFC 有什么作用?举例说明

Paste_Image.png

在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例

![Uploading P[K785TQ9DZ2%3Y1X@68L]I_454154.png . . .]

2.当一个元素包含在另一个元素中时(假设没有内边距或边框把外边距分隔开),它们的上和/或下外边距也会发生合并
注意:如果不设置 div 的内边距和边框,那么内部 div 的上外边距将与外部 div 的上外边距合并(叠加)。

Paste_Image.png

尽管看上去有些奇怪,但是外边距甚至可以与自身发生合并。
假设有一个空元素,它有外边距,但是没有边框或填充。在这种情况下,上外边距与下外边距就碰到了一起,它们会发生合并:

Paste_Image.png

如果这个外边距遇到另一个元素的外边距,它还会发生合并:

Paste_Image.png

这就是一系列的段落元素占用空间非常小的原因,因为它们的所有外边距都合并到一起,形成了一个小的外边距。
外边距合并初看上去可能有点奇怪,但是实际上,它是有意义的。以由几个段落组成的典型文本页面为例。第一个段落上面的空间等于段落的上外边距。如果没有外边距合并,后续所有段落之间的外边距都将是相邻上外边距和下外边距的和。这意味着段落之间的空间是页面顶部的两倍。如果发生外边距合并,段落之间的上外边距和下外边距就合并在一起,这样各处的距离就一致了。

Paste_Image.png

方式二:给父元素加padding

BAH63H%HGQKPYQIN(AH%SRC.png
上一篇 下一篇

猜你喜欢

热点阅读