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

首頁 web前端 css教學(xué) css中的margin屬性詳解

css中的margin屬性詳解

Mar 22, 2018 pm 04:55 PM
css margin

這次帶給大家css中的margin屬性詳解,使用css中margin的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來看一下。

之前我一直認(rèn)為margin屬性是一個(gè)非常簡(jiǎn)單的屬性,但是最近做專案時(shí)遇到了一些問題,才發(fā)現(xiàn)margin屬性還是有一些「坑」的,下面我會(huì)介紹margin的基本知識(shí)以及那些「坑」。這篇部落格文章主要分為以下幾個(gè)部分:

  • margin--基礎(chǔ)知識(shí)

  • margin--在同級(jí)元素(非父子關(guān)係)之間應(yīng)用

  • margin--在父元素和子元素之間應(yīng)用(重點(diǎn))

  • margin--margin值的單位為%時(shí)的幾種情況??

第一部分:margin--基礎(chǔ)知識(shí)

要介紹margin的基礎(chǔ)知識(shí),我們不可迴避地要談到css盒子模型(Box Model),一般而言,css盒子模型是用來設(shè)計(jì)和佈局的。它本質(zhì)上是一個(gè)盒子,包括:外邊距(margin)、邊框(border)、內(nèi)邊距(padding)以及最中間的內(nèi)容(content)。下圖即為盒子模型(這裡只談W3C規(guī)範(fàn)的標(biāo)準(zhǔn)盒模型,而不談IE5和IE6在怪異模式中使用的非標(biāo)準(zhǔn)的盒子模型):

?我們要介紹的margin在最外層,因?yàn)閙argin(外邊距)一定是透明的,所以它可以用來使得不同的盒子之間留有一定的間隙從而達(dá)到佈局美觀等效果。從上面的盒子模型中我們可以看到,margin在四周均存在,我們可以使用margin-top、margin-right、margin-bottom、margin-left分別設(shè)定這四個(gè)方向的margin值。 (註:由於這部分知識(shí)較為基礎(chǔ),所以我不再在這部分不做更多介紹)

?第二部分:margin--在同級(jí)元素(非父子關(guān)係)之間應(yīng)用

這部分主要介紹水平方向和垂直方向的外邊距的合併問題。

(1)水平方向的外邊距合併

兩個(gè)水平方向的盒子相遇,那麼最終兩者之間的距離為左邊盒子的右外邊距和右邊盒子的做外邊距之和。

?範(fàn)例1:

程式碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
????<meta charset="UTF-8">
????<title>水平方向的兩個(gè)盒子</title>
????<style>
????????*{
????????????margin:0;
????????????padding:0;
????????????border:0;
????????}
????????body{
????????????font-size:?0;
????????}
????????.left{
????????????width:?100px;
????????????height:?100px;
????????????background:?red;
????????????display:?inline-block;
????????????margin-right:?50px;
????????????font-size:?20px;
????????}
????????.right{
????????????width:?100px;
????????????height:?100px;
????????????background:?yellow;
????????????display:?inline-block;
????????????margin-left:?50px;
????????????font-size:?20px;
????????}
????</style>
</head>
<body>
????<p class="left">寬為100px,右邊距為50px</p>
????<p class="right">寬為100px,左邊距為50px</p>
</body>
</html>

效果如下:

這時(shí)兩者之間的距離剛好為100px。

補(bǔ)充說明:大家可以看到,為了使得兩個(gè)p(塊狀元素)脫離正常的文檔流我使用了display:inline-block;屬性,另外,我還把body的font-size設(shè)為0,這樣可以解決inline-block自身的問題,否則兩個(gè)p的舉例會(huì)大於100px。當(dāng)然使用float也可以讓兩個(gè)p出現(xiàn)在同一行。

(2)垂直方向的外邊距合併

兩個(gè)垂直方向的盒子相遇時(shí),其垂直方向的距離等於上方盒子的下外邊距和下方盒子的上外邊距中較大的一個(gè)。

例2:

