關于前端碎碎念2-CSS裝修之盒子模型

      網友投稿 713 2022-05-30

      CSS,層疊樣式表——(Cascading Style Sheets),是能夠真正做到網頁表現與內容分離的一種樣式設計語言。相對于傳統HTML的表現而言,CSS能夠對網頁中的對象的位置排版進行像素級的精確控制,支持幾乎所有的字體字號樣式,擁有對網頁對象和模型樣式編輯的能力,并能夠進行初步交互設計,是目前基于文本展示最優秀的表現設計語言。CSS能夠根據不同使用者的理解能力,簡化或者優化寫法,針對各類人群,有較強的易讀性。

      CSS看似比較繁雜,其實只要掌握了CSS中的盒子模型、定位、以及頁面布局,就基本上掌握了大半啦~這時我們就已經能夠對網頁中各個元素進行精準的排版,做出符合我們意愿的網頁啦!

      關于CSS的各種屬性,我們還是可以參考學習HTML那樣。可以說CSS的屬性幾乎完全是語義化的。我們需要改變邊框,那就是“border”,那我們需要右側邊框做一些改變,那就是“border-right”。很明顯,接下來按照我們的需求還有“右邊框的寬度——border-right-with”,”右邊框顏色——border-right-color”等等等,諸如此類~

      完全就是我們需要什么,只要憑著需求去尋找。~follow me~

      盒模型 (Box Model) 規定了元素框處理元素內容、內邊距、邊框 和 外邊距?的方式

      CSS盒模型是一種樣式HTML元素的方式。每個HTML元素都是帶有邊框,邊距,填充和內容的矩形框。

      以下代碼顯示了元素中每個部分的布局。最外邊是邊距,然后是元素邊界,之后是填充,內容是核心和內部最多。

      盒子模型有兩種:W3C標準模型和IE盒子模型(也叫做怪異模型)

      標準模式:通常在非IE低瀏覽器中。計算方法:占的空間的寬度=內容的寬度+左右內邊距的寬度+左右邊框的寬度+左右外邊 距的寬度(margin + padding+ border+ content)

      模型包括margin、border、padding、content ,元素的width=content的寬度

      怪異模式:怪異模式是指在IE6及更早的IE版本下盒模型的計算方 法:所占空間總寬度=內容+外邊距(?content+margin)

      元素的width=content+padding+border

      他們之間的相同點和不同點其實也很容易看得出來:

      相同點:都是由margin ,border,padding,content組成

      不同點:計算寬/高度方法的不同,標準模式下盒子的總寬度是由margin,padding,border,content的相加得來;怪異模式下:總寬度是由content減去padding、border得來的。

      我個人認為W3C定義盒子模型與IE定義的盒子模型,IE定義的比較合理,元素的寬度應該包含border(邊框)和padding(填充),這個和我們現實生活的盒子是一樣的,W3C也認識到自己的問題了,所以在CSS3中新增了一個樣式box-sizing,包含兩個屬性content-box 和 border-box。

      (1)?content-box??元素的width=content+padding+border

      (2)?border-box? ?元素的width=width(用樣式指定的寬度)

      最終效果如下:

      如果想保持一個盒子的真實占有寬度不變,那么加width的時候就要減padding。加padding的時候就要減width。因為盒子變胖了是災難性的,這會把別的盒子擠下去。

      上面的圖可以看到margin相鄰元素值有重疊??發生外邊距重疊有兩個要件:⑴必須是相鄰的; ? ?⑵垂直方向上的

      1.對于行級元素,margin-top和margin-bottom對于上下元素無效,margin-left和margin-right有效

      2.對于相鄰的塊級元素margin-bottom和margin-top 取值方式

      1) 都是正數: 取最大值

      距離=Math.max(margin-botton,margin-top)

      2) 都是負數: 取最小值

      距離=Math.min(margin-botton,margin-top)

      3)上面是正數,下面是負數或者 上面是負數,下面是正數: 正負相加

      距離=margin-botton+margin-top

      注意:如果一個無內容的空元素,其自身上下邊距也會產生重疊。

      margin:20px; float:left;

      margin:20px; clear:both;

      單個方塊重疊的解決方法:1.浮動。在IE瀏覽器下(IE8未測過),浮動可以解決margin-top以及margin-bottom重疊的問題。而在Firefox火狐瀏覽器或是chrome谷歌瀏覽器下以及opera瀏覽器下,浮動只能解決同方向上的margin重疊問題。不同方向上的margin重疊的問題依舊存在。

      margin:20px; 父標簽overflow:hidden; zoom:1;

      margin:20px; 父標簽overflow:hidden; zoom:1;

      同方向margin重疊的解決方法:1.與清除浮動的方法一致,給外部的box添加清除浮動相同的樣式即可。常用的樣式代碼為:overflow:hidden; zoom:1;但是有問題的是,在IE瀏覽器下(未測試IE8),應用zoom屬性后,似乎發生了水平方向上margin失效的情況。其他表現均一致。

      margin:20px; 父標簽padding:1px;

      margin:20px; 父標簽padding:1px;

      同方向margin重疊的解決方法:2.增加些邊緣屬性。例如padding值,padding:1px;或是border屬性,border:1px solid #cacbcc。此方法在非IE瀏覽器下效果良好,但是在IE瀏覽器下,表現很糟糕。

      外邊距重疊的意義

      外邊距的重疊只產生在普通流文檔的上下外邊距之間,這個看起來有點奇怪的規則,其實有其現實意義。設想,當我們上下排列一系列規則的塊級元素(如段落P)時,那么塊元素之間因為外邊距重疊的存在,段落之間就不會產生雙倍的距離。

      防止外邊距重疊解決方案:

      雖然外邊距的重疊有其一定的意義,但有時候我們在設計上卻不想讓元素之間產生重疊,那么可以有如下幾個建議可供參考:

      外層元素padding代替

      內層元素透明邊框 border:1px solid transparent;

      內層元素絕對定位 postion:absolute:

      外層元素 overflow:hidden;

      內層元素 加float:left;或display:inline-block;

      關于前端的碎碎念2-CSS裝修之盒子模型

      內層元素padding:1px;

      以上建議可根據實際情況來采取。

      曾經一度認為是瀏覽器BUG,汗顏!

      css

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Unity 資源優化方法及移動設備上優化
      下一篇:關于 kubernetes版本升級的一些筆記
      相關文章
      亚洲国产成人影院播放| 国产亚洲人成在线影院| 国产日韩成人亚洲丁香婷婷| 青草久久精品亚洲综合专区| 亚洲老熟女五十路老熟女bbw| 亚洲天堂电影在线观看| 久久精品国产亚洲av麻豆色欲 | 亚洲av激情无码专区在线播放 | 亚洲精品人成网在线播放影院| 亚洲国产成AV人天堂无码| 亚洲福利一区二区三区| 亚洲成人动漫在线观看| 亚洲国产精品久久丫 | 中文字幕在线亚洲精品 | 久久精品国产精品亚洲人人| 亚洲精品一级无码鲁丝片| 国产成人精品亚洲精品| 亚洲色欲一区二区三区在线观看| 久久久久亚洲精品男人的天堂| 国产亚洲精品福利在线无卡一| 亚洲国产无套无码av电影| 亚洲va国产va天堂va久久| 亚洲国产精品久久久久网站| 麻豆亚洲av熟女国产一区二| 亚洲国产精品xo在线观看| 一本色道久久综合亚洲精品蜜桃冫| 亚洲中文字幕无码爆乳app| 亚洲av无码一区二区三区在线播放| 国产成人+综合亚洲+天堂| 国产乱辈通伦影片在线播放亚洲 | 亚洲一区中文字幕在线观看| 色窝窝亚洲av网| 国产亚洲男人的天堂在线观看| 亚洲裸男gv网站| 亚洲精品狼友在线播放| 久久亚洲sm情趣捆绑调教 | 国产av无码专区亚洲av果冻传媒 | 亚洲JLZZJLZZ少妇| 久久精品国产精品亚洲下载| 久久精品国产亚洲av麻豆 | 亚洲天堂中文字幕在线观看|