掙扎了好久,始終沒有決定要不要寫博客,心里有幾個顧慮一是我是小白,我寫的文章有沒有人看?二是我是小白,我寫的文章假如存在諸多錯誤,理解的不對發表上去再去誤導別人。三是寫一篇文章費時費力。但是我現在想明白了,我不寫技術大牛的文章,就寫菜鳥的學習型文章。我寫文章是為了我自己,不是為了別人。有錯誤正好別人提出改正。
寫文章有幾個好處,一來可以理清思緒,對於我這個思維混亂的人來說是再好不過的方法了,二來可以記錄學習知識,方便以后忘記了可以回來看看。三是已積累起來的文章可以讓自己很有成就感。
文章多是學習別人文章的總結和自己的個人見解,所以實際上有些認識可能是不准確的,歡迎大神們指點,也歡迎交流。
Float屬性是css必會屬性之一,但是它看上去簡單,卻有很深的奧義。看了張鑫旭的兩篇文章,對於float的理解提高了一個層次。
http://www.zhangxinxu.com/wordpress/?p=583 CSS float浮動的深入研究、詳解及拓展(一)
http://www.zhangxinxu.com/wordpress/?p=594 CSS float浮動的深入研究、詳解及拓展(二)
以下是我對於他的文章寫的個人總結和一些認識。
再講float屬性之前,必須要知道高度的概念和display:inline-block的包裹性
高度由兩個css模型產生:
一個是box模型(content的height+padding+margin),這個是最基礎的大家應該都是知道;
一個是line box模型(line-height,內部的最高部分決定),這個里面就很深奧,讓我學習了一番。
還要說一下display:inline-block的包裹性,即設置了這個屬性,該元素擁有block的屬性可以設置寬和高了,也用擁有了行內元素的屬性,寬和高將根據內容自適應。這里強調的是他后面的屬性根據內容自適應寬和高的特性。
一般情況下一個塊級元素,沒有設置display:inline-block這個屬性,元素也沒有設置寬度的話,元素的寬應該是繼承父元素的寬度,如果是行內元素,沒有設置display:inline-block這個屬性,它的寬度和高度是由內容自適應,但是設置高度和寬度是不管用的。
display:inline-block結合了行內和塊級元素,你不設置寬高,我就按內容自適應,你設置了我就按你設置的走。
那么下面我們來說浮動(float)
一、浮動的本質是用來文字環繞的,像分欄布局和列表排列都可用其它屬性實現。
二、浮動是一個帶有方位的display:inline-block;所以設置浮動,就會有默認的display:inline-block;這個屬性。不需要再寫display了;設置display:inline-block帶來的各種效果,比如高寬自適應而不是繼承父元素寬。可以設置高和寬。他的前后不會像塊級元素默認換行(但是它沒有高度)。
三、浮動會破壞inline-box,產生兩個結果。①(無inlinebox->無line-box->無高度)。②圖片與文字無法同行顯示。這兩個結果恰恰是文字環繞的所必需的。
實踐與解釋
文字多了,你看就是所謂的環繞效果吧
Float:left|right;與position:absolute;的一些區別
Float:left|right;屬性與position:absolute屬性都具有包裹性,兩者都會使元素脫離文檔流,但是,與absolute不同的是:float 的元素還會在文檔流上占據一個位置。position:absolute的元素是根據最近的非static的父元素定位,如果沒有,則根據最初的包含塊定義(一般是body),關於float,也會脫離文檔流,會被放置在其容器的左邊或右邊。
關於下列問題
1關於li標簽水平排列等一系列float應用及原理
2浮動會破壞自己,影響別人
① 浮動產生bug的原因
② 清楚浮動的方法與本質
3浮動布局的替代效果
還沒有具體學習等學習之后再好好總結。