node前端模板引擎Jade之標(biāo)簽的基本寫(xiě)法
1、文檔聲明
我們?cè)陂_(kāi)始寫(xiě)一個(gè) html 頁(yè)面的時(shí)候,首先要寫(xiě)上 DOCTYPE 文檔聲明的,現(xiàn)在通常情況下我們都是采用 HTML5 的文檔聲明方式,那么在 jade 里面我們應(yīng)該怎么寫(xiě)呢?
在 jade 里面編寫(xiě)文檔聲明有2種方式:
- 我們可以直接在 jade 文件里面寫(xiě) doctype html 即可
- jade 為我們提供了一個(gè)簡(jiǎn)單的寫(xiě)法,(不過(guò)好像 jade 在升級(jí)之后的新版本中不推薦使用此方法了 -_-||| )
當(dāng)然,jade 還默認(rèn)支持其他類型的文檔聲明,只需要使用 doctype 跟上下面的選項(xiàng)即可。jade 默認(rèn)支持的有:
var doctypes = exports.doctypes = {
'5': '<!DOCTYPE html>',
'xml': '<?xml version="1.0" encoding="utf-8" ?>',
'default': '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">',
'transitional': '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">',
'strict': '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">',
'frameset': '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">',
'1.1': '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">',
'basic': '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">',
'mobile': '<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd">'
};
doctype 對(duì)大小寫(xiě)是不敏感的, 所以下面兩個(gè)是一樣的效果:
doctype Default doctype default
例如:如果我們要想寫(xiě) XHTML 1.0 Strict 文檔聲明,則可以這樣寫(xiě):
doctype strict
編譯結(jié)果如下:
2、標(biāo)簽
jade 中的標(biāo)簽的寫(xiě)法非常的簡(jiǎn)單,就是一個(gè)單詞。
doctype html html head title body
以上代碼會(huì)被編譯成:
<!DOCTYPE html> <html> <head> <title></title> </head> <body></body> </html>
jade 是以嚴(yán)格的縮進(jìn)來(lái)區(qū)分標(biāo)簽的開(kāi)始和結(jié)束的,默認(rèn)為2個(gè)空格表示縮進(jìn)。
如果我們要寫(xiě)一個(gè)標(biāo)簽并且?guī)в袃?nèi)容,比如說(shuō)要寫(xiě)一個(gè)標(biāo)題,我們只需要在標(biāo)簽單詞后面加一個(gè)空格,然后跟上內(nèi)容即可。
h1 this is a title. p this is a paragraph.
編譯結(jié)果為:
<h1>this is a title.</h1>
<p>this is a paragraph.</p>
有的時(shí)候,我們會(huì)需要輸出一些特殊排版格式的文本或者是為了提高代碼的閱讀性,需要顯示出如下的效果:
<p>
1. 001
2. 002
3. 003
4. 004
</p>
那么我們?cè)?jade 中應(yīng)該怎么寫(xiě)呢,這里 jade 給我們提供了兩種方式,第一種是在每一行前面加上一個(gè) | 和空格:
p | 1. 001 | 2. 002 | 3. 003 | 4. 004
第二種方法是:在標(biāo)簽名后面緊跟一個(gè) . 號(hào)。則此標(biāo)簽下面的內(nèi)容會(huì)被 jade 解析為一個(gè)代碼段:
p. 1. 001 2. 002 3. 003 4. 004
這下有的同學(xué)就傻傻分不清了,這兩種方式到底有什么區(qū)別呢?這里我們就不得不說(shuō)到標(biāo)簽混排,如果我們有這樣一個(gè)需求,在上面的代碼中 1 的后面需要加一個(gè) strong 標(biāo)簽。
首先我們說(shuō)第一種情況下,我們的寫(xiě)法:
p | 1. 001 strong aaa | 2. 002 | 3. 003 | 4. 004
如果是第二種寫(xiě)法的話,我們就需要這樣寫(xiě):
p. 1. 001 <strong>aaa</strong> 2. 002 3. 003 4. 004
編譯結(jié)果如下:
<p>
1. 001
<strong>aaa</strong>
2. 002
3. 003
4. 004
</p>
3、標(biāo)簽的屬性和屬性值
h1 p 等等這些標(biāo)簽,我們通常都會(huì)給他們寫(xiě)上id & class屬性的,那么這在 jade 中應(yīng)該怎么寫(xiě)呢?和 zen coding 的語(yǔ)法一樣,我們只需要這樣寫(xiě):
h1#id.class this is a title. p#j-text.text this is a paragraph.
編譯結(jié)果為:
<h1 id="id" class="class">this is a title.</h1>
<p id="j-text" class="text">this is a paragraph.</p>
等等,那我要是想添加多個(gè) class 怎么辦呢?這樣辦:
h1#id.class1.class2.class3 this is a title. p#j-text.text this is a paragraph.
編譯結(jié)果為:
<h1 id="id" class="class1 class2 class3">this is a title.</h1>
<p id="j-text" class="text">this is a paragraph.</p>
什么?寫(xiě) div 寫(xiě)煩了?那就不寫(xiě)咯。
#id.class #id.class1.class2 this is a div without tags.
編譯結(jié)果為:
<div id="id" class="class"></div>
<div id="id" class="class1 class2">this is a div without tags.</div>
這里要說(shuō)明一下,在 jade 的語(yǔ)法里面,只有 div 標(biāo)簽?zāi)軌蚴÷圆粚?xiě).
說(shuō)完了 id 和 class,我們?cè)賮?lái)說(shuō)一下標(biāo)簽其他的屬性應(yīng)該怎么添加。jade 里添加其他屬性和值的語(yǔ)法也和 zen coding 類似,我們需要在標(biāo)簽后面加上小括號(hào)(),然后按照(屬性名=屬性值)的格式寫(xiě)就好了,如果有多個(gè)屬性,中間以逗號(hào)進(jìn)行分割。
比如上面的 id 和 class 的寫(xiě)法我們就可以改寫(xiě)成:
h1(id="id", class="class") this is a title. p(id="j-text", class="text") this is a paragraph.
結(jié)果是一樣的:
<h1 id="id" class="class">this is a title.</h1>
<p id="j-text" class="text">this is a paragraph.</p>
說(shuō)來(lái)說(shuō)去還是這兩個(gè)屬性,煩了?那我們換一個(gè)吧:
a(herf="/index.html", title="this is a link.", target="_blank", data-uid="1000") index.html
編譯結(jié)果為:
<a herf="/index.html" title="this is a link." target="_blank" data-uid="1000">index.html</a>
那么問(wèn)題就來(lái)了,如果我們要寫(xiě)一個(gè)單屬性應(yīng)該怎么寫(xiě)?比如給表單元素添加 checked屬性:
input(type="checkbox", name="all", checked, value="全選")
編譯結(jié)果為:
<input type="checkbox" name="all" checked="checked" value="全選"/>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- node前端開(kāi)發(fā)模板引擎Jade的入門(mén)
- Node.js 使用jade模板引擎的示例
- vue 使用Jade模板寫(xiě)html,stylus寫(xiě)css的方法
- 詳解Node.js模板引擎Jade入門(mén)
- 基于模板引擎Jade的應(yīng)用(詳解)
- Node.js+jade+mongodb+mongoose實(shí)現(xiàn)爬蟲(chóng)分離入庫(kù)與生成靜態(tài)文件的方法
- Node.js+jade抓取博客所有文章生成靜態(tài)html文件的實(shí)例
- 基于Node.js模板引擎教程-jade速學(xué)與實(shí)戰(zhàn)1
- Nodejs express框架一個(gè)工程中同時(shí)使用ejs模版和jade模版
- node+express+jade制作簡(jiǎn)單網(wǎng)站指南
相關(guān)文章
koa2上傳文件及https配置實(shí)現(xiàn)教程
這篇文章主要為大家介紹了koa2上傳文件及https配置實(shí)現(xiàn)教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
nodejs利用http模塊實(shí)現(xiàn)銀行卡所屬銀行查詢和騷擾電話驗(yàn)證示例
本篇文章主要介紹了nodejs利用http模塊實(shí)現(xiàn)銀行卡所屬銀行查詢和騷擾電話驗(yàn)證示例,有興趣的可以了解一下。2016-12-12
nodejs實(shí)現(xiàn)獲取本地文件夾下圖片信息功能示例
這篇文章主要介紹了nodejs實(shí)現(xiàn)獲取本地文件夾下圖片信息功能,涉及node.js針對(duì)文件、目錄的遍歷、讀取等相關(guān)操作技巧,需要的朋友可以參考下2019-06-06
node.js中的fs.fstatSync方法使用說(shuō)明
這篇文章主要介紹了node.js中的fs.fstatSync方法使用說(shuō)明,本文介紹了fs.fstatSync的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12
node微信開(kāi)發(fā)之獲取access_token+自定義菜單
這篇文章主要介紹了node微信開(kāi)發(fā)之獲取access_token+自定義菜單,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
node.js使用express-fileupload中間件實(shí)現(xiàn)文件上傳
本文使用express作為服務(wù)端,使用express-fileupload庫(kù)提供的中間件函數(shù)來(lái)接受從客戶端傳來(lái)的圖片,并將圖片作為文件存儲(chǔ)在服務(wù)端,感興趣的可以了解一下2021-07-07
nodejs和npm版本不匹配報(bào)錯(cuò)的解決方法
當(dāng)公司要求使用固定nodejs的版本時(shí),自己不小心更新了npm,就會(huì)導(dǎo)致npm和nodejs不匹配,下面這篇文章主要給大家介紹了關(guān)于nodejs和npm版本不匹配報(bào)錯(cuò)的解決方法,需要的朋友可以參考下2023-04-04