<!DOCTYPE html>
<html lang="en">
<head>
????<meta charset="UTF-8">
????<title>水平方向的兩個(gè)盒子</title>
????<style>
????????*{
????????????margin:0;
????????????padding:0;
????????????border:0;
????????}
????????.top{
????????????width:?100px;
????????????height:?100px;
????????????margin-bottom:?100px;
????????????background:?red;
????????}
????????.bottom{
????????????width:?100px;
????????????height:?100px;
????????????margin-top:?50px;
????????????background:?green;
????????}
????</style>
</head>
<body>
????<p class="top">高為100px,下邊距為100px</p>
????<p class="bottom">高為100px,上邊距為50px</p>
</body>
</html>

效果如下:

#這時(shí)我們?nèi)庋鄱伎梢杂^察出來,兩者垂直方向的舉例大約為100px(實(shí)際上是100px)而非100+50=150px;這正是因?yàn)閮蓚€(gè)垂直方向的盒子相遇時(shí),其垂直方向的距離等於上方盒子的下外邊距和下方盒子的上外邊距中較大的一個(gè)。

另一個(gè)有趣的例子就是:假設(shè)有一個(gè)元素同時(shí)設(shè)定了margin-top和margin-bottom,但是內(nèi)容為空,那麼這兩個(gè)margin值也會(huì)疊加,值為兩者最大的一個(gè),它類似與垂直方向上兩個(gè)盒子margin值的疊加。程式碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
????<meta charset="UTF-8">
????<title>水平方向的兩個(gè)盒子</title>
????<style>
????????*{
????????????margin:0;
????????????padding:0;
????????}
?
????????.top{
????????????width:?500px;
????????????height:?100px;
????????????background:?red;
????????}
????????.middle{
????????????margin-top:?100px;
????????????margin-bottom:50px;
????????}
????????.footer{
????????????width:?500px;
????????????height:?100px;
????????????background:?green;
????????}
?
????</style>
</head>
<body>
????<p class="top">上面的p,高100px</p>
????<p class="middle"></p>
????<p class="footer">下面的p,高100px</p>
</body>
</html>

最終的效果如下:

#

我們發(fā)現(xiàn)這時(shí)在上面的p和在下面的p之間的舉例并不是100+50=150px,而是兩者中的最大者,即100px。

那么W3C為什么會(huì)設(shè)定這樣的標(biāo)準(zhǔn)而不設(shè)定和水平方向一樣的標(biāo)準(zhǔn)呢?即margin值的疊加,實(shí)際上這也是有一定的道理的。比如我們需要設(shè)計(jì)一個(gè)由若干個(gè)段落構(gòu)成的一個(gè)頁面。我們需要設(shè)置margin-top和margin-bottom使得第一段和頁面的最上方有一段距離,使得最后一段和最下方有一段距離。下面是不疊加和疊加的效果圖:

我們可以看到左邊的頁面沒有重疊,那么兩個(gè)段落之間的舉例就是最上方的兩倍間距了,而右邊的頁面發(fā)生了重疊,則所有的間距都是相等的?;蛟S這就是這樣設(shè)定標(biāo)準(zhǔn)的目的吧,誰知道呢?

第三部分:margin--在父元素和子元素之間應(yīng)用(重點(diǎn))

第二部分介紹了同級(jí)元素之間使用margin,而這一部分將要介紹最有意思的父元素和子元素之間margin的應(yīng)用。這一部分,我們同樣從兩個(gè)方面來討論。一方面是子元素設(shè)置水平方向上的margin值,另一方面是子元素設(shè)置豎直方向的margin值。

(1)在子元素中設(shè)置水平方向的margin值

我們可以設(shè)置margin-left來控制子元素的左邊框和父元素的左邊框之間的舉例。

例3:

<!DOCTYPE html>
<html lang="en">
<head>
????<meta charset="UTF-8">
????<title>margin</title>
????<style>
????????*{padding:0;?margin:0;?border:0;}
????????.father{
????????????width:?500px;
????????????height:?500px;
????????????background:?red;
????????}
????????.son{
????????????width:?100px;
????????????height:?100px;
????????????background:?green;
????????????margin-left:?100px;
????????}
????</style>
</head>
<body>
????<p class="father">
????????<p class="son">寬度為100px,margin-left為100px。</p>
????</p>
</body>
</html>

我將子元素的margin-left設(shè)置為了100px;效果如下:

即子元素的左邊框和父元素的左邊框之間的距離為100px。與在同級(jí)元素之間設(shè)置margin不同,因?yàn)橥?jí)元素之間的margin不會(huì)考慮到padding,但是在父元素和子元素就不同了,那么如果父元素中如果有padding,效果會(huì)是什么樣的呢?請(qǐng)看下面一個(gè)例子:

