-
浮動會讓父元素高度塌陷
查看全部 -
<p></p> is block element, so its must be in the new line, not at the same line with the image
查看全部 -
消除浮動帶來的影響:
clear:both 與外部有聯(lián)系
BFC/haslayout 封閉的結(jié)構(gòu)
策略:
.fix:after{} 高級瀏覽器
.fix{} IE6,IE7
查看全部 -
zoom:1能夠觸發(fā)haslayout特性,用于兼容IE6/7的清除浮動。但絕大多數(shù)現(xiàn)代瀏覽器不兼容。
以下是老師課程中關(guān)于清除浮動的總結(jié),希望對你有幫助:
清除浮動的兩種基本方法:1、在高度塌陷的父元素底部插入具有clear:both聲明的元素,比如在html中插入一個多余的塊級元素div,或者插入不兼容IE6/7的CSS偽元素after。這種方法與外界有接觸,可能導(dǎo)致頂部margin重疊。2、觸發(fā)BFC/haslayout這兩種特性。與外界隔絕,沒有margin重疊問題。
BFC,Block formatting context是高級瀏覽器特有的概念,具有包裹性。不能應(yīng)用于所有場景。
haslayout是IE6/7私有的概念。
下面是部分能夠觸發(fā)這兩種特性的屬性:?float:left/right、position:absolute/fixed、overflow:hidden/scroll (IE7+)、display:inline-block/table-cell(IE8+)、width/height/zoom:1/… (IE6/IE7)。
權(quán)衡以上問題后的清除浮動策略:
.clearfix:after { content: ''; display: block; height: 0; overflow: hidden; clear: both; }--使用CSS偽元素after,插入一個內(nèi)容為空、高度為0的塊級元素來clear,并且用overflow的hidden觸發(fā)了BFC。
.clearfix { *zoom: 1; }--兼容IE6/7的寫法,觸發(fā)haslayout。
查看全部 -
IE7不知道還用不用,
查看全部 -
? 浮動的特性
查看全部 -
浮動會讓inline元素block化
查看全部 -
overflow:hidden 作用是超出區(qū)域則隱藏,不出現(xiàn)滾動條,作用于父元素。如果當(dāng)前div沒有高寬限制,則隨內(nèi)邊的容器而變化。
clear:both 就是清除浮動,作用于子元素。http://www.cnblogs.com/socool-hu/p/5633110.html
查看全部 -
clear會產(chǎn)生margin重疊而bfc不會,bfc會把包含內(nèi)的所有css屬性作用與本身,不對外部造成影響,外部margin-top不會被其影響,而clear如果設(shè)置margin-bottom的話,會對外部其他元素造成影響,最明顯的就是margin重疊,
display:table之后,標(biāo)簽并沒有變成table,而是有了table類似的屬性,比如自動包裹內(nèi)容,自成一行等等。但是畢竟還不是table,所以和table的樣式?jīng)]有關(guān)系。
查看全部 -
浮動的本質(zhì)是文字環(huán)繞,圖片設(shè)置浮動,父元素高度塌陷,由于具有“包裹性”,實體依舊存在,與文字處于同一文檔流中,不會與文字重疊,形成文字包裹圖片的形式
查看全部 -
【浮動與兩側(cè)皆自適應(yīng)的流體布局】
/* 下面這個是固定布局寫法 */
.mib_cell { display: table-cell; *display: inline-block; width: 2000px; *width: auto; }
display:table-cell會觸發(fā)BFC,作用是清除浮動影響?
*號的作用是用于IE6/7的瀏覽器?
浮動與兩側(cè)皆自適應(yīng)的流體布局,核心代碼?
左側(cè)div: float: left; ? 右側(cè)div: display: table-cell; width: 9999px; <---沒錯width就是 9999px
【浮動與單側(cè)尺寸固定的流體布局】
/* 下面這個是固定布局寫法 */
.mib_feed_fixed { width: 484px; float: left; }
/* 下面這個是流體布局寫法 */
.mib_feed_flow { display: table-cell; *display: inline-block; width: 2000px; *width: auto; }
【浮動與右側(cè)尺寸固定的流體布局】
/* 下面這個是右浮動,改變DOM位置的流體布局寫法 */
.mib_head_r { width: 56px; float: right; }
.mib_feed_flow { margin-right: 76px; }
/* 下面這個是左浮動,不改變DOM位置的流體布局寫法 */
.mib_full_float { width: 100%; float: left; }
.mib_head_l { width: 56px; float: left; margin-left: -56px;}
查看全部 -
清除浮動帶來的影響:
.clearfix:after { content:""; display:table; clear:both;}
.clearfix { *zoom:1;}
應(yīng)用在包含浮動子元素的父級元素上
兩種方法的差異: clear:與外界還有聯(lián)系,例如會產(chǎn)生margin重疊的效果?
BFC/haslayout(應(yīng)用于父元素):封閉,里面的聲明不會對外界產(chǎn)生影響,例如float不會出現(xiàn)margin重疊,但也有缺陷,無法使用所有瀏覽器
查看全部 -
float去空格:
<script>
var trigger = document.getElementById("trigger"),
? ? ?buttons = document.getElementsByTagName("button");
var length = buttons.length;
if (trigger && length > 0) {
????trigger.onclick = function() {
????????for (var index = 0; index < length; index += 1) {
????????????buttons[index].style["cssFloat" in trigger.style? "cssFloat": "styleFloat"] = "left";
????????}
????};
}
</script>
查看全部 -
第一個是使用了"clear:both"但是它會與margin重疊,則margin-botttom無法發(fā)揮作用;
第二個是使用了“overflow:hidden”使得元素BFC化,包裹好了,不影響margin-bottom發(fā)揮作用查看全部 -
html block 水平元素底部<div></div>
.clearfix:after
查看全部
舉報