亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁(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-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ì)算的呢?這就是事情變得更復(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-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)建復(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教程,用于創(chuàng)建加載旋轉(zhuǎn)器和動(dòng)畫(huà) CSS教程,用于創(chuàng)建加載旋轉(zhuǎn)器和動(dòng)畫(huà) 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)畫(huà);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瀏覽器兼容性問(wèn)題和前綴 解決CSS瀏覽器兼容性問(wèn)題和前綴 Jul 07, 2025 am 01:44 AM

處理CSS瀏覽器兼容性和前綴問(wèn)題需理解瀏覽器支持差異并合理使用廠商前綴。1.了解常見(jiàn)問(wèn)題如Flexbox、Grid支持不一,position:sticky失效,動(dòng)畫(huà)表現(xiàn)不同;2.查閱CanIuse確認(rèn)特性支持情況;3.正確使用-webkit-、-moz-、-ms-、-o-等廠商前綴;4.推薦使用Autoprefixer自動(dòng)添加前綴;5.安裝PostCSS并配置browserslist指定目標(biāo)瀏覽器;6.構(gòu)建時(shí)自動(dòng)處理兼容性;7.老項(xiàng)目可用Modernizr檢測(cè)特性;8.不必追求所有瀏覽器一致,確

造型與CSS不同訪問(wèn)的鏈接 造型與CSS不同訪問(wèn)的鏈接 Jul 11, 2025 am 03:26 AM

設(shè)置訪問(wèn)過(guò)鏈接的樣式能提升用戶體驗(yàn),尤其在內(nèi)容密集型網(wǎng)站中幫助用戶更好導(dǎo)航。1.使用CSS的:visited偽類可定義已訪問(wèn)鏈接樣式,如顏色變化;2.注意瀏覽器出于隱私限制僅允許修改部分屬性;3.顏色選擇應(yīng)與整體風(fēng)格協(xié)調(diào),避免突兀;4.移動(dòng)端可能不顯示該效果,建議結(jié)合其他視覺(jué)提示如icon輔助標(biāo)識(shí)。

使用CSS剪輯路徑創(chuàng)建自定義形狀 使用CSS剪輯路徑創(chuàng)建自定義形狀 Jul 09, 2025 am 01:29 AM

使用CSS的clip-path屬性可以裁剪元素為自定義形狀,如三角形、圓形缺口、多邊形等,無(wú)需依賴圖片或SVG。其優(yōu)勢(shì)包括:1.支持circle、ellipse、polygon等多種基本形狀;2.可響應(yīng)式調(diào)整,適配移動(dòng)端;3.易于動(dòng)畫(huà)化,可結(jié)合hover或JavaScript實(shí)現(xiàn)動(dòng)態(tài)效果;4.不影響布局流,僅裁剪顯示區(qū)域。常見(jiàn)用法如圓形裁剪clip-path:circle(50pxatcenter)和三角形裁剪clip-path:polygon(50%0%,1000%,00%)。注意

顯示:內(nèi)聯(lián),顯示:塊和顯示:內(nèi)聯(lián)塊之間有什么區(qū)別? 顯示:內(nèi)聯(lián),顯示:塊和顯示:內(nèi)聯(lián)塊之間有什么區(qū)別? Jul 11, 2025 am 03:25 AM

Themaindifferencesbetweendisplay:inline,block,andinline-blockinHTML/CSSarelayoutbehavior,spaceusage,andstylingcontrol.1.Inlineelementsflowwithtext,don’tstartonnewlines,ignorewidth/height,andonlyapplyhorizo??ntalpadding/margins—idealforinlinetextstyling

CSS繪畫(huà)API是什么? CSS繪畫(huà)API是什么? Jul 04, 2025 am 02:16 AM

thecsspaintingapienablesdemimageGenerationinCsssingJavascript.1.developersCreateApaintWorkletClassWithaPaint()method.2.theyregisteritviaregisterpaint()。3.thecustompAntFunctionSthenusitySthenusedisthenusedisthenusedIncerspropertieslikeBacknockforg-image-image.thisallows.thisallowsforderforderynamecvis

如何使用CSS創(chuàng)建響應(yīng)式圖像? 如何使用CSS創(chuàng)建響應(yīng)式圖像? Jul 15, 2025 am 01:10 AM

要使用CSS創(chuàng)建響應(yīng)式圖片,主要可通過(guò)以下方法實(shí)現(xiàn):1.使用max-width:100%和height:auto讓圖片在保持比例的同時(shí)自適應(yīng)容器寬度;2.結(jié)合HTML的srcset和sizes屬性智能加載適配不同屏幕的圖片源;3.利用object-fit和object-position控制圖片裁剪與焦點(diǎn)展示。這些方法共同確保圖片在不同設(shè)備上清晰、美觀地呈現(xiàn)。

什么是CSS,它代表什么? 什么是CSS,它代表什么? Jul 03, 2025 am 01:48 AM

CSS,orcascadingstylesheets,isthepartofwevelvermentThatControlsawebpage’svisualAppearance,包括colors,fonts,fonts,spacing,and spacing and layout

See all articles