国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁(yè) web前端 css教程 管理CSS框模型

管理CSS框模型

Feb 17, 2025 am 10:49 AM

CSS 盒模型:理解網(wǎng)頁(yè)布局的關(guān)鍵

理解 CSS 最重要的點(diǎn)在于:一切皆為盒子。更具體地說(shuō),文檔中的每個(gè)元素都會(huì)生成一個(gè)盒子。這個(gè)盒子可以是塊級(jí)盒子,也可以是內(nèi)聯(lián)級(jí)盒子。盒子的類型決定了元素如何影響頁(yè)面布局。CSS 盒模型是一個(gè)用于描述 HTML 元素布局和大小的概念。每個(gè)元素都包含一個(gè)用于其內(nèi)容、填充、邊框和邊距的盒子。這些盒子組合在一起,決定了元素內(nèi)容的布局以及相鄰元素如何與其并排顯示:

Managing the CSS Box Model

元素是否創(chuàng)建盒子以及創(chuàng)建哪種類型的盒子將取決于標(biāo)記語(yǔ)言。CSS 發(fā)展成為一種為 HTML 文檔設(shè)置樣式的方式,因此,許多 CSS 可視化渲染模型都源于 HTML 區(qū)分塊級(jí)元素和內(nèi)聯(lián)元素。默認(rèn)情況下,諸如 <code><p></p><section></section> 之類的元素會(huì)創(chuàng)建塊級(jí)盒子,但 <a></a>、<span></span><em></em> 會(huì)創(chuàng)建內(nèi)聯(lián)盒子。另一方面,SVG 不使用盒模型,因此大多數(shù)與布局相關(guān)的 CSS 屬性都不能與 SVG 一起使用。

塊級(jí)盒子會(huì)創(chuàng)建新的內(nèi)容塊,如圖 4.1 所示。塊級(jí)盒子的渲染是垂直的,根據(jù)其源順序排列,并且(除了表格之外)會(huì)擴(kuò)展以填充其包含元素的可用寬度。這被稱為普通流。塊級(jí)盒子的 display 值為 block、list-item、table 或任何 table-* 值(例如,table-cell)。

Managing the CSS Box Model

圖 4.1. 包含元素(灰色區(qū)域)內(nèi)的 h1、p、ul 和 table 元素的塊級(jí)盒子

相比之下,內(nèi)聯(lián)級(jí)盒子不會(huì)形成新的內(nèi)容塊。相反,這些盒子構(gòu)成塊級(jí)盒子內(nèi)的行。它們水平顯示并填充包含盒子的寬度,如果需要,會(huì)換行,如圖 4.2 所示。內(nèi)聯(lián)級(jí)盒子的 display 值為 inline、inline-blockinline-tableruby。

Managing the CSS Box Model

圖 4.2. 應(yīng)用了 margin: 1em 和 padding: 5px 的內(nèi)聯(lián)盒子的示例

但是盒子的尺寸是如何計(jì)算的呢?這就是事情變得更復(fù)雜的地方。如圖 4.3 所示,盒子尺寸是盒子內(nèi)容區(qū)域、填充寬度和邊框?qū)挾鹊目偤?。邊距寬度為元素?chuàng)建邊距盒子,并影響文檔中的其他元素;但是,邊距寬度對(duì)盒子本身的尺寸沒(méi)有影響。

CSS 盒模型圖示 4

圖 4.3. CSS 2.1 盒模型

例如,一個(gè)具有 width: 300px、padding: 20pxborder: 10px<code><p></p> 元素的計(jì)算寬度為 360 像素。這是其寬度、左右填充和左右邊框?qū)挾葘傩缘目偤?。要?jiǎng)?chuàng)建一個(gè)寬度為 300 像素、填充為 20 像素和邊框?yàn)?10 像素的元素,寬度需要設(shè)置為 240px。大多數(shù)主流瀏覽器就是這樣計(jì)算寬度的。為了解決瀏覽器之間競(jìng)爭(zhēng)模型的部分問(wèn)題,CSS 工作組引入了 box-sizing 屬性。它允許我們選擇自己喜歡的盒模型實(shí)現(xiàn),并在處理響應(yīng)式設(shè)計(jì)時(shí)大大簡(jiǎn)化計(jì)算。

使用 box-sizing 選擇盒模型

