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

目錄
關(guān)鍵要點(diǎn)
什麼,又一個(gè)? !
入門
編寫 Stylus 樣式
基本語(yǔ)法
變量
Mixin
最終想法
關(guān)於 Stylus 的常見問題解答 (FAQs)
Stylus 與其他 CSS 預(yù)處理器之間有哪些主要區(qū)別?
如何安裝 Stylus?
如何將 Stylus 編譯成 CSS?
我可以在 Stylus 中使用變量嗎?
Stylus 是否支持函數(shù)和 mixin?
如何在 Stylus 中使用條件語(yǔ)句?
我可以導(dǎo)入其他 Stylus 文件嗎?
Stylus 是否支持循環(huán)?
我可以將 Stylus 與 Node.js 一起使用嗎?
如何調(diào)試 Stylus 代碼?
首頁(yè) web前端 css教學(xué) 認(rèn)識(shí)手寫筆

認(rèn)識(shí)手寫筆

Feb 24, 2025 am 10:59 AM

Getting To Know Stylus

如果您是前端開發(fā)人員,您可能聽說過 Stylus,Sass 的遠(yuǎn)房親戚,鮮為人知。與 Sass 一樣,Stylus 也是一個(gè)用 Node.js 編寫的 CSS 預(yù)處理器。根據(jù)其 GitHub 代碼庫(kù),它自稱為:

[…] 一種革命性的新語(yǔ)言,提供了一種高效、動(dòng)態(tài)且富有表現(xiàn)力的方式來(lái)生成 CSS。

好吧,“革命性”可能有點(diǎn)誇張。但其他一切都是真的。

關(guān)鍵要點(diǎn)

  • Stylus 是一個(gè)用 Node.js 編寫的 CSS 預(yù)處理器,其語(yǔ)法比 Sass 等類似工具更寬鬆。它允許可選使用括號(hào)、冒號(hào)和分號(hào),並支持縮進(jìn)語(yǔ)法和常規(guī) CSS 樣式。
  • Stylus 支持使用變量、函數(shù)和 mixin,使 CSS 更接近真正的編程語(yǔ)言。它還具有屬性值查找功能,並能夠根據(jù)屬性是否已定義有條件地輸出屬性。
  • 儘管 Stylus 非常靈活,但使用 Stylus 需要遵守語(yǔ)法規(guī)則以避免混淆。它可以使用 Node.js 和 npm 安裝,並使用 stylus 命令編譯成 CSS。 Stylus 也有自己的框架 Nib,提供額外的輔助工具和跨瀏覽器支持 mixin。

什麼,又一個(gè)? !

