国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

記錄--居中為什么要使用 transform?

這篇具有很好參考價(jià)值的文章主要介紹了記錄--居中為什么要使用 transform?。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

這里給大家分享我在網(wǎng)上總結(jié)出來(lái)的一些知識(shí),希望對(duì)大家有所幫助

記錄--居中為什么要使用 transform?

引言

居中是我們?cè)谇岸瞬季种薪?jīng)常會(huì)遇到的問(wèn)題,其中包括水平居中和垂直居中。居中的方法很多,比如說(shuō)水平居中可以使用text-align: center或者margin: 0 auto等等來(lái)實(shí)現(xiàn),垂直居中則需要使用一些其它的特殊的技巧。比如說(shuō)常見(jiàn)的做法是使用transform來(lái)實(shí)現(xiàn)垂直居中,margin-top或者top屬性,或者使用彈性布局。

transform的優(yōu)點(diǎn)

那么我們?yōu)槭裁匆褂?code>transform來(lái)實(shí)現(xiàn)垂直居中呢?

因?yàn)?code>transform屬于合成屬性,而margin-toptop屬于布局屬性。對(duì)于合成屬性,瀏覽器會(huì)將被動(dòng)畫(huà)元素放入一個(gè)獨(dú)立的層中進(jìn)行動(dòng)畫(huà),而不會(huì)對(duì)整個(gè)頁(yè)面進(jìn)行重繪,這可以提高頁(yè)面的性能。而對(duì)于布局屬性,任何一點(diǎn)的變化都可能導(dǎo)致整個(gè)頁(yè)面的重排和重繪,這會(huì)對(duì)頁(yè)面的性能產(chǎn)生很大的影響。

如果我們使用margin-top或者top來(lái)實(shí)現(xiàn)垂直居中,那么每次元素發(fā)生變化時(shí),瀏覽器都會(huì)對(duì)整個(gè)頁(yè)面進(jìn)行重排和重繪,這會(huì)導(dǎo)致頁(yè)面的性能受到很大的影響。而使用transform來(lái)實(shí)現(xiàn)垂直居中,則可以將元素放入一個(gè)獨(dú)立的層中進(jìn)行動(dòng)畫(huà),避免了對(duì)整個(gè)頁(yè)面的重排和重繪,從而提高了頁(yè)面的性能。

下面是一個(gè)使用transform實(shí)現(xiàn)垂直居中的示例代碼:

<div class="container">  
  <div class="box">  
    <p>這是一段文字</p>  
  </div>  
</div> 

.container {  
  position: relative;  
  height: 300px;  
  background-color: #eee;  
}  
   
.box {  
  position: absolute;  
  top: 50%;  
  left: 50%;  
  transform: translate(-50%, -50%);  
}  
 

在上面的代碼中,我們首先將外層容器設(shè)置為position: relative,并指定了一個(gè)固定的高度。然后,我們將內(nèi)層元素設(shè)置為position: absolute,并使用top: 50%left: 50%將其定位到父元素的中心位置。最后,我們使用transform: translate(-50%, -50%)來(lái)將元素向左上方移動(dòng)自身寬度和高度的一半,從而實(shí)現(xiàn)了垂直居中的效果。

使用transform來(lái)實(shí)現(xiàn)垂直居中可以避免對(duì)整個(gè)頁(yè)面的重排和重繪,從而提高頁(yè)面的性能。所以在實(shí)際的開(kāi)發(fā)中,我們應(yīng)該盡可能地使用合成屬性來(lái)進(jìn)行動(dòng)畫(huà)和布局,避免使用布局屬性,從而提高頁(yè)面的性能和用戶(hù)體驗(yàn)。

浮動(dòng)

對(duì)于浮動(dòng)居中,它在進(jìn)行元素的水平居中時(shí),可能會(huì)對(duì)頁(yè)面進(jìn)行重排。這是因?yàn)闉g覽器需要對(duì)元素的左右外邊距進(jìn)行計(jì)算,并將元素放置在父容器中間。這個(gè)過(guò)程會(huì)導(dǎo)致瀏覽器對(duì)整個(gè)頁(yè)面進(jìn)行重排,從而可能影響頁(yè)面的性能。此外,浮動(dòng)布局實(shí)現(xiàn)多列布局,可能會(huì)導(dǎo)致多列高度不一致,需要進(jìn)行額外處理。

但是,在某些情況下,浮動(dòng)居中并不會(huì)對(duì)頁(yè)面進(jìn)行重排。例如,如果我們將元素的寬度設(shè)置為固定的像素值,那么瀏覽器就可以很容易地計(jì)算出元素的左右外邊距,并將元素放置在父容器中間,而不需要對(duì)整個(gè)頁(yè)面進(jìn)行重排。在這種情況下,浮動(dòng)居中的性能表現(xiàn)可能會(huì)比較好。

