1. 程式人生 > >視覺化格式模型(一) 盒模型與外邊距疊加

視覺化格式模型(一) 盒模型與外邊距疊加

可以參考《精通CSS 高階WEB標準解決方案》第三章。

視覺化格式模型

視覺化格式模型要掌握的3個最重要的CSS概念是 浮動、定位、盒模型。 這些概念控制在頁面上安排和顯示元素的方式, 形成CSS的基本佈局。

主要學習內容:

  • 盒模型的複雜性和特點
  • 如何以及為什麼使用外邊距
  • 絕對定位和相對定位之間的差異
  • 浮動和清理是如何工作的

1、盒模型概念

盒模型是CSS的基石之一, 它指定元素如何顯示以及(在某種程度上)如何相互互動。 頁面上的每個元素被看做一個矩形框, 這個框由元素的內容、 內邊距、 邊框和外邊距組成。如下圖所示:

如果給元素新增背景, 背景會應用於內容和內邊距組成的區域

。 新增邊框會在內邊距的區域外加一條線。 這些線可以由多種樣式, 如實線、 虛線或點線。 外邊距是透明的, 一般使用它控制元素之間的間隔。

CSS2.1 包含outline屬性。 與border不同, 輪廓繪製在元素框之上。所以它們不影響元素的大小或定位。

在CSS中, width和height指的是元素內容區域的寬度和高度。 增加內邊距、邊框和外邊距不會影響內容區域尺寸, 但是會增加元素框的總尺寸。

內邊距、邊框、外邊距可以應用於一個元素的所有邊, 也可以應用於單獨的邊。 外邊距也可以為負值。

1.1 IE和盒模型

IE的早期版本, 包括IE6, 在混雜模式中使用自己的非標準盒模型。 在CSS中, 這些瀏覽器的width、height屬性不是內容的寬/高, 而是內容、 內邊距和邊框的寬/高總和。

這實際上很有道理, 現實中的框具有固定尺寸, 而內邊距是放在框裡面的。 新增的內邊距越多, 給內容留下的空間越少。 儘管符合邏輯, 但是這些IE版本不符合規範。

有幾個辦法可以解決這個問題, 但是目前最好的解決辦法是迴避這個問題。 也就是說, 如果已經為元素指定了寬/高, 就不要給元素新增具有指定寬度的內邊距, 而是將內邊距或外邊距新增到元素的父元素或子元素。

1.2 外邊距疊加

外邊距疊加是一個相當簡單的概念。 但是,在實踐中對網頁進行佈局時, 它會造成許多混淆。 簡單的說, 當兩個或更多個垂直邊距相遇時, 它們將形成一個外邊距。這個外邊距的高度等於兩個發生疊加的外邊距的高度中的較大者。

一般來說, 垂直外邊距疊加有三種情況:

  • 元素自身疊加
  • 相鄰元素疊加
  • 包含(父子)元素疊加
元素自身疊加

我們知道, 盒模型是 內容→內邊距→邊框→外邊距 這樣逐層包含的結構。 當元素沒有內容(即空元素)、內邊距、邊框時, 它的上下邊距就相遇了, 即會產生疊加(垂直方向)。 當為元素新增內容、 內邊距、 邊框任何一項, 就會取消疊加。

相鄰元素疊加

這個比較好理解, 相鄰的兩個元素, 如果它們的上下邊距相遇,即會產生疊加。

包含(父子)元素疊加

包含元素的外邊距隔著 父元素的內邊距和邊框, 當這兩項都不存在的時候, 父子元素垂直外邊距相鄰, 產生疊加。 新增任何一項即會取消疊加。

只有普通文件流中塊框的垂直外邊距才會發生外邊距疊加。 行內框、 浮動框或絕對定位框之間的外邊距不會疊加。

有關普通文件流、 浮動、 定位等概念會在下一節 定位裡介紹。

相關推薦

視覺格式模型 模型外邊疊加

可以參考《精通CSS 高階WEB標準解決方案》第三章。 視覺化格式模型 視覺化格式模型要掌握的3個最重要的CSS概念是 浮動、定位、盒模型。 這些概念控制在頁面上安排和顯示元素的方式, 形成CSS的基本佈局。 主要學習內容: 盒模型的複雜性和特點 如何以及為什麼使用外邊距 絕對定位

基於IE核心的多媒體檔案視覺程式實現

目的 前回書說道,在訊號處理或演算法研究中,資料的視覺化可以直觀地展現和判別結果的合理性。如果只允許用C語言做開發,或要將C語言所做演算法的輸出資料進行展示,又不許用MATLAB、Python所帶的視覺化工具,那麼,最快捷而直接的辦法就是將資料以文字方式輸出,再

CNN視覺技術總結--特徵圖視覺

導言:     在CV很多方向所謂改進模型,改進網路,都是在按照人的主觀思想在改進,常常在說CNN的本質是提取特徵,但並不知道它提取了什麼特徵,哪些區域對於識別真正起作用,也不知道網路是根據什麼得出了分類結果。      &nbs

css的佈局模型—-流動模型

CSS包含3種基本的佈局模型,分別是: 1.流動模型(Flow) 2.浮動模型 (Float) 3.層模型   (Layer) 我們先來說說流動模型,流動(Flow)是預設的網頁佈局模式。也就是說網頁在預設狀態下的 HTML 網頁元素都是根據流動模型來分佈網頁內容的。 流動

模型