例4:

下面我們?cè)谏厦胬拥幕A(chǔ)上給父元素添加padding值。

<!DOCTYPE html>
<html lang="en">
<head>
????<meta charset="UTF-8">
????<title>margin</title>
????<style>
????????*{padding:0;?margin:0;?border:0;}
????????.father{
????????????width:?500px;
????????????height:?500px;
????????????padding:100px;
????????????background:?red;
????????}
????????.son{
????????????width:?100px;
????????????height:?100px;
????????????background:?green;
????????????margin-left:?100px;
????????}
????</style>
</head>
<body>
????<p class="father">
????????<p class="son">寬度為100px,margin-left為100px。</p>
????</p>
</body>
</html>

上面的代碼給父元素添加了100px的padding值,效果如下:

我們可以看到子元素舉例上方的距離為100px,因?yàn)樽釉匾欢ㄊ窃诟冈氐腸ontent的部分的,這點(diǎn)毫無疑問。

但是經(jīng)過測(cè)量可以發(fā)現(xiàn)子元素的左邊框距離父元素的左邊框之間的距離為200px,因?yàn)槠渲羞€有100px的左padding值,前面的例子因?yàn)槲覜]有設(shè)置padding值,所以沒有觀察出來,因此這就說明了在子元素中設(shè)置margin-left,其值實(shí)際上是子元素的左邊框距離父元素左padding內(nèi)側(cè)的距離。

例5:margin-right的使用和margin-left的使用是相似的,我在這里只舉一個(gè)例子。

這個(gè)例子在子元素中設(shè)置了margin-right值,如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
????<meta charset="UTF-8">
????<title>margin</title>
????<style>
????????*{padding:0;?margin:0;?border:0;}
????????.father{
????????????width:?500px;
????????????height:?500px;
????????????padding:100px;
????????????background:?red;
????????}
????????.son{
????????????float:?right;
????????????width:?100px;
????????????height:?100px;
????????????background:?green;
????????????margin-right:?100px;
????????}
????</style>
</head>
<body>
????<p class="father">
????????<p class="son">寬度為100px,margin-right為100px。</p>
????</p>
</body>
</html>

這個(gè)例子與例4的區(qū)別僅在與子元素的位置不同。效果如下:

通過這個(gè)例子可以說明margin-right的值是子元素的右邊框和父元素的右padding內(nèi)側(cè)的距離。只是前面的幾個(gè)例子我沒有使用padding,所以無法觀察出來。

(2)在子元素中設(shè)置豎直方向的margin值

按照前面的經(jīng)驗(yàn),理論上來說,我們同樣可以通過設(shè)置margin-top的值使得子元素的上邊框和父元素的上padding的內(nèi)側(cè)留有一定的距離。那么我們就試試吧!

例6:

<!DOCTYPE html>
<html lang="en">
<head>
????<meta charset="UTF-8">
????<title>margin</title>
????<style>
????????*{padding:0;?margin:0;?border:0;}
????????.father{
????????????width:?500px;
????????????height:?500px;
????????????background:?red;
????????}
????????.son{
????????????width:?100px;
????????????height:?100px;
????????????background:?green;
????????????margin-top:?100px;
????????}
????</style>
</head>
<body>
????<p class="father">
????????<p class="son">高度為100px,margin-top為100px。</p>
????</p>
</body>
</html>

這個(gè)例子我設(shè)置了margin-top為100px,效果如下:

這并不是我們想要的效果啊,我們希望子元素的上部距離父元素的上部為100px,可是我們看到的卻是父元素的上部距離瀏覽器頁面的上部有100px的距離,這是為什么呢?哪里出現(xiàn)問題了呢?

實(shí)際上這是因?yàn)楫?dāng)父元素沒有設(shè)置padding值以及border值時(shí),出現(xiàn)了一個(gè)bug--父元素的上方與子元素的上方完全重合在了一起,無法分開。所以才會(huì)導(dǎo)致上述這種父元素和子元素同時(shí)向下的情況。

