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

管理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-itemtable 或任何 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-block、inline-tableruby。

Managing the CSS Box Model

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

但是盒子的尺寸是如何計(jì)算的呢?這就是事情變得更複雜的地方。如圖 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ī)範(fàn)中定義。它有兩個(gè)可能的值:content-boxborder-box。最初,box-sizing 的值為 content-box。使用此值時(shí),設(shè)置元素的 widthheight 屬性會(huì)影響其內(nèi)容區(qū)域的大小。這與 CSS 2.1 規(guī)範(fàn)中定義的行為相匹配,並且是現(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-box。 border-widthpadding 值會(huì)為每個(gè)元素的寬度增加 40 像素,這會(huì)大大影響 60%/40% 的分割?,F(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)建複雜佈局的一個(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)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)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脫衣器

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)

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

Autoprefixer是一個(gè)根據(jù)目標(biāo)瀏覽器範(fàn)圍自動(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教程,用於創(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

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

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

CSS自定義屬性的範(fàn)圍是什麼? CSS自定義屬性的範(fàn)圍是什麼? 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.避免重複聲明同一變量;4.注意選擇器特異性可能引發(fā)的覆蓋問(wèn)題。此外,CSS變量區(qū)分大小寫,且應(yīng)在使用前定義以避免錯(cuò)誤。若變量未定義或引用失敗,則會(huì)採(cǎi)用回退值或默認(rèn)值initial。調(diào)試時(shí)可通過(guò)瀏覽器開(kāi)發(fā)者工

CSS教程,用於創(chuàng)建加載旋轉(zhuǎn)器和動(dòng)畫 CSS教程,用於創(chuàng)建加載旋轉(zhuǎn)器和動(dòng)畫 Jul 07, 2025 am 12:07 AM

創(chuàng)建CSS加載旋轉(zhuǎn)器的方法有三種:1.使用邊框的基本旋轉(zhuǎn)器,通過(guò)HTML和CSS實(shí)現(xiàn)簡(jiǎn)單動(dòng)畫;2.使用多個(gè)點(diǎn)的自定義旋轉(zhuǎn)器,通過(guò)不同延遲時(shí)間實(shí)現(xiàn)跳動(dòng)效果;3.在按鈕中添加旋轉(zhuǎn)器,通過(guò)JavaScript切換類來(lái)顯示加載狀態(tài)。每種方法都強(qiáng)調(diào)了設(shè)計(jì)細(xì)節(jié)如顏色、大小、可訪問(wèn)性和性能優(yōu)化的重要性,以提升用戶體驗(yàn)。

CSS教程專注於移動(dòng)優(yōu)先設(shè)計(jì) CSS教程專注於移動(dòng)優(yōu)先設(shè)計(jì) Jul 02, 2025 am 12:52 AM

Mobile-firstCSSdesignrequiressettingtheviewportmetatag,usingrelativeunits,stylingfromsmallscreensup,optimizingtypographyandtouchtargets.First,addtocontrolscaling.Second,use%,em,orreminsteadofpixelsforflexiblelayouts.Third,writebasestylesformobile,the

如何將整個(gè)網(wǎng)格集中在視口中? 如何將整個(gè)網(wǎng)格集中在視口中? Jul 02, 2025 am 12:53 AM

要讓整個(gè)網(wǎng)格佈局在視口中居中顯示,可通過(guò)以下方法實(shí)現(xiàn):1.使用margin:0auto實(shí)現(xiàn)水平居中,需設(shè)定容器固定寬度,適用於固定佈局;2.利用Flexbox在外層容器設(shè)置justify-content和align-items屬性,結(jié)合min-height:100vh可實(shí)現(xiàn)垂直和水平居中,適合全屏展示場(chǎng)景;3.直接使用CSSGrid的place-items屬性在父容器上快速居中,簡(jiǎn)潔且現(xiàn)代瀏覽器支持良好,同時(shí)需確保父容器有足夠高度。每種方式均有適用場(chǎng)景和限制,根據(jù)實(shí)際需求選擇合適的方案即可。

如何創(chuàng)建本質(zhì)上響應(yīng)的網(wǎng)格佈局? 如何創(chuàng)建本質(zhì)上響應(yīng)的網(wǎng)格佈局? Jul 02, 2025 am 01:19 AM

要?jiǎng)?chuàng)建內(nèi)在響應(yīng)式網(wǎng)格佈局,核心方法是使用CSSGrid的repeat(auto-fit,minmax())模式;1.設(shè)置grid-template-columns:repeat(auto-fit,minmax(200px,1fr))讓瀏覽器自動(dòng)調(diào)整列數(shù)並限制每列最小和最大寬度;2.使用gap控制格子間距;3.容器應(yīng)設(shè)為相對(duì)單位如width:100%、配合box-sizing:border-box避免寬度計(jì)算錯(cuò)誤並用margin:auto居中;4.可選設(shè)置行高與內(nèi)容對(duì)齊方式提升視覺(jué)一致性,如row

See all articles