medium ron ash 什麽是 外邊距 add 距離 常見 width 一。什麽是盒模型  padding(內邊距,一個盒子裏的邊距離內容的距離,上下左右)   margin(外邊距,兩個盒子之間的距離)   border(盒子的邊框)   內填充,外邊距,邊框都有四

python資料視覺seaborn—— 整體樣式調色盤

很久之前對seaborn有過一些涉及但是沒有深入探究,這次有趁著有資料視覺化的需求,就好好學一學 Seaborn其實是在matplotlib的基礎上進行了更高階的API封裝,從而使得作圖更加容易,在大多數情況下使用seaborn就能做出很具有吸引力的圖,為資料分析提供了很大的便利性。但是

MATLAB R2018a 統計和機器學習工具箱學習 描述性統計視覺

MATLAB R2018a 統計和機器學習工具箱學習(一) 描述性統計與視覺化 該內容被分為三個部分: 一、資料管理(Managing Data);       二、描述性統計(Descriptive Statistics); 

《CSS3實戰》筆記--彈性模型

通過閱讀和學習書籍《CSS3實戰》總結 《CSS3實戰》/成林著.—北京機械工業出版社2011.5 彈性盒模型(Flexible Box Moudle),該模型用於決定元素在盒子中的分佈方式以及處理盒子的可用空間。這與XUL(Firefox瀏覽器

隱馬爾可夫模型

回溯 一是 描述 數學 函數 觀測 tran 隱藏 之間 隱馬爾可夫模型   隱馬爾可夫模型(Hidden Markov Model,HMM)是一種統計模型,廣泛應用在語音識別,詞性自動標註,音字轉換,概率文法等各個自然語言處理等應用領域。經過長期發展,尤其

並發模型——Future模式

消費者 新的 ring 代理模式 while color 模型 框架 exception 多線程開發可以更好的發揮多核cpu性能,常用的多線程設計模式有:Future、Master-Worker、Guard Susperionsion、不變、生產者-消費者 模式; j

Spark MLlib模型 支持向量機【Support Vector Machine】

ssi p s ext edi sgd 訓練集 turn cati eight 目錄   支持向量機原理   支持向量機代碼(Spark Python) 支持向量機原理   待續... 返回目錄 支持向量機代碼(Spark Pytho

Javascript模塊編程:模塊的寫法

特點 計數 效果 pre pat 寫法 nta depth lan Javascript模塊化編程,已經成為一個迫切的需求。理想情況下,開發者只需要實現核心的業務邏輯,其他都可以加載別人已經寫好的模塊。 但是,Javascript不是一種模塊化編程語言,它不支持"類"(cl

如何“謹慎”使用“數據驅動”的風控模型-- 數據篇

數據驅動 數據分析 人工智能 數據質量 如何“謹慎”使用“數據驅動”的風控模型(一)-- 數據篇 人工智能時代來臨,2017年“數據驅動”在整個信貸生態圈熱度陡增,無論是金融機構、助貸機構、征信機構、大數據廠商等,無不在各大論壇、峰會、沙龍、融資中宣傳各自“數據驅動”的理

Python圖像處理庫PIL中圖像格式轉換

http 分享圖片 r+ name 結果 針對 浮點 code 技術 在數字圖像處理中,針對不同的圖像格式有其特定的處理算法。所以,在做圖像處理之前,我們需要考慮清楚自己要基於哪種格式的圖像進行算法設計及其實現。本文基於這個需求,使用python中的圖像處理庫PIL來實現不

java反序列原理-Demo

51cto n) www. fault clas ack 保存 發現 auto java反序列化原理-Demo(一) 0x00 什麽是java序列化和反序列? Java 序列化是指把 Java 對象轉換為字節序列的過程便於保存在內存、文件、數據庫中,ObjectOutput

vue地圖視覺 ArcGIS篇3

ArcGIS for javascript開發心得 本次例項中採用ArcGIS for javascript3.24版本,由於版本3與4在API等存在較大區別,就不一一列舉,詳細區別看 [官方解釋] arcgis for js4.7版本能夠自動建立layer、graphs等類,而不像3

Glow-流生成模型

      最近最火的生成模型應該就是Glow了,它是基於NICE和Density Estimation Using Real NVP產生的。雖然流生成模型(NICE)和GAN都是在2014年產生的,但很明顯GAN的流行程度要遠遠超過流生成模型。

PE檔案格式學習:概述

1.PE檔案簡介 PE檔案格式是Windows系統中應用最廣泛的檔案格式之一,我們常見的可執行檔案.exe、動態連結庫.dll以及驅動檔案.sys等都是PE檔案格式的。 可以通過十六進位制工具如010editor檢視PE檔案,可以看到PE檔案都有一個共同的特點,就是它們的最開頭都是4D5A,也就是ASCI

深度學習——deepNN模型實現攝像頭實時識別人臉表情C++和python3.6混合程式設計

一、背景介紹 最近需要做人臉識別方向的東西,就被分配了新的任務,利用攝像頭實時檢測人臉表情,並製作成一個小軟體,這裡當然要用C++實現,並用C++做成一個介面。 由於博主之前用python做過類似的小程式,因此這裡的模型實現主要採用了python,為了用C++實現介面,這裡採用C++呼叫py

基於IE核心的多媒體檔案視覺程式實現

文章目錄 使用命令列引數 命令列引數獲取和解析程式碼 幫助系統 執行測試 WSEE的功能還不只如此 現在的結果 上回說道,我們需要使用命令列引數方法將要瀏覽的檔名傳入wsee.exe 程式,然後由