精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何優雅的寫css代碼

OSC開源社區 ? 來源:OSCHINA 社區 ? 2023-01-03 15:00 ? 次閱讀

作者 | 京東科技 楊健

CSS(全稱 Cascading Style Sheets,層疊樣式表)為開發人員提供聲明式的樣式語言,是前端必備的技能之一,基于互聯網上全面的資料和簡單易懂的語法,CSS 非常易于學習,但其知識點廣泛且分散,很難做到精通,在我們日常開發中,常常忽視了 CSS 代碼的質量,很容易寫出雜亂無章的 CSS 文件。

代碼優化建議

1. 使用縮寫屬性精簡代碼

適用于:margin、padding、border、font、background 等 但并非所有情況下都必須縮寫,因為當一個屬性的值縮寫時,總是會將所有項都設置一遍,而有時候我們不希望設置值里的某些項,這時候需要開發者自行判斷。

.content{
    // 縮寫前
    margin-right:16px;
    margin-top:30px;
    width:184px;
    height:32px;
    background:#FFFFFF
    margin-left:10px;
}
.content{
    //縮寫后
    margin:30px 16px 0 10px;
    width:184px; 
    height:32px; 
    background:#FFFFFF
}

2. 合并選擇器

使用 "," 連接多個選擇器定義公用屬性,不僅能增加可讀性,還能減小 css 文件大小。

.content{
  display: flex;
  .flush, 
  .include, 
  .underline{
   margin-right: 12px; 
   padding: 3px 6px; 
   border: 1px solid #a96161; 
   font-size: 12px; 
   color: #412c2c; 
   }
   .flush{ 
   color: #FFFFFF; 
   background-color: aqua; 
   }
   .include{ 
   color: #5d3e3e; 
   background-color: #657f7f; 
   }
    .underline{ 
    color: #7da938; 
    background-color: #7c6a6a; 
    }
}

3. 使用更語義化的單詞命名 class

命名的時候以 “在你之后開發的人不會產生疑惑” 為目標 如下

.curr{
    color:#FFFFFF;
    background:red;
}
.future{
    background:#9f6262;
}
// curr 是啥? future又是啥? 

.current-count{ 
    color:#FFFFFF; 
    background:red; 
} 
.future-count{ 
    background:#9f6262; 
}

4. 屬性聲明順序

選擇器中屬性數量較多時,將相關的屬性聲明放在一起,并按以下順序排列:

定位相關,如 position、top/bottom/left/right、z-index 等

盒模型相關,如 display、float、margin、width/height 等

排版相關,如 font、color、line-height 等

可視相關,如 background、color 等

其他,如 opacity、animation 等

建議:在屬性數量較多時可以參考這 5 個類別歸類排列。

  /* 定位相關 */
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 100;
  /* 盒模型相關 */
  display: block;
  float: right;
  width: 100px;
  height: 100px;
  /* 排版相關 */
  font: normal 13px "Helvetica Neue", sans-serif;
  line-height: 1.5;
  color: #333;
  text-align: center;
  /* 可視相關 */
  background-color: #f5f5f5;
  border: 1px solid #e5e5e5;
  border-radius: 3px;
  /* 其他 */
  opacity: 1;

5. 使用 & 符號引用父選擇器

& 是 Sass 和 Less 中提供的語法糖,用于表示對父選擇器的引用 優點:非常適合用于編寫組件的樣式,減少了很多重復單詞 缺點:從 HTML 的 class name 中尋找對應樣式的成本增加

.first {
    .first-title {/* styles */}
    .first-title:after {/* styles */}
    .first-content {/* styles */}
}
/* 用&引用來優化代碼 */
.first {
    &-title {
        /* styles */
        &:after {/* styles */}
    }
    &-content {/* styles */}
}

Sass .vs. Less?

處理器將 CSS 從聲明語言轉換成一門編程語言

可嵌套的語法增加了樣式文件的可讀性和可維護性 變量與混合特性能夠減少很多重復的樣式聲明 Less 更像 CSS,易于上手,能夠從 CSS 平滑過渡;Sass 的縮進語法接受度因人而異,Sass3.0 中提出了兼容 CSS 的 Scss,用戶可以選擇使用 Sass 或 Scss。 當項目 CSS 中需要涉及復雜邏輯時,Sass/Scss 更適合,Sass 提供了更強大、更接近編程語言的 @function、@if/@else、@while 等語法;當項目的樣式復雜度不高時,選 Sass 或 Less 都可以。

(下面是一個 Less 和 Scss 語法對比例子)

// Less
.mixin( @count )when( @count > 0 ){
    background-color: black;
}
.mixin( @count )when( @count <= 0 ){
    background-color: white;
}
.tag {
    .mixin(100);
}
// Scss
@function selectCount($count) {
    @if $count > 0 {
        return black;
    }
    @else {
        return white;
    }
}
.tag {
    background-color: checkCount(100);
}
綜上,CSS 作為一門前端必備的基礎技能,具有許多原生的痛點。近年來,開發者們也在源源不斷地提出了不同的優化方案,我們在日常關注 Vue、React、NodeJS、性能優化等熱門前端話題的時候,也不要忘了好好寫 CSS 代碼呀~

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編程語言
    +關注

    關注

    10

    文章

    1938

    瀏覽量

    34593
  • 代碼
    +關注

    關注

    30

    文章

    4744

    瀏覽量

    68345
  • CSS
    CSS
    +關注

    關注

    0

    文章

    109

    瀏覽量

    14351