所以說(shuō)浮動(dòng)居中可能會(huì)對(duì)頁(yè)面進(jìn)行重排,但在某些情況下,它的性能表現(xiàn)可能會(huì)比較好。在實(shí)際開(kāi)發(fā)中,我們則應(yīng)該根據(jù)具體的需求和情況來(lái)選擇。

彈性

彈性布局大家應(yīng)該也比較熟悉了,用彈性只有一次和無(wú)數(shù)次,在很多時(shí)候使用彈性布局真的很舒服,所以我們關(guān)于彈性布局就多描述一些。

彈性布局的優(yōu)點(diǎn)在于它可以方便地實(shí)現(xiàn)彈性盒子容器中彈性盒子項(xiàng)目的伸縮和排列,但是在使用彈性布局時(shí),如果頻繁修改彈性容器的屬性或彈性項(xiàng)目的排列順序,就可能會(huì)觸發(fā)頁(yè)面重排和重繪,從而影響頁(yè)面的性能和用戶(hù)體驗(yàn)。

導(dǎo)致原因

具體來(lái)說(shuō),以下幾種情況可能會(huì)導(dǎo)致彈性布局的頁(yè)面重排和重繪:

  1. 修改彈性容器的屬性

如果修改彈性容器的屬性,如flex-direction、justify-content、align-items等,會(huì)影響彈性盒子項(xiàng)目的排列和布局,從而導(dǎo)致頁(yè)面重排和重繪。

  1. 修改彈性項(xiàng)目的屬性

如果修改彈性項(xiàng)目的屬性,如flex-grow、flex-shrink、flex-basis等,會(huì)影響彈性盒子項(xiàng)目的伸縮和尺寸,從而導(dǎo)致頁(yè)面重排和重繪。

  1. 修改彈性項(xiàng)目的順序

如果修改彈性項(xiàng)目的排列順序,會(huì)影響彈性盒子項(xiàng)目的排列和布局,從而導(dǎo)致頁(yè)面重排和重繪。

優(yōu)化

以為了避免彈性布局的頁(yè)面重排和重繪,我們可以采取一些優(yōu)化措施,如:

  1. 盡可能減少修改彈性容器和彈性項(xiàng)目的屬性和順序。

  2. 將多個(gè)彈性容器和彈性項(xiàng)目盡可能合并為一個(gè)彈性容器和彈性項(xiàng)目,從而減少頁(yè)面重排和重繪。

  3. 將彈性容器和彈性項(xiàng)目的尺寸設(shè)置為固定值,從而減少頁(yè)面重排和重繪。

所以說(shuō),雖然彈性布局具有靈活和方便的優(yōu)點(diǎn),寫(xiě)起來(lái)很舒服,但是在使用時(shí)我們需要注意優(yōu)化,減少頁(yè)面重排和重繪,以提高頁(yè)面的性能和用戶(hù)體驗(yàn)。

本文轉(zhuǎn)載于:

https://juejin.cn/post/7303587697100013606

如果對(duì)您有所幫助,歡迎您點(diǎn)個(gè)關(guān)注,我會(huì)定時(shí)更新技術(shù)文檔,大家一起討論學(xué)習(xí),一起進(jìn)步。

?記錄--居中為什么要使用 transform?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-746797.html

