Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 亚洲不卡视频,一区精品在线,2021国产在线视频

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          什么是postcss

          ostcss 一種對css編譯的工具,類似babel對js的處理,常見的功能如:

          1 . 使用下一代css語法

          2 . 自動補全瀏覽器前綴

          3 . 自動把px代為轉換成rem

          4 . css 代碼壓縮等等

          postcss 只是一個工具,本身不會對css一頓操作,它通過插件實現功能,autoprefixer 就是其一。

          與 less sass 的區別

          less sass 是預處理器,用來支持擴充css語法。

          postcss 既不是 預處理器也不是 后處理器,其功能比較廣泛,而且重要的一點是,postcss可以和less/sass結合使用

          如何使用

          這里只說在webpack里集成使用,首先需要 loader

          1 . 安裝

          npm install postcss-loader –save-dev

          2 . webpack配置

          一般與其他loader配合使用,下面*標部分才是postcss用到的

          配合時注意loader的順序(從下面開始加載)

          3 . postcss配置

          項目根目錄新建 postcss.config.js文件,里面配置一些插件



          注:也可以在webpack中配置

          常用的postcss插件

          1 . Autoprefixer

          前綴補全,全自動的,無需多說

          安裝:

          cnpm install Autoprefixer --save-dev

          2 . postcss-cssnext

          使用下個版本的css語法【關于語法另一篇文章會單獨講】

          安裝:

          cnpm install postcss-cssnext --save-dev

          3 . postcss-pxtorem

          把px轉換成rem

          安裝:

          cnpm install postcss-pxtorem --save-dev

          配置項:

          特殊技巧:不轉換成rem

          px檢測區分大小寫,也就是說Px/PX/pX不會被轉換,可以用這個方式避免轉換成rem

          原理

          工作流

          大致步驟:

          1. 將CSS解析成抽象語法樹(AST樹)
          2. 將AST樹”傳遞”給任意數量的插件處理
          3. 將處理完畢的AST樹重新轉換成字符串

          在PostCSS中有幾個關鍵的處理機制:

          Source string → Tokenizer → Parser → AST → Processor → Stringifier

          Tokenizer

          將源css字符串進行分詞

          舉個例子:

          .className { color: #FFF; }

          通過Tokenizer后結果如下:

          [
              ["word", ".className", 1, 1, 1, 10]
              ["space", " "]
              ["{", "{", 1, 12]
              ["space", " "]
              ["word", "color", 1, 14, 1, 18]
              [":", ":", 1, 19]
              ["space", " "]
              ["word", "#FFF" , 1, 21, 1, 23]
              [";", ";", 1, 24]
              ["space", " "]
              ["}", "}", 1, 26]
          ]

          以word類型為例,參數如下:

          const token = [
               // token 的類型,如word、space、comment
              'word',
          
              // 匹配到的詞名稱
              '.className',
          
              // 代表該詞開始位置的row以及column,但像 type為`space`的屬性沒有該值
              1, 1,
          
              // 代表該詞結束位置的row以及column,
              1, 10
          ]

          Parser

          經過Tokenizer之后,需要Parser將結果初始化為AST

          this.root = {
              type: 'root',
              source: { input: {css: ".className { color: #FFF; }", hasBOM: false, id: "<input css 1>"},
                             start: { line: 1, column: 1 } ,
                            end: { line: 1, column: 27 }
              },
             raws:{after: "", semicolon: false}
             nodes // 子元素
          }

          Processor

          經過AST之后,PostCSS提供了大量JS API給插件用

          Stringifier

          插件處理后,比如加瀏覽器前綴,會被重新Stringifier.stringify為一般CSS。

          參考:
          https://segmentfault.com/a/1190000017886402
          https://www.jianshu.com/p/288963680642


          作者:指尖跳動
          鏈接:https://www.jianshu.com/p/9a9048bc8978
          來源:簡書
          著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

          么是postcss?

          官網介紹PostCss是一個允許使用JS插件轉換樣式的工具。這些插件可以檢查(lint)你的CSS,支持CSS Variables和Mixins,編譯尚未被瀏覽器廣泛支持的先進的CSS語法,內聯圖片,以及其它很多優秀的功能。

          那么它到底是什么呢。

          我們先來介紹一下它最出名的最實用的插件 autoprefixer

          autoprefixer是一個讓你偷懶的神器。如果你的項目是PC端,并且產品大大或者項目大大要求你兼容低版本IE,各種瀏覽器,是不是很頭疼。別擔心,用了autoprefixer,寫正常的標準css就可以了,autoprefixer會自動幫你添加瀏覽器前綴哦。

          這樣寫是不是很省事,很神奇。

          除了這個用處外,國內外大佬們為它寫了非常多的插件。

          這里為大家提供幾個插件。

          cssnext

          cssnext能夠讓你使用下一代css語法,如目前css4還沒有各瀏覽器支持,但是可以使用cssnext來把css4的語法翻譯成css3

          posts-px2rem

          使用移動適配問題的插件

          posts-partial-import

          讓你的css文件支持@import

          precss

          這是一個大雜燴,主要是為了滿足SASS開發者的習慣,繼承了很多插件。

          postcss-mixins 一個和SASS的mixins用法相同的插件

          postcss-atroot 讓你的嵌套css處于根部

          posts-extend 有相同結構卻有那么一點點的區別,用這個可以方便同意管理相同部分樣式代碼

          postcss是如何使用得

          這里簡單展示一下webpack+postcss得使用

          首先需要安裝webpack中postcss得解析器 postcss-loader 還有我們需要使用得庫,這里我們只使用autoprefixer

          	$ yarn add postcss-loader
          	$ yarn add autoprefixer
          

          之后在webpack.config.js module rule中加入postcss-loader

          最后我們還得寫postcss.config.js,添加你加入的那些插件,我們這邊只使用了autoprefixer

          這樣我們就配置完成了個簡單的postcss得項目了。

          之后我會更加深入了解一下postcss其它插件得使用,會在以后為大家詳解。

          希望大家喜歡,可以多多關注一下我。

          ostCSS是一個非常通用的工具,它可以通過javascript插件轉換CSS樣式。它的靈活性在于它的建造方式。

          PostCSS的核心部分是一個node.js模塊,您可以使用NPM進行安裝,它有一個由200多個插件組成的生態系統,您可以在項目中選擇使用這些插件。

          PostCSS既不是預處理器,也不是后處理器,因為不同的PostCSS插件可能屬于這兩類中的任何一類,或者同時屬于這兩類;它完全取決于您對它的理解。使用PostCSS,您不需要學習不同的語法,比如sass或Less;您可以立即開始使用它。

          PostCSS獲取現有的css文件并將其轉換為javascript可讀數據,然后javascript插件執行修改,postss返回原始文件的修改版本。聽起來很酷,不是嗎?

          在這篇文章中,我們將查看6個Postcss插件,讓您了解使用這個出色的工具可以實現的一些偉大的事情。

          Autoprefixer

          autoprefixer可能是最知名的postcss插件,因為它被谷歌、Twitter和Shopify等知名科技公司使用。它在必要的地方向CSS規則添加供應商前綴。

          autoprefixer使用我可以使用的數據。這樣它就不會過時,而且可以應用最新的規則。您可以在它的交互式演示站點上查看它的工作原理。

          CSSnext

          cssnext是一個CSS發起者,它允許您在當前站點上使用未來的CSS語法。W3C有許多新的CSS規則,這些規則目前沒有被瀏覽器實現,但可以使開發人員更快、更容易地編寫更復雜的CSS。cssnext是用來彌補這個缺口的。

          值得一看它的特性,看看你能用它完成什么,例如你可以在你的設計中使用自定義媒體查詢、自定義選擇器、顏色修改器、SVG過濾器和新的偽類。

          PreCSS

          PreCSS是一個postcss插件,工作方式類似于css預處理器。它可以利用樣式文件中的標記之類的SASS。

          通過在工作流中引入PreCSS,您可以在CSS代碼中使用變量if else語句、for循環、mixin、@extend和@import規則、嵌套和許多其他方便的功能。PreCSS的Github文檔為您提供了如何充分利用它的詳細說明。

          StyleLint

          StyleLint是一個現代的CSS Linter,它可以校對和驗證您的CSS代碼。它使避免錯誤變得容易,并促使您遵循一致的編碼約定。

          Stylelint了解最新的CSS語法,因此它可以與前面提到的precss插件一起使用。它還允許您進行自己的配置,甚至檢查設置是否有效。

          PostCSS Assets

          PostssAssets插件是一個方便的CSS文件資源管理器。如果您在URL路徑方面遇到問題,這是一個很好的選擇,因為PostSS資產將樣式表文件與環境變化隔離開來。

          您需要定義加載路徑、相對路徑和基本路徑,插件將自動查找您需要的資源。例如,如果需要foobar.jpg圖像的正確URL,可以編寫以下代碼:

          body {
           background: resolve('foobar.jpg');
          }
          
          

          Postcss Assets還負責節省緩存,因為如果希望在修改資產時自動更改URL路徑,可以將cachebuster變量設置為true。這個智能插件還可以計算圖像文件的尺寸(寬度和高度),甚至可以使用預設比例調整它們的大小

          CSSNano

          如果您需要一個生產站點的優化和縮小的CSS文件,那么有必要查看cssnano。它是一個模塊化的插件,由許多較小的單一責任PostSS插件組成。它不僅執行基本的縮小技術,如刪除空白,還具有高級選項,使集中優化成為可能。

          除了許多其他功能外,cssnano還能夠重新調整z-index值、減少自定義標識符、轉換長度、時間和顏色值以及刪除過時的供應商前綴。


          主站蜘蛛池模板: 秋霞午夜一区二区| 无码人妻精品一区二区三区久久久| 中文字幕精品亚洲无线码一区| 91精品国产一区二区三区左线| 黄桃AV无码免费一区二区三区| 中文字幕av人妻少妇一区二区| 久久精品免费一区二区三区 | 久久久久一区二区三区| 日韩精品一区二区三区中文3d| 久久精品道一区二区三区| 久久精品国产一区二区电影| 精品国产日韩一区三区| 亚洲国产系列一区二区三区| 色窝窝无码一区二区三区| 亚洲av综合av一区| 日本一区二区不卡视频| 狠狠色成人一区二区三区| 久久精品国产亚洲一区二区三区| 乱色熟女综合一区二区三区| 夜夜爽一区二区三区精品| AV怡红院一区二区三区| 国产99精品一区二区三区免费| 一区二区三区在线播放视频| 亚洲AV无码一区二三区| 中文字幕一区二区三区精华液| 国产精品毛片一区二区| 久久精品国产一区二区电影| 精品久久一区二区三区| 老熟女五十路乱子交尾中出一区| 一区二区三区精品| 日韩国产免费一区二区三区| 无码少妇丰满熟妇一区二区| 日本精品啪啪一区二区三区| 日韩精品一区二三区中文| 亚洲国产激情一区二区三区| 亚洲欧洲∨国产一区二区三区| 亚洲一区二区在线视频| 国产日韩一区二区三区| 在线视频亚洲一区| 99精品国产一区二区三区| 亚洲视频一区调教|