原文標題:如何優雅的寫css代碼

文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何讓你的Python代碼優雅又地道

    pythonic的代碼簡練,明確,優雅,絕大部分時候執行效率高。閱讀pythonic的代碼能體會到“代碼是寫給人看的,只是順便讓機器能運行”暢快。這篇文章是網友Jeff Paine整理
    的頭像 發表于 02-03 12:35 ?4556次閱讀

    HarmonyOS css和HTML css的區別是什么

    Gradients)和 徑向漸變(Radial Gradients)獨屬于HarmonyOS的一些屬性有一些是鴻蒙css獨有的屬性而普通css 沒有的注意事項目前HarmonyOS 代碼
    發表于 03-30 10:37

    鴻蒙css支持的屬性與普通css支持的屬性有哪些區別呢

    Gradients)和 徑向漸變(Radial Gradients)獨屬于HarmonyOS的一些屬性有一些是鴻蒙css獨有的屬性而普通css 沒有的注意事項目前HarmonyOS 代碼
    發表于 03-30 18:15

    如何查看/搜索/偷看/共享他人的css模板代碼

    如何查看/搜索/偷看/共享他人的css模板代碼   當我們看到他人漂亮的空間時,我們無不為他人的高超css技術而慨嘆!但自己也
    發表于 02-11 15:11 ?1014次閱讀

    css3按鈕特效

    css3按鈕特效css3按鈕特效css3按鈕特效css3按鈕特效css3按鈕特效css3按鈕特效
    發表于 05-24 14:14 ?0次下載

    怎樣來為armc代碼

    怎樣來為armc代碼
    發表于 10-30 10:32 ?12次下載
    怎樣來為arm<b class='flag-5'>寫</b>c<b class='flag-5'>代碼</b>

    讓你的 Python 代碼優雅又地道

    vs NP (pythonic vs non-pythonic)的討論。pythonic的代碼簡練,明確,優雅,絕大部分時候執行效率高。閱讀pythonic的代碼能體會到“代碼是寫給
    的頭像 發表于 03-06 10:35 ?3594次閱讀

    行為和結構及表現分離的CSS選項卡的代碼免費下載

    本文檔的主要內容詳細介紹的是行為和結構及表現分離的CSS選項卡的代碼免費下載。
    發表于 05-30 17:07 ?2次下載
    行為和結構及表現分離的<b class='flag-5'>CSS</b>選項卡的<b class='flag-5'>代碼</b>免費下載

    CSS框架:Materialize的特點和優缺點

    以Google為基礎的Materialize CSS融合了JavaScript、CSS和HTML等各種組件。它不但具有一定的響應能力,而且存在較少的瀏覽器兼容性問題。如果您希望構建一個優雅的UI,那么Materialize就可以
    的頭像 發表于 07-01 16:01 ?4587次閱讀

    CSS框架:Tachyons的優缺點

    與其他流行的前端框架不同,Tachyons旨在將CSS規則分解為小型的、可管理的、以及可復用的部件。Tachyons可以幫助開發人員創建出具有高度可讀性、能夠快速加載和響應的網站,而且無需使用大量CSS代碼
    的頭像 發表于 07-01 16:57 ?3798次閱讀

    程序員是怎么代碼的?常見問詳解

    騰訊程序員是怎么代碼的?,代碼,插件,sql,調用,編程
    的頭像 發表于 02-20 15:38 ?9642次閱讀

    如何提高代碼性能、使代碼遠離Bug、令代碼優雅

    背景:如何更規范化編寫Java代碼的重要性想必毋需多言,其中最重要的幾點當屬提高代碼性能、使代碼遠離Bug、令代碼優雅。 一、MyBati
    的頭像 發表于 08-17 09:42 ?1385次閱讀

    css.gg開源CSS、SVG和Figma UI圖標

    ./oschina_soft/css.gg.zip
    發表于 05-31 09:42 ?1次下載
    <b class='flag-5'>css</b>.gg開源<b class='flag-5'>CSS</b>、SVG和Figma UI圖標

    Facebook開源StyleX如何在JavaScript中CSS呢?

    Meta(原 Facebook)開源了全新的 CSS-in-JS 庫 StyleX。
    的頭像 發表于 12-14 10:03 ?670次閱讀

    Arm新Arm Neoverse計算子系統(CSS):Arm Neoverse CSS V3和Arm Neoverse CSS N3

    Arm宣布了兩款新的Arm Neoverse計算子系統(CSS),它們基于“迄今為止最好的一代Neoverse技術”。是什么讓這些新產品在擁擠的計算技術領域脫穎而出? Arm的兩個新Arm
    的頭像 發表于 04-24 17:53 ?987次閱讀
    Arm新Arm Neoverse計算子系統(<b class='flag-5'>CSS</b>):Arm Neoverse <b class='flag-5'>CSS</b> V3和Arm Neoverse <b class='flag-5'>CSS</b> N3