有點(diǎn)像。但 Stylus 並非全新事物。它自 2011 年初就已存在,但我認(rèn)為它擁有一個(gè)相當(dāng)?shù)驼{(diào)的社區(qū)。順便說一句,您知道最新的 Mozilla 開發(fā)者網(wǎng)絡(luò)重新設(shè)計(jì)是用 Stylus 完成的嗎?參與該項(xiàng)目的 David Walsh 也撰寫了關(guān)於如何開始使用 Stylus 的文章。

那麼,與 Sass 相比,Stylus 的優(yōu)勢(shì)是什麼呢?好吧,它是用 Node.js 構(gòu)建的,在我看來(lái)這算是一個(gè)優(yōu)點(diǎn)。雖然由於 Node-Sass LibSass 包裝器,在 Node 工作流程中使用 Sass 完全沒問題,但這並不意味著 LibSass 完全是用 Node 編寫的。

此外,Stylus 具有極其寬鬆的語(yǔ)法,這可能是好是壞,取決於您的項(xiàng)目、團(tuán)隊(duì)以及您堅(jiān)持嚴(yán)格編碼規(guī)範(fàn)的傾向。我認(rèn)為只要您不在樣式表中包含太多邏輯,並在提交代碼之前進(jìn)行代碼檢查,寬鬆的語(yǔ)法應(yīng)該沒問題。

總而言之,Stylus 和 Sass 都幾乎支持相同的功能;您可以查看 Stylus 功能的完整列表,但不要期望有什麼突破性的東西(儘管有一些很不錯(cuò)的新功能)。 Stylus 還支持多種語(yǔ)法,儘管界限比Sass 模糊得多:您可以幾乎按照自己想要的方式編寫樣式(縮進(jìn)式、CSS 樣式),並且可以在同一個(gè)樣式表中混合搭配(這個(gè)解析器一定很有趣)。

那麼您怎麼看?想試試嗎?

入門

如前所述,Stylus 是用 Node.js 編寫的,因此我們可以像安裝任何其他 npm 包一樣安裝它:

<code>$ npm install stylus -g</code>

從那裡,您可以使用 JavaScript API 將其插入到您的 Node 工作流程中,也可以使用命令行可執(zhí)行文件來(lái)編譯您的樣式表。為了簡(jiǎn)單起見,我們將使用 stylus 命令行工具,但您可以隨意從 Node 腳本、Gulp 或 Grunt 中進(jìn)行處理。

<code>stylus ./stylesheets/ --out ./public/css</code>

前面的命令告訴 stylus 從 stylesheets 文件夾編譯所有 Stylus 樣式表 (.styl),並在 public/css 文件夾中生成它們。當(dāng)然,您也可以監(jiān)視目錄的變化:

<code>stylus --watch ./stylesheets/ --out ./public/css</code>

編寫 Stylus 樣式

如果您剛開始學(xué)習(xí)並且不想被新的語(yǔ)法弄得不知所措,請(qǐng)知道您可以在 .styl 文件中編寫純 CSS。由於 Stylus 支持標(biāo)準(zhǔn) CSS 語(yǔ)法,因此只使用 CSS 代碼然後慢慢增強(qiáng)它完全沒問題。

基本語(yǔ)法

關(guān)於語(yǔ)法本身,幾乎所有內(nèi)容都是可選的。大括號(hào):為什麼要費(fèi)心?分號(hào):算了吧!冒號(hào):也扔掉吧。括號(hào):拜託。以下是完全有效的 Stylus 代碼:

<code>.foo
.bar
  color tomato
  background deepskyblue</code>

一開始有點(diǎn)令人不安,但我們可以習(xí)慣它,尤其是在有語(yǔ)法高亮顯示的情況下。正如您可能猜到的那樣,前面的代碼編譯成:

<code>.foo, .bar {
  color: tomato;
  background: deepskyblue;
}</code>

變量

CSS 預(yù)處理器的最常用功能必須是定義變量的能力。 Stylus 也提供它並不奇怪。儘管與 Sass 相反,它們是用等號(hào) (=) 而不是冒號(hào) (:) 聲明的。此外,前導(dǎo)美元符號(hào) ($) 是可選的,可以安全地省略。

<code>// 定義 `text-font-stack` 變量
text-font-stack = 'Helvetica', 'Arial', sans-serif;

// 將其用作 `font` 屬性的一部分
body
  font 125% / 1.5 text-font-stack</code>

現(xiàn)在 Stylus 做了一些 Sass 或任何其他預(yù)處理器都不做的事情:屬性值查找。假設(shè)您想應(yīng)用等於寬度一半的負(fù)左邊距;在 Sass 中,您必須將寬度存儲(chǔ)在一個(gè)變量中,但在 Stylus 中則不需要:

<code>.foo
  width 400px
  position absolute
  left 50%
  margin-left (@width / 2)</code>

通過使用 @width,我們告訴 Stylus 獲取當(dāng)前塊的 width 屬性的值,將其視為變量。非常巧妙!另一個(gè)有趣的用例是根據(jù)屬性是否已定義有條件地輸出屬性:

<code>.foo
  // ... 其他樣式
  z-index: 1 unless @z-index</code>

在這種情況下,除非 .foo 已為 z-index 屬性分配值,否則 z-index 將設(shè)置為 1。將其與 mixin 結(jié)合使用,您就真正擁有了一些東西。

Mixin

說到這裡,讓我們定義一個(gè) mixin,因?yàn)樗赡苁?Sass 最流行的功能之一! Stylus 中的 mixin 不需要特定的關(guān)鍵字;只要它在其名稱的末尾帶有括號(hào)(空或非空),它就是一個(gè) mixin。

<code>size(width, height = width)
  width width
  height height</code>

同樣,包含 mixin 不需要像 @include 或 這樣的特定語(yǔ)法:

<code>.foo
  size(100px)</code>

如果您願(yuàn)意,您甚至可以刪除括號(hào),在這種情況下,它看起來(lái)像您使用的是完全標(biāo)準(zhǔn)的(但並非如此)CSS 屬性。這種機(jī)制被稱為 透明 mixin,因?yàn)樗鼈兊陌遣豢梢姷摹?

<code>.foo
  size 100px</code>

乍一看這可能看起來(lái)像個(gè)不必要的技巧,但如果您仔細(xì)考慮一下,這個(gè)功能實(shí)際上允許作者擴(kuò)展默認(rèn)的 CSS 語(yǔ)法??紤]以下 overflow mixin:

<code>$ npm install stylus -g</code>

如果給定的值為 ellipsis,它將打印獲得單行省略號(hào)溢出所需的眾所周知的聲明三元組。否則,它將打印給定的值。以下是使用方法:

<code>stylus ./stylesheets/ --out ./public/css</code>

它將產(chǎn)生:

<code>stylus --watch ./stylesheets/ --out ./public/css</code>