box-sizing 屬性在 CSS 基本用戶界面模塊級(jí)別 3 規(guī)范中定義。它有兩個(gè)可能的值:content-boxborder-box。最初,box-sizing 的值為 content-box。使用此值時(shí),設(shè)置元素的 widthheight 屬性會(huì)影響其內(nèi)容區(qū)域的大小。這與 CSS 2.1 規(guī)范中定義的行為相匹配,并且是現(xiàn)代瀏覽器中的默認(rèn)行為(如圖 4.4 所示)。將 box-sizing 的值設(shè)置為 border-box 會(huì)產(chǎn)生一些神奇的效果?,F(xiàn)在,widthheight 的值將應(yīng)用于外邊框邊緣而不是內(nèi)容區(qū)域。邊框和填充繪制在元素框內(nèi),與舊的 Internet Explorer 5.5 行為匹配。讓我們來(lái)看一個(gè)混合使用百分比寬度和 px 單位的填充和邊框的示例:

<div class="wrapper">
  <article>
    <h2>This is a headline</h2>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing ...</p>
  </article>
  <aside>
    <h2>This is a secondary headline</h2>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing ...</p>
  </aside>
</div>

我們的 <article><aside> 元素都應(yīng)用了以下 CSS,這為我們提供了圖 4.5 中所示的布局,其中第一個(gè)元素的寬度為 60%,第二個(gè)元素的寬度為 40%:

article, aside {
  background: #FFEB3B;
  border: 10px solid #9C27B0;
  float: left;
  padding: 10px;
}
article {
  width: 60%;
}
aside {
  width: 40%;
}

Managing the CSS Box Model

圖 4.5. 元素使用 box-sizing: content-box

默認(rèn)情況下,<aside><article>box-sizing 值都為 content-boxborder-widthpadding 值會(huì)為每個(gè)元素的寬度增加 40 像素,這會(huì)大大影響 60%/40% 的分割。現(xiàn)在讓我們將 box-sizing: border-box 添加到 <article><aside> 元素:

article, aside {
  box-sizing: border-box;
}

您可以在圖 4.6 中看到變化:元素具有相同的寬度,但 box-sizing: border-box 意味著寬度包括邊框和填充。因?yàn)?width 屬性應(yīng)用于邊框邊緣而不是內(nèi)容區(qū)域,所以我們的元素現(xiàn)在并排排列。

Managing the CSS Box Model

圖 4.6. 元素使用 box-sizing: border-box

我建議您在項(xiàng)目中使用 box-sizing: border-box。它使生活更輕松,因?yàn)闊o(wú)需計(jì)算寬度值來(lái)考慮填充和邊框的值,并且盒子行為更可預(yù)測(cè)。應(yīng)用 box-sizing: border-box 的最佳方法是使用重置規(guī)則。以下示例來(lái)自 Chris Coyier 的 CSS-Tricks 文章“繼承 box-sizing 可能略微更好——最佳實(shí)踐”:

<div class="wrapper">
  <article>
    <h2>This is a headline</h2>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing ...</p>
  </article>
  <aside>
    <h2>This is a secondary headline</h2>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing ...</p>
  </aside>
</div>

這默認(rèn)情況下將 border-box 大小應(yīng)用于每個(gè)元素,而不會(huì)影響項(xiàng)目現(xiàn)有部分的 box-sizing 行為。如果您知道不會(huì)有依賴于 content-box 行為的第三方或舊版組件,則可以簡(jiǎn)化這些規(guī)則:

article, aside {
  background: #FFEB3B;
  border: 10px solid #9C27B0;
  float: left;
  padding: 10px;
}
article {
  width: 60%;
}
aside {
  width: 40%;
}

管理盒模型只是理解如何創(chuàng)建復(fù)雜布局的一個(gè)要素。

關(guān)于 CSS 盒模型的常見(jiàn)問(wèn)題解答 (FAQ)

(此處省略 FAQ 部分,因?yàn)槠^(guò)長(zhǎng),且與偽原創(chuàng)目標(biāo)不符。FAQ 部分內(nèi)容可以根據(jù)需要自行添加或修改。)

以上是管理CSS框模型的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

什么是'渲染障礙CSS”? 什么是'渲染障礙CSS”? Jun 24, 2025 am 12:42 AM

CSS會(huì)阻塞頁(yè)面渲染是因?yàn)闉g覽器默認(rèn)將內(nèi)聯(lián)和外部CSS視為關(guān)鍵資源,尤其是使用引入的樣式表、頭部大量?jī)?nèi)聯(lián)CSS以及未優(yōu)化的媒體查詢樣式。1.提取關(guān)鍵CSS并內(nèi)嵌至HTML;2.延遲加載非關(guān)鍵CSS通過(guò)JavaScript;3.使用media屬性優(yōu)化加載如打印樣式;4.壓縮合并CSS減少請(qǐng)求。建議使用工具提取關(guān)鍵CSS,結(jié)合rel="preload"異步加載,合理使用media延遲加載,避免過(guò)度拆分與復(fù)雜腳本控制。