到了這里,關(guān)于記錄--居中為什么要使用 transform?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 記錄--為什么要使用 package-lock.json?

    記錄--為什么要使用 package-lock.json?

    隨著 JavaScript 在現(xiàn)代軟件開(kāi)發(fā)中的日益重要地位, Node.js 生態(tài)系統(tǒng)中的 npm 成為了不可或缺的工具。在 npm 管理依賴(lài)的過(guò)程中, package-lock.json 文件的作用日益凸顯。本文將深入探討為什么要使用 package-lock.json ,以及它在項(xiàng)目開(kāi)發(fā)中的重要性。 在討論 package-lock.json 的重要性之

    2024年02月11日
    瀏覽(16)
  • 記錄--為什么 export 導(dǎo)出一個(gè)字面量會(huì)報(bào)錯(cuò),而使用 export default 就不會(huì)報(bào)錯(cuò)?

    記錄--為什么 export 導(dǎo)出一個(gè)字面量會(huì)報(bào)錯(cuò),而使用 export default 就不會(huì)報(bào)錯(cuò)?

    其實(shí)總的來(lái)說(shuō)就是 export 導(dǎo)出的是變量的句柄(或者說(shuō)符號(hào)綁定、近似于 C 語(yǔ)言里面的指針,C++里面的變量別名),而 export default 導(dǎo)出的是變量的值。 需要注意的是:模塊里面的內(nèi)容只能在模塊內(nèi)部修改,模塊外部只能使用。esModule在語(yǔ)法層面做了一層 淺層 的保護(hù)(即將i

    2024年01月17日
    瀏覽(29)
  • 【知識(shí)儲(chǔ)備】Transformer為什么用LN而不用BN
  • 【AI學(xué)習(xí)】Transformer的Token嵌入表示為什么那么長(zhǎng)

    【AI學(xué)習(xí)】Transformer的Token嵌入表示為什么那么長(zhǎng)

    有朋友問(wèn),BERT等大模型的參數(shù)量怎么計(jì)算的?這個(gè)問(wèn)題,李沐在BERT那篇論文中講過(guò),主要包括幾部分。1、詞嵌入:token數(shù)量乘以token表示的向量長(zhǎng)度,就是 V H;2、注意力計(jì)算沒(méi)有參數(shù),只計(jì)算多頭注意力的投影矩陣,三個(gè)輸入的權(quán)重矩陣,每個(gè)矩陣參數(shù)= H (H/頭數(shù)) 頭數(shù)

    2024年04月25日
    瀏覽(23)
  • 大數(shù)據(jù)面試題:說(shuō)下Spark中的Transform和Action,為什么Spark要把操作分為T(mén)ransform和Action?

    大數(shù)據(jù)面試題:說(shuō)下Spark中的Transform和Action,為什么Spark要把操作分為T(mén)ransform和Action?

    面試題來(lái)源: 《大數(shù)據(jù)面試題 V4.0》 大數(shù)據(jù)面試題V3.0,523道題,679頁(yè),46w字 可回答:Spark常見(jiàn)的算子介紹一下 參考答案: 我們先來(lái)看下Spark算子的作用: 下圖描述了Spark在運(yùn)行轉(zhuǎn)換中通過(guò)算子對(duì)RDD進(jìn)行轉(zhuǎn)換。 算子是RDD中定義的函數(shù),可以對(duì)RDD中的數(shù)據(jù)進(jìn)行轉(zhuǎn)換和操作。 輸

    2024年02月13日
    瀏覽(21)
  • 記錄--為什么沒(méi)有人能講清楚 BFC?

    記錄--為什么沒(méi)有人能講清楚 BFC?

    CSS 規(guī)范(英文) | 中文翻譯 浮動(dòng),絕對(duì)定位的元素,非塊盒的塊容器(例如inline-blocks,table-cells和table-captions),以及’overflow’不為’visible’的塊盒(當(dāng)該值已被傳播到視口時(shí)除外(except when that value has been propagated to the viewport))會(huì)為其內(nèi)容建立新的塊格式化上下文 在一個(gè)

    2024年02月05日
    瀏覽(22)
  • 記錄--為什么推薦用svg而不用icon?

    記錄--為什么推薦用svg而不用icon?

    使用背景: 1.因?yàn)閟vg圖標(biāo)在任何設(shè)備下都可以高清顯示,不會(huì)模糊。而icon會(huì)在顯卡比較低的電腦上有顯示模糊的情況 2.svg圖標(biāo)在頁(yè)面render時(shí) 速度會(huì)比icon稍微快一點(diǎn) 3.實(shí)現(xiàn)小程序換膚功能 ;方案見(jiàn):www.yuque.com/lufeilizhix… SVG基礎(chǔ)可參考:www.yuque.com/lufeilizhix… inline svg是目前前

    2024年02月08日
    瀏覽(31)
  • 記錄--post為什么會(huì)發(fā)送兩次請(qǐng)求?

    記錄--post為什么會(huì)發(fā)送兩次請(qǐng)求?

    在前段時(shí)間的一次面試中,被問(wèn)到了一個(gè)如標(biāo)題這樣的問(wèn)題。要想好好地去回答這個(gè)問(wèn)題,這里牽扯到的知識(shí)點(diǎn)也是比較多的。 那么接下來(lái)這篇文章我們就一點(diǎn)一點(diǎn)開(kāi)始引出這個(gè)問(wèn)題。 在瀏覽器中,內(nèi)容是很開(kāi)放的,任何資源都可以接入其中,如 JavaScript 文件、圖片、音頻

    2024年02月12日
    瀏覽(21)
  • [20231023]為什么刷新緩存后輸出記錄順序發(fā)生變化6.txt

    [20231023]為什么刷新緩存后輸出記錄順序發(fā)生變化6.txt --//前幾天做了單表刷新緩存后輸出記錄順序發(fā)生變化的情況,測(cè)試2個(gè)表的情況時(shí)遇到一個(gè)奇怪的現(xiàn)象。 --//我前面的測(cè)試18c,如果使用10046跟蹤看不到我遇到的情況,我想使用strace跟蹤,發(fā)現(xiàn)該機(jī)器配置使用asm,strace跟蹤無(wú)法

    2024年02月06日
    瀏覽(37)
  • [20231013]為什么刷新緩存后輸出記錄順序發(fā)生變化3.txt

    [20231013]為什么刷新緩存后輸出記錄順序發(fā)生變化3.txt --//當(dāng)年提的問(wèn)題,鏈接http://blog.itpub.net/267265/viewspace-2763181/= [20210316]為什么刷新緩存后輸出記錄順序發(fā)生變化.txt, --//正好別人問(wèn)我,順便我重復(fù)看了一下,順便解答這個(gè)問(wèn)題,實(shí)際上也許解答不對(duì),許多行為我僅僅是猜測(cè)

    2024年02月08日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包