您必須承認(rèn),這是一個(gè)非??岬募记伞km然它可能令人困惑(並且可能很危險(xiǎn)),但能夠使用額外值擴(kuò)展標(biāo)準(zhǔn) CSS 屬性實(shí)際上是一個(gè)有趣的概念。

如果您想以 @content 的方式將一些內(nèi)容傳遞給 mixin,則可以通過 {block} 變量實(shí)現(xiàn)。在包含期間,您只需要在 mixin 名稱前添加 即可傳遞額外內(nèi)容。

<code>.foo
.bar
  color tomato
  background deepskyblue</code>

此代碼將編譯為:

<code>.foo, .bar {
  color: tomato;
  background: deepskyblue;
}</code>

Stylus mixin 的最後一個(gè)非常有趣的功能:它們始終有一個(gè) arguments 局部變量,其中包含包含時(shí)傳遞給 mixin 的所有參數(shù)(如果有)。例如,可以使用 [..] 像在 JavaScript 中一樣操作此變量並將其視為數(shù)組,以獲取特定索引處的值。

最終想法

遍歷 Stylus 的所有功能和語(yǔ)法技巧將過於冗長(zhǎng),我認(rèn)為我們已經(jīng)有了很好的介紹,至少足以開始學(xué)習(xí)!

如您所見,Stylus 非常寬鬆。在所有現(xiàn)有的 CSS 編寫輔助工具中,Stylus 絕對(duì)是將 CSS 最接近真正編程語(yǔ)言的工具。

請(qǐng)注意,Stylus 也擁有自己的框架,就像 Sass 擁有 Compass 一樣,它被稱為 Nib。 Nib 是一個(gè)工具箱,為 Stylus 提供額外的輔助工具和跨瀏覽器支持 mixin。

有些人可能喜歡它,有些人可能不喜歡。我的建議是嚴(yán)格遵守語(yǔ)法。處理如此寬鬆的語(yǔ)法並不總是那麼輕鬆。無(wú)論如何,看到 Sass 的一些不錯(cuò)的競(jìng)爭(zhēng)對(duì)手是很好的。

關(guān)於 Stylus 的常見問題解答 (FAQs)

Stylus 與其他 CSS 預(yù)處理器之間有哪些主要區(qū)別?

Stylus 是一種功能強(qiáng)大且靈活的動(dòng)態(tài)樣式表語(yǔ)言。與 Sass 和 Less 等其他 CSS 預(yù)處理器不同,Stylus 允許可選使用括號(hào)、冒號(hào)和分號(hào),使其更靈活且不太嚴(yán)格。它還支持縮進(jìn)語(yǔ)法和常規(guī) CSS 樣式,讓開發(fā)人員在編寫代碼時(shí)擁有更大的自由度。此外,Stylus 支持透明 mixin,這意味著您可以無(wú)需使用任何特殊語(yǔ)法即可調(diào)用 mixin。

如何安裝 Stylus?

可以使用 Node.js 和 npm(Node 包管理器)安裝 Stylus。首先,您需要在計(jì)算機(jī)上安裝 Node.js 和 npm。安裝完成後,您可以通過在終端或命令提示符中運(yùn)行命令 npm install stylus -g 來(lái)全局安裝 Stylus。這將允許您從計(jì)算機(jī)上的任何目錄使用 Stylus。

如何將 Stylus 編譯成 CSS?

編寫 Stylus 代碼後,可以使用終端或命令提示符中的 stylus 命令將其編譯成 CSS。例如,如果您的 Stylus 文件名為 style.styl,則應(yīng)運(yùn)行命令 stylus -c style.styl。這將在同一目錄中創(chuàng)建一個(gè)名為 style.css 的 CSS 文件。

我可以在 Stylus 中使用變量嗎?

是的,Stylus 支持使用變量。您可以通過為名稱賦值來(lái)定義變量。例如,font-size = 14px。然後,您可以通過引用其名稱在代碼的其他地方使用此變量,如下所示:p { font-size: font-size; }。

Stylus 是否支持函數(shù)和 mixin?

是的,Stylus 支持函數(shù)和 mixin。 Stylus 中的函數(shù)使用 def 關(guān)鍵字定義,可用於執(zhí)行計(jì)算或操作值。另一方面,mixin 是可重用的代碼塊,可以包含在其他規(guī)則集中。

如何在 Stylus 中使用條件語(yǔ)句?

Stylus 使用 if、else if 和 else 關(guān)鍵字支持條件語(yǔ)句。這些可用於根據(jù)某些條件應(yīng)用不同的樣式。例如,您可以使用條件語(yǔ)句根據(jù)屏幕尺寸應(yīng)用不同的字體大小。

我可以導(dǎo)入其他 Stylus 文件嗎?

是的,Stylus 允許您使用 @import 指令導(dǎo)入其他 Stylus 文件。這對(duì)於將代碼組織成單獨(dú)的文件並在多個(gè)樣式表中重用代碼非常有用。

