日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
現(xiàn)代CSS樣式重置優(yōu)秀實踐!

大家好,我是 CUGGZ。

我們提供的服務(wù)有:成都網(wǎng)站制作、做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、東興ssl等。為成百上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的東興網(wǎng)站制作公司

當(dāng)開始一個新的前端項目時,首要任務(wù)就是重置 CSS 中的一些默認(rèn)樣式。下面就來看看在現(xiàn)代 CSS 中如何進(jìn)行樣式重置。本文將深入研究每條規(guī)則,以了解它的作用和使用它的原因!

下面是自定義的 CSS 重置代碼:

/*
1. 使用更直觀的 box-sizing 模型
*/
*, *::before, *::after {
box-sizing: border-box;
}
/*
2. 移除默認(rèn) margin
*/
* {
margin: 0;
}
/*
3. 在應(yīng)用中允許基于百分比的高度
*/
html, body {
height: 100%;
}
/*
排版調(diào)整
4. 添加無障礙行高
5. 改進(jìn)文本渲染
*/
body {
line-height: 1.5;
-webkit-font-smoothing: antialiased;
}
/*
6. 改進(jìn)媒體默認(rèn)設(shè)置
*/
img, picture, video, canvas, svg {
display: block;
max-width: 100%;
}
/*
7. 刪除內(nèi)置表單排版樣式
*/
input, button, textarea, select {
font: inherit;
}
/*
8. 避免文字溢出
*/
p, h1, h2, h3, h4, h5, h6 {
overflow-wrap: break-word;
}
/*
9. 創(chuàng)建根層疊上下文
*/
#root, #__next {
isolation: isolate;
}

這里的代碼不多,但是這個小樣式表中包含了很多內(nèi)容。下面將逐條介紹!

從歷史上看,CSS 重置的主要目標(biāo)是確保瀏覽器之間的一致性,并撤消所有默認(rèn)樣式。這段 CSS 重置代碼并沒有真正做這些事情。

如今,瀏覽器在布局或間距方面沒有太大的差異。總的來說,瀏覽器準(zhǔn)確的實現(xiàn)了 CSS 規(guī)范,并且一切都如你期望的那樣,所以它不再是必要的了。

這里的 CSS 重置可能不符合“CSS重置”的經(jīng)典定義,但更具創(chuàng)造性!

1、box-sizing 模型

先來看一段代碼,假設(shè)沒有應(yīng)用其他 CSS,以下場景中的 .box 元素有多寬?





這里的 .box 元素的寬度為:100%。因為它的父級寬度為 200px ,所以 100% 將解析為 200px。但是它在哪里應(yīng)用了 200px 的寬度呢?默認(rèn)情況下,它將該大小應(yīng)用于內(nèi)容區(qū)域,即下圖中白色的區(qū)域:

width: 100% 聲明會將 .box 的內(nèi)容框設(shè)置為 200px。而 padding 將增加額外的 40 px(每邊 20 px)。border 將增加額外的 4px(每邊 2px)。當(dāng)進(jìn)行計算時,粉紅色矩形的寬度將是 244 px。

當(dāng)嘗試將 244px 的框放入寬度為 200px 的父級時,就會發(fā)生溢出:

我們可以通過設(shè)置以下規(guī)則來更改這種奇怪的行為:

*, *::before, *::after {
box-sizing: border-box;
}

應(yīng)用此規(guī)則后,百分比將根據(jù) border-box 進(jìn)行解析。在上面的例子中,粉色框?qū)挾葹?200 px,內(nèi)部內(nèi)容框的寬度將縮小到 156 px(200 px - 40 px - 4 px)。

這是一條必須具備的規(guī)則,它使 CSS 更好用。這里使用通配符選擇器 (*) 將它應(yīng)用于所有元素和偽元素。與人們普遍的看法相反,這對性能來說并不壞。

網(wǎng)絡(luò)上有一些人建議改為執(zhí)行以下操作:

html {
box-sizing: border-box;
}
*, *:before, *:after {
box-sizing: inherit;
}

如果i正在嘗試遷移一個大型的已經(jīng)存在的項目以使用 border-box,這可能是一個有用的策略。如果要從頭開始一個全新的項目,這就是沒有必要的。為了簡單起見,上面的 CSS 重置中省略了它。

那在什么時候,這是有用的呢?下面來看一個可能有用的示例。如果您正在嘗試遷移一個大型的預(yù)先存在的項目以使用 border-box,這可能是一個有用的策略。如果您要從頭開始一個全新的項目,則沒有必要。為了簡單起見,我在 CSS 重置中省略了它。

展開以查看何時可能有用的示例。首先,將 legacy 的 box-sizing 屬性設(shè)置為 content-box,即 box-sizing 屬性的默認(rèn)值:

.legacy {
box-sizing: content-box;
}

然后,當(dāng)應(yīng)用有一部分尚未遷移到使用 border-box 時,可以將類這樣放:











這里,

 被賦予了 legacy 類,因此它使用 box-sizing: content-box。它的子元素