ostCSS是一個(gè)非常通用的工具,它可以通過javascript插件轉(zhuǎn)換CSS樣式。它的靈活性在于它的建造方式。
PostCSS的核心部分是一個(gè)node.js模塊,您可以使用NPM進(jìn)行安裝,它有一個(gè)由200多個(gè)插件組成的生態(tài)系統(tǒng),您可以在項(xiàng)目中選擇使用這些插件。
PostCSS既不是預(yù)處理器,也不是后處理器,因?yàn)椴煌腜ostCSS插件可能屬于這兩類中的任何一類,或者同時(shí)屬于這兩類;它完全取決于您對它的理解。使用PostCSS,您不需要學(xué)習(xí)不同的語法,比如sass或Less;您可以立即開始使用它。
PostCSS獲取現(xiàn)有的css文件并將其轉(zhuǎn)換為javascript可讀數(shù)據(jù),然后javascript插件執(zhí)行修改,postss返回原始文件的修改版本。聽起來很酷,不是嗎?
在這篇文章中,我們將查看6個(gè)Postcss插件,讓您了解使用這個(gè)出色的工具可以實(shí)現(xiàn)的一些偉大的事情。
Autoprefixer
autoprefixer可能是最知名的postcss插件,因?yàn)樗还雀琛witter和Shopify等知名科技公司使用。它在必要的地方向CSS規(guī)則添加供應(yīng)商前綴。
autoprefixer使用我可以使用的數(shù)據(jù)。這樣它就不會過時(shí),而且可以應(yīng)用最新的規(guī)則。您可以在它的交互式演示站點(diǎn)上查看它的工作原理。
CSSnext
cssnext是一個(gè)CSS發(fā)起者,它允許您在當(dāng)前站點(diǎn)上使用未來的CSS語法。W3C有許多新的CSS規(guī)則,這些規(guī)則目前沒有被瀏覽器實(shí)現(xiàn),但可以使開發(fā)人員更快、更容易地編寫更復(fù)雜的CSS。cssnext是用來彌補(bǔ)這個(gè)缺口的。
值得一看它的特性,看看你能用它完成什么,例如你可以在你的設(shè)計(jì)中使用自定義媒體查詢、自定義選擇器、顏色修改器、SVG過濾器和新的偽類。
PreCSS
PreCSS是一個(gè)postcss插件,工作方式類似于css預(yù)處理器。它可以利用樣式文件中的標(biāo)記之類的SASS。
通過在工作流中引入PreCSS,您可以在CSS代碼中使用變量if else語句、for循環(huán)、mixin、@extend和@import規(guī)則、嵌套和許多其他方便的功能。PreCSS的Github文檔為您提供了如何充分利用它的詳細(xì)說明。
StyleLint
StyleLint是一個(gè)現(xiàn)代的CSS Linter,它可以校對和驗(yàn)證您的CSS代碼。它使避免錯(cuò)誤變得容易,并促使您遵循一致的編碼約定。
Stylelint了解最新的CSS語法,因此它可以與前面提到的precss插件一起使用。它還允許您進(jìn)行自己的配置,甚至檢查設(shè)置是否有效。
PostCSS Assets
PostssAssets插件是一個(gè)方便的CSS文件資源管理器。如果您在URL路徑方面遇到問題,這是一個(gè)很好的選擇,因?yàn)镻ostSS資產(chǎn)將樣式表文件與環(huán)境變化隔離開來。
您需要定義加載路徑、相對路徑和基本路徑,插件將自動(dòng)查找您需要的資源。例如,如果需要foobar.jpg圖像的正確URL,可以編寫以下代碼:
body { background: resolve('foobar.jpg'); }
Postcss Assets還負(fù)責(zé)節(jié)省緩存,因?yàn)槿绻M谛薷馁Y產(chǎn)時(shí)自動(dòng)更改URL路徑,可以將cachebuster變量設(shè)置為true。這個(gè)智能插件還可以計(jì)算圖像文件的尺寸(寬度和高度),甚至可以使用預(yù)設(shè)比例調(diào)整它們的大小
CSSNano
如果您需要一個(gè)生產(chǎn)站點(diǎn)的優(yōu)化和縮小的CSS文件,那么有必要查看cssnano。它是一個(gè)模塊化的插件,由許多較小的單一責(zé)任PostSS插件組成。它不僅執(zhí)行基本的縮小技術(shù),如刪除空白,還具有高級選項(xiàng),使集中優(yōu)化成為可能。
除了許多其他功能外,cssnano還能夠重新調(diào)整z-index值、減少自定義標(biāo)識符、轉(zhuǎn)換長度、時(shí)間和顏色值以及刪除過時(shí)的供應(yīng)商前綴。
SIS 是“Nullsoft 腳本安裝系統(tǒng)”(Nullsoft Scriptable Installation System) 的縮寫,它是一個(gè)Open Source的Windows系統(tǒng)下安裝程序制作程序。它提供了安裝、卸載、系統(tǒng)設(shè)置、文件解壓縮等功能。NSIS通過它的腳本語言來描述安裝程序的行為和邏輯的,因?yàn)樗谀_本文件,所以你可以完全控制你的安裝程序的每個(gè)部分。它的腳本語言支持變量、函數(shù)、字串處理,就像是一個(gè)普通的程序語言——但它是為安裝程序這類應(yīng)用所設(shè)計(jì)的。
以Qt打包后的程序,利用NSIS3.0.5為例,在Windows上定制安裝向?qū)А?br>雙擊“腳本編輯器VNISEdit”
選擇“新建腳本:向?qū)А?/span>
點(diǎn)擊下一步:
這里的參數(shù)自己都可以設(shè)置試一下,點(diǎn)擊下一步:
以打包一個(gè)hello.exe程序?yàn)槔?/span>
這個(gè)是做閃屏的,默認(rèn)不勾選。
這個(gè)界面的設(shè)置就比較重要了,授權(quán)文件就是我們的licence.txt文件,這個(gè)文件的編碼ASCII編碼,就是記事本新建的默認(rèn)文本格式,這個(gè)文件的的路徑必須是存在的,否則后面的時(shí)候不能生成安裝程序。
上面的程序默認(rèn)路徑,是指安裝的時(shí)候出現(xiàn)的路徑。
點(diǎn)擊下一步:
這個(gè)界面中,我這里只演示簡單的,常用方式,就是添加一個(gè)文件夾(包括子文件夾)中的全部文件
先把默認(rèn)的模板文件刪掉
點(diǎn)擊這是添加文件夾的,2.04和2.05版本這里不能添加子文件夾(后面需要自己改腳本文件), 3.05版本的NSIS可以添加文件夾(包括子文件夾里的文件)
這個(gè)是用windeployqt打包出來的:
點(diǎn)擊剛才那個(gè)按鈕,選擇你把包的hello程序的目錄,勾選包含子目錄(如果沒有包含子目錄選擇就直接點(diǎn)擊確定,后面再在腳本中加/r參數(shù)就行了)
點(diǎn)擊下一步:
添加桌面快捷方式:
手動(dòng)補(bǔ)全:
hello.lnk是自己的快捷方式名
$INSTDIR\hello.exe 這個(gè)是你打包的文件中的可執(zhí)行文件
這里可以不勾,自己看需求設(shè)置
自己輸入可執(zhí)行文件名,如果有入口參數(shù),則在這里加。自述還沒用過,自己可以試試。
點(diǎn)擊下一步:
這個(gè)界面也可以自己試試,我會保存腳本,下次就可以不用重新設(shè)置一遍了(要注意的是,腳本里使用的是相對路徑)。
1 | Section "MainSection" SEC01 |
如果發(fā)現(xiàn)不能添加子目錄,則添加/r,我這個(gè)版本有勾選“添加子目錄”,則不用做什么額外的操作。
1 | File /r "..\helloPackage\*.*" |
如果注意這里的/r參數(shù),這里可以手動(dòng)加參數(shù)的。
1 | /****************************** |
這里的
1 | RMDir "$INSTDIR" |
改成
1 | RMDir /r "$INSTDIR" |
這樣就可以把整個(gè)hello安裝目錄的所有文件,包括這個(gè)目錄都刪掉。
RMDir
[/r] [/REBOOTOK] 目錄名
刪除指定的目錄(沒有通配符的完整路徑)。沒有 /r 參數(shù)時(shí)只有在目錄為空時(shí)才會被刪除。如果指定了 /r ,則目錄會被遞歸刪除,所以在指定目錄下的所有文件和目錄均被刪除。如果指定了 /REBOOTOK ,任何當(dāng)前不能刪除的文件或目錄將會在重啟后被刪除 – 如果文件或目錄需要在重啟時(shí)被刪除,會放置一個(gè)重啟的標(biāo)記。當(dāng)文件或目錄不能被刪除時(shí)放置一個(gè)錯(cuò)誤的標(biāo)記。
看到這個(gè)界面,用菜單中的“編譯并運(yùn)行”
如果報(bào)錯(cuò),下面有提示信息,看看什么沒有設(shè)置。設(shè)置好后,下面就會出現(xiàn)這個(gè)安裝向?qū)С绦颍?/span>
安裝完成后,桌面有快捷圖標(biāo)。雙擊,看是否出現(xiàn)界面。
安裝目錄中,有個(gè)uninst.exe卸載程序
我下載的NSIS3.05,下載地址:
https://www.kddf.com/xiazai/Application/program/12563.html
別點(diǎn)到其他地方去了,這個(gè)壓縮文件大概有14.50 MB
Query表單向?qū)且粋€(gè)jQuery插件,與某種表格流協(xié)助表單創(chuàng)建(不用刷新頁面)。舉個(gè)例子,如果你有一個(gè)巨大的表格來輸入用戶數(shù)據(jù),你可以使用表單向?qū)韺⑵浞殖梢幌盗邢嚓P(guān)步驟。這一優(yōu)點(diǎn)使用戶不會被超長表單嚇到,并且當(dāng)用戶輸入信息時(shí)為其提供一些進(jìn)度指示。
在這篇文章中,我們列出了開發(fā)者最喜歡的六大jQuery表單向?qū)В剂苛怂鼈兊牟煌δ芤约叭绾蝿?chuàng)立你自己的向?qū)А_@不會是一個(gè)冗長的列表,如果你正在尋找一個(gè)jQuery表單向?qū)В@一定會為你指明正確的方向。
此列表在2017年8月30日更新,從列表中刪除了損壞和棄用的插件,并加入了新的插件來提供開發(fā)者要求的功能。
1. jQuery Steps
jQuery Steps是一個(gè)智能UI元素,使開發(fā)者可以很方便地創(chuàng)建向?qū)Ы缑妗_@個(gè)插件將內(nèi)容分成區(qū)塊來形成更有結(jié)構(gòu)和順序 的頁面外觀。它有多種功能,例如、狀態(tài)保持(這會保存你每一步的輸入)以及每個(gè)區(qū)塊的過渡效果。它可以通過NuGet或者bower安裝,擁有內(nèi)容和功能豐富的API。
2. jQuery Smart Wizard
Smart Wizard是一個(gè)靈活且高度客戶化的jQuery步驟向?qū)Р寮蠦ootstrap支持。它很容易執(zhí)行,并且可以為你的表單、檢出屏幕、注冊步驟創(chuàng)建一個(gè)整潔而時(shí)髦的界面。它的功能包括主題支持(包括了多個(gè)主題)、URL導(dǎo)航、步驟選擇和動(dòng)態(tài)隱藏或關(guān)閉步驟。它可以通過npm、bower和composer安裝,擁有內(nèi)容和功能豐富的API。
3. formToWizard
這個(gè)小型插件可以用jQuery將任何網(wǎng)絡(luò)表格轉(zhuǎn)換成多步驟的向?qū)В總€(gè)表格<fieldset>可以轉(zhuǎn)換成具有前進(jìn)和后退按鍵的單獨(dú)步驟。雖然它沒有像前兩個(gè)插件那么多的功能,但它和jQuer確認(rèn)插件整合,來提供確認(rèn)功能。它是一個(gè)單獨(dú)的文件(所以你可以從GitHub上將其提取下來),如果JavaScript不可用,它會慢慢的退化。
4. jQuery Stepy
jQuery Stepy是一個(gè)生成可客戶化表格的向?qū)АK俣ū砀裼刑囟ǖ慕Y(jié)構(gòu),其中有特定的類。然后你只需要初始化插件,然后就擁有了表單向?qū)А?/p>
此插件沒有任何預(yù)先設(shè)定的風(fēng)格。但是,它提供了豐富的選擇,例如可以在步驟之間導(dǎo)航,提供前進(jìn)、后退和完成按鈕與過渡效果,與任何你選用的確認(rèn)插件整合。它提供了合理的API,例如允許你觸發(fā)步驟間的召回,或者當(dāng)前步驟的確認(rèn)后的召回。
5. Twitter Bootstrap Wizard
這個(gè)Twitter Bootstrap插件利用形式可轉(zhuǎn)換結(jié)構(gòu)建造向?qū)АK试S用戶利用按鈕來建造一個(gè)向?qū)Чδ埽瑏肀樵L不同的向?qū)Р襟E和實(shí)踐,并分別接入每一步。此插件關(guān)鍵的優(yōu)勢在于它和Bootstrap緊密整合。它有一些基本功能,例如確認(rèn)、進(jìn)度條和創(chuàng)建或移除步驟的能力。另外,為了簡單地從GitHub中復(fù)制插件,它還可以通過Bower(雖然并不推薦)來安裝。它有不錯(cuò)的內(nèi)容且提供了基礎(chǔ)的API。
6. jQuery.wizard
最后要介紹的是jQuery.wizard。這是一個(gè)不同的表單向?qū)ВС址种А谠u論中被要求的功能之一。
基本結(jié)構(gòu)包括步驟和分支,后者是選擇性的。一個(gè)簡單的線性表格可能只要求一個(gè)包含所有步驟的分支,但復(fù)雜的表格可能要求用到多個(gè)分支,甚至是極為復(fù)雜的分支。開發(fā)者需要處理表單中步驟和分支的數(shù)量。向?qū)Р捎昧瞬煌挠邢薏襟E決定怎樣自身導(dǎo)航。
這一插件的內(nèi)容前所未有的豐富,提供了擴(kuò)展API。它可以通過npm或者Bower來安裝,與Internet Explorer 6之后的所有版本兼容。它可以和多種其他插件整合,包括最受歡迎的jQuery Validation。你可以通過復(fù)制回復(fù)并在瀏覽器中查看examples/index.html來查看不同的例子。
彩蛋
開源軟件的世界很精彩,在為新項(xiàng)目選用插件時(shí)可以坐享極豐富的選擇。但是,這并不意味著我們應(yīng)該躲避為有真正作用的軟件付費(fèi)。以下是兩種需要付費(fèi)的表單向?qū)Р寮N彝扑]你們?nèi)タ匆豢此鼈儯f不定會對你有用:
Form Wizard – Multi Step Form Validation(下載鏈接:https://codecanyon.net/item/form-wizard-multi-step-form-validation/19613591)
Timon – Step Form Wizard + jQuery Step Form Builder(下載鏈接:https://codecanyon.net/item/timon-step-form-wizard/15830006)
最后,如果你是那種喜歡弄懂所有事情的原理,不喜歡使用插件,那么你可能會想要看一看以下這些教程,告訴你如何通過探索來創(chuàng)建一個(gè)表單向?qū)А?/p>
Turn any webform into a powerful wizard with jQuery(地址:http://www.jankoatwarpspeed.com/turn-any-webform-into-a-powerful-wizard-with-jquery-formtowizard-plugin/)
Multistep Form With Progress Bar Using jQuery And CSS(地址:http://talkerscode.com/webtricks/multistep-form-with-progress-bar-using-jquery-and-css.php)
結(jié)論
你已經(jīng)擁有6個(gè)jQuery表單向?qū)Р寮脑敱M概覽,每一個(gè)插件都有不同的功能和特點(diǎn)。根據(jù)項(xiàng)目要求來選用它們,希望你可以從這篇文章中找到對你有所幫助的內(nèi)容。如果有什么遺漏請告知我們,或者通過下方評論告訴我們你最喜歡的插件是哪一個(gè)。
*請認(rèn)真填寫需求信息,我們會在24小時(shí)內(nèi)與您取得聯(lián)系。