Stylus 是否支持循環(huán)?

是的,Stylus 支持 for 和 while 循環(huán)。這些可用於生成重複的 CSS 規(guī)則或迭代列表和數(shù)組。

我可以將 Stylus 與 Node.js 一起使用嗎?

是的,Stylus 可以與 Node.js 一起使用。事實(shí)上,Stylus 是基於 Node.js 構(gòu)建的,可以使用 npm(Node 包管理器)安裝。您還可以將 Stylus 與 Express 一起使用,Express 是 Node.js 的一個(gè)流行的 Web 應(yīng)用程序框架。

如何調(diào)試 Stylus 代碼?

Stylus 提供一個(gè) --debug 標(biāo)誌,可用於輸出調(diào)試信息。這對(duì)於跟蹤錯(cuò)誤或了解代碼的處理方式很有幫助。此外,您可以在 Stylus 中使用 inspect() 函數(shù)來(lái)輸出變量或表達(dá)式的值。

以上是認(rèn)識(shí)手寫筆的詳細(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)頁(yè)開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

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

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

CSS會(huì)阻塞頁(yè)面渲染是因?yàn)闉g覽器默認(rèn)將內(nèi)聯(lián)和外部CSS視為關(guān)鍵資源,尤其是使用引入的樣式表、頭部大量?jī)?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ù)處理器使用。

什麼是圓錐級(jí)函數(shù)? 什麼是圓錐級(jí)函數(shù)? Jul 01, 2025 am 01:16 AM

theconic-Gradient()functionIncsscreatesCircularGradientsThatRotateColorStopSaroundAcentralPoint.1.IsidealForPieCharts,ProgressIndicators,colordichers,colorwheels和decorativeBackgrounds.2.itworksbysbysbysbydefindefingincolordefingincolorstopsatspecificains off.

CSS教程,用於創(chuàng)建粘性標(biāo)頭或頁(yè)腳 CSS教程,用於創(chuàng)建粘性標(biāo)頭或頁(yè)腳 Jul 02, 2025 am 01:04 AM

TocreatestickyheadersandfooterswithCSS,useposition:stickyforheaderswithtopvalueandz-index,ensuringparentcontainersdon’trestrictit.1.Forstickyheaders:setposition:sticky,top:0,z-index,andbackgroundcolor.2.Forstickyfooters,betteruseposition:fixedwithbot

CSS自定義屬性的範(fàn)圍是什麼? CSS自定義屬性的範(fàn)圍是什麼? Jun 25, 2025 am 12:16 AM

CSS自定義屬性的作用域取決於其聲明的上下文,全局變量通常定義在:root中,而局部變量則定義在特定選擇器內(nèi),以便組件化和隔離樣式。例如,定義在.card類中的變量?jī)H對(duì)匹配該類的元素及其子元素可用。最佳實(shí)踐包括:1.使用:root定義全局變量如主題色;2.在組件內(nèi)部定義局部變量以實(shí)現(xiàn)封裝;3.避免重複聲明同一變量;4.注意選擇器特異性可能引發(fā)的覆蓋問題。此外,CSS變量區(qū)分大小寫,且應(yīng)在使用前定義以避免錯(cuò)誤。若變量未定義或引用失敗,則會(huì)採(cǎi)用回退值或默認(rèn)值initial。調(diào)試時(shí)可通過瀏覽器開發(fā)者工

CSS網(wǎng)格中的FR單元是什麼? CSS網(wǎng)格中的FR單元是什麼? Jun 22, 2025 am 12:46 AM

ThefrunitinCSSGriddistributesavailablespaceproportionally.1.Itworksbydividingspacebasedonthesumoffrvalues,e.g.,1fr2frgivesone-thirdandtwo-thirds.2.Itenablesflexiblelayouts,avoidsmanualcalculations,andsupportsresponsivedesign.3.Commonusesincludeequal-

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

您可以在CSS網(wǎng)格項(xiàng)目中嵌套Flexbox容器嗎? 您可以在CSS網(wǎng)格項(xiàng)目中嵌套Flexbox容器嗎? Jun 22, 2025 am 12:40 AM

是的,可以在CSSGrid項(xiàng)中使用Flexbox。具體做法是先用Grid劃分頁(yè)面結(jié)構(gòu),在某個(gè)Grid單元格內(nèi)設(shè)置子容器為Flex容器,以實(shí)現(xiàn)更精細(xì)的對(duì)齊和排列;例如,在HTML中嵌套一個(gè)帶有display:flex樣式的div;這樣做的好處包括分層佈局、響應(yīng)式設(shè)計(jì)更容易、組件化開發(fā)更友好;需要注意display屬性僅影響直接子元素、避免過度嵌套、考慮舊版瀏覽器兼容性問題。

See all articles