對(duì)于這種問題解決方法有下面幾種:

  • 方法一:給父元素添加padding-top值

  • 方法二:給父元素添加border值

  • 方法三:給父元素添加屬性overflow:hidden;

  • 方法四:給父元素或者子元素聲明浮動(dòng)float

  • 方法五:使父元素或子元素聲明為絕對(duì)定位:position:absolute;

  • 方法六:給父元素添加屬性 overflow:auto; positon:relative;(注:此方法為后續(xù)添加,感謝博友@小精靈Pawn提供此方法)

方法一:基于例6,在父元素的css代碼中添加padding-top:1px;效果如下:

?方法的唯一缺點(diǎn)就是增加了1px的誤差。

方法二:基于例6,在父元素的css代碼中添加border-top:1px solid transparent;效果如下:

同樣達(dá)到了效果, 缺點(diǎn)同方法一。

方法三:基于例6,在父元素的css代碼中添加overflow:hidden;效果如下:

同樣達(dá)到了效果,并且沒有任何誤差的存在??胺Qperfect!!!!

方法四:給父元素或者子元素聲明float;基于例6,在子元素css代碼添加float:left;或者在父元素css代碼添加float:left;均達(dá)到效果,這里不再展示相同的圖片。

優(yōu)點(diǎn):沒有像素的誤差。?? 缺點(diǎn):float有時(shí)是不必要的。

方法五:給父元素或者子元素添加position:absolute;屬性。 同樣達(dá)到效果。

優(yōu)點(diǎn):同方法四。? 且只要我們不使用top和left也不會(huì)有任何影響,所以這也是一種不錯(cuò)的方法。

方法六:給父元素添加overflow:auto;和position:relative;同樣達(dá)到效果。

第四部分:margin值的單位為%時(shí)的幾種情況

之前我舉例子時(shí)使用margin,它的值都是以px為單位的,這個(gè)理解起來沒有問題。但是如果margin值是以%為單位呢?實(shí)際上這時(shí)候百分比(%)是相對(duì)于該元素的父元素(容器),對(duì)于同級(jí)元素和父子元素都是如此。(再次感謝 博友@小精靈Pawn 提供的建議??!基于此建議補(bǔ)充這部分內(nèi)容) 但是在同級(jí)元素中使用豎直方向的margin時(shí)會(huì)出現(xiàn)意想不到的結(jié)果,下面舉例說明。

(1)同級(jí)元素在水平方向使用值為%的margin

例7:

<head>
????<meta charset="UTF-8">
????<title>margin</title>
????<style>
????????*{
????????????margin:0;
????????????padding:0;
????????}
????????.first{
????????????float:?left;
????????????width:?200px;
????????????height:?200px;
????????????background:?green;
????????}
????????.second{
????????????float:?left;
????????????width:?200px;
????????????height:?200px;
????????????background:?red;
????????????margin-left:?20%;
????????}
????</style>
</head>
<body>
????<p class="first">寬為200,無margin</p>
????<p class="second">寬為200,margin-left為20%;</p>
</body>
</html>

這個(gè)例子中,設(shè)置兩個(gè)元素向左浮動(dòng),以便于觀察兩者水平方向的margin。其中左邊p無margin,右邊p的margin-left為20%,效果如下:

從效果圖可以看出兩個(gè)p之間的間距始終為父元素(這里右邊p的父元素即為body,其寬度為瀏覽器寬度)的20%。

(2)同級(jí)元素在豎直方向使用值為%的margin

根據(jù)例7的啟發(fā),我們可以猜想,如果在豎直方向上使用margin,且值的單位為%,那么最終兩者之間的距離將是父元素(上例中為body)的百分?jǐn)?shù)。那么究竟是不是這樣呢?看下面的例子。

例8

<head>
????<meta charset="UTF-8">
????<title>margin</title>
????<style>
????????*{
????????????margin:0;
????????????padding:0;
????????}
????????.first{
????????????width:?200px;
????????????height:?200px;
????????????background:?green;
????????}
????????.second{
????????????width:?200px;
????????????height:?200px;
????????????background:?red;
????????????margin-top:?10%;
????????}
????</style>
</head>
<body>
????<p class="first">高為200,無margin</p>
????<p class="second">高為200,margin-top為20%;</p>
</body>
</html>

這里設(shè)置上面的p無margin,下面的p的margin-top為10。效果如下:

我們發(fā)現(xiàn),當(dāng)我在縮小瀏覽器的高度時(shí),豎直方向上的間距并沒有縮?。。?! 而當(dāng)我縮小瀏覽器的寬度時(shí),豎直方向上的距離縮小了!?。?/p>