外部與內(nèi)部CSS:最好的方法是什么? 外部與內(nèi)部CSS:最好的方法是什么? Jun 20, 2025 am 12:45 AM

thebestapphachforcssdepprodsontheproject'sspefificneeds.forlargerprojects,externalcsSissBetterDuoSmaintoMaintainability andReusability; forsMallerProjectsorsingle-pageApplications,InternaltCsmightBemoresobleable.InternalCsmightBemorese.it.it'sclucialtobalancepopryseceneceenceprodrenceprodrenceNeed

什么是AutoPrefixer,它如何工作? 什么是AutoPrefixer,它如何工作? Jul 02, 2025 am 01:15 AM

Autoprefixer是一個(gè)根據(jù)目標(biāo)瀏覽器范圍自動(dòng)為CSS屬性添加廠商前綴的工具。1.它解決了手動(dòng)維護(hù)前綴易出錯(cuò)的問(wèn)題;2.通過(guò)PostCSS插件形式工作,解析CSS、分析需加前綴的屬性、依配置生成代碼;3.使用步驟包括安裝插件、設(shè)置browserslist、在構(gòu)建流程中啟用;4.注意事項(xiàng)有不手動(dòng)加前綴、保持配置更新、非所有屬性都加前綴、建議配合預(yù)處理器使用。

CSS案例靈敏度:了解重要的 CSS案例靈敏度:了解重要的 Jun 20, 2025 am 12:09 AM

cssismostlycaseminemintiment,buturlsandfontfamilynamesarecase敏感。1)屬性和valueslikeColor:紅色; prenotcase-sensive.2)urlsmustmustmatchtheserver'server'scase,例如

什么是圓錐級(jí)函數(shù)? 什么是圓錐級(jí)函數(shù)? Jul 01, 2025 am 01:16 AM

theconic-Gradient()functionIncsscreatesCircularGradientsThatRotateColorStopSaroundAcentralPoint.1.IsidealForPieCharts,ProgressIndicators,colordichers,colorwheels和decorativeBackgrounds.2.itworksbysbysbysbydefindefingincolordefingincolorstopsatspecificains off.

CSS教程,用于創(chuàng)建粘性標(biāo)頭或頁(yè)腳 CSS教程,用于創(chuàng)建粘性標(biāo)頭或頁(yè)腳 Jul 02, 2025 am 01:04 AM

TocreatestickyheadersandfooterswithCSS,useposition:stickyforheaderswithtopvalueandz-index,ensuringparentcontainersdon’trestrictit.1.Forstickyheaders:setposition:sticky,top:0,z-index,andbackgroundcolor.2.Forstickyfooters,betteruseposition:fixedwithbot

CSS自定義屬性的范圍是什么? CSS自定義屬性的范圍是什么? Jun 25, 2025 am 12:16 AM

CSS自定義屬性的作用域取決于其聲明的上下文,全局變量通常定義在:root中,而局部變量則定義在特定選擇器內(nèi),以便組件化和隔離樣式。例如,定義在.card類中的變量?jī)H對(duì)匹配該類的元素及其子元素可用。最佳實(shí)踐包括:1.使用:root定義全局變量如主題色;2.在組件內(nèi)部定義局部變量以實(shí)現(xiàn)封裝;3.避免重復(fù)聲明同一變量;4.注意選擇器特異性可能引發(fā)的覆蓋問(wèn)題。此外,CSS變量區(qū)分大小寫,且應(yīng)在使用前定義以避免錯(cuò)誤。若變量未定義或引用失敗,則會(huì)采用回退值或默認(rèn)值initial。調(diào)試時(shí)可通過(guò)瀏覽器開(kāi)發(fā)者工

解鎖CSS動(dòng)畫(huà)的潛力:深度潛水 解鎖CSS動(dòng)畫(huà)的潛力:深度潛水 Jun 20, 2025 am 12:14 AM

cssanimationsenhancewebpagesbyimprovinguserexperienceandsiteFunctionallity.1)usetransitionsforsmoothstylechanges,asinthebuttoncolorexample.2)losplyKeyKeyframesforeSfordEteTailEdAnimations.3)

See all articles