這就說明:統(tǒng)計(jì)元素之間在豎直方向上使用margin,當(dāng)值的單位為%時(shí),它是相對(duì)于父元素的寬度。

那么這里為什么不是如我們所希望的那樣相對(duì)于瀏覽器的高度呢?知乎上有大神是這樣解釋的:

(3)父子元素使用值為%的margin

對(duì)于父子元素,如果在子元素中使用單位為%margin,那么這個(gè)margin值是相對(duì)于父元素的寬度和高度(注意:這時(shí)的確是相對(duì)于父元素的高度?。┑?。

例9?

代碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
????<meta charset="UTF-8">
????<title>Document</title>
????<style>
????????*{
????????????margin:0;
????????????padding:0;
????????}
????????.father{
????????????width:?500px;
????????????height:?300px;
????????????background:?red;
????????????overflow:?hidden;
????????}
????????.son{
????????????width:?100px;
????????????height:?100px;
????????????background:?green;
????????????margin-top:?20%;
????????????margin-left:?20%;
????????}
????</style>
</head>
<body>
????<p class="father">
????????<p class="son"></p>
????</p>
</body>
</html>

在這個(gè)例子中,我設(shè)置了margin-left的值為20%,margin-top的值為20%,父元素的width為500px,父元素的height為300px。下面看看效果吧。

從上圖可以看出子元素的margin-top值最終同樣是相對(duì)與父元素的寬度而非高度。

總結(jié):

這篇博文只介紹了margin的其中一部分知識(shí)點(diǎn),但如果大家讀后能有些許收獲是再好不過的了。由于本人總結(jié)倉促,知識(shí)不足,錯(cuò)誤在所難免,希望大家如果發(fā)現(xiàn)不妥之初能提出意見,我將非常感激。

相信看了本文案例你已經(jīng)掌握了方法,更多精彩請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!

推薦閱讀:

CSS3的box-sizing屬性圖文教程

在CSS邊界線消失如何處理

三種絕對(duì)定位元素的水平垂直居中的辦法

以上是css中的margin屬性詳解的詳細(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整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

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

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

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

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

您如何使用CSS對(duì)SVG進(jìn)行動(dòng)畫動(dòng)畫? 您如何使用CSS對(duì)SVG進(jìn)行動(dòng)畫動(dòng)畫? Jun 30, 2025 am 02:06 AM

AnimatingSVGwithCSSispossibleusingkeyframesforbasicanimationsandtransitionsforinteractiveeffects.1.Use@keyframestodefineanimationstagesforpropertieslikescale,opacity,andcolor.2.ApplytheanimationtoSVGelementssuchas,,orviaCSSclasses.3.Forhoverorstate-b

什麼是圓錐級(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類中的變量僅對(duì)匹配該類的元素及其子元素可用。最佳實(shí)踐包括:1.使用:root定義全局變量如主題色;2.在組件內(nèi)部定義局部變量以實(shí)現(xiàn)封裝;3.避免重複聲明同一變量;4.注意選擇器特異性可能引發(fā)的覆蓋問題。此外,CSS變量區(qū)分大小寫,且應(yīng)在使用前定義以避免錯(cuò)誤。若變量未定義或引用失敗,則會(huì)採用回退值或默認(rèn)值initial。調(diào)試時(shí)可通過瀏覽器開發(fā)者工

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

什麼是:目標(biāo)偽級(jí),如何使用它? 什麼是:目標(biāo)偽級(jí),如何使用它? Jun 22, 2025 am 12:48 AM

CSS的:target偽類用於根據(jù)URL片段標(biāo)識(shí)符對(duì)目標(biāo)元素進(jìn)行樣式設(shè)置。其工作原理是當(dāng)URL包含#符號(hào)和元素id時(shí),瀏覽器滾動(dòng)至該元素,並允許通過:target為該元素應(yīng)用特定樣式。常見用例包括導(dǎo)航後高亮顯示頁面部分、創(chuàng)建無需JavaScript的選項(xiàng)卡或幻燈片、提升長頁面的可訪問性。使用技巧包括確保id唯一、結(jié)合過渡或動(dòng)畫效果、利用display屬性切換內(nèi)容可見性,以及考慮舊版瀏覽器的兼容性處理。

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

See all articles