node前端模板引擎Jade之标签的基本写法


Posted in Javascript onMay 11, 2018

1、文档声明

我们在开始写一个 html 页面的时候,首先要写上 DOCTYPE 文档声明的,现在通常情况下我们都是采用 HTML5 的文档声明方式,那么在 jade 里面我们应该怎么写呢?

在 jade 里面编写文档声明有2种方式:

  1. 我们可以直接在 jade 文件里面写 doctype html 即可
  2. jade 为我们提供了一个简单的写法,(不过好像 jade 在升级之后的新版本中不推荐使用此方法了 -_-||| )

当然,jade 还默认支持其他类型的文档声明,只需要使用 doctype 跟上下面的选项即可。jade 默认支持的有:

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 对大小写是不敏感的, 所以下面两个是一样的效果:

doctype Default
doctype default

例如:如果我们要想写 XHTML 1.0 Strict 文档声明,则可以这样写:

doctype strict

编译结果如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

2、标签

jade 中的标签的写法非常的简单,就是一个单词。

doctype html
html
 head
 title
 body

以上代码会被编译成:

<!DOCTYPE html>
<html>
 <head>
 <title></title>
 </head>
 <body></body>
</html>

jade 是以严格的缩进来区分标签的开始和结束的,默认为2个空格表示缩进。

如果我们要写一个标签并且带有内容,比如说要写一个标题,我们只需要在标签单词后面加一个空格,然后跟上内容即可。

h1 this is a title.
p this is a paragraph.

编译结果为:

 <h1>this is a title.</h1>
 <p>this is a paragraph.</p>

有的时候,我们会需要输出一些特殊排版格式的文本或者是为了提高代码的阅读性,需要显示出如下的效果:

<p>
  1. 001
  2. 002
  3. 003
  4. 004
</p>

那么我们在 jade 中应该怎么写呢,这里 jade 给我们提供了两种方式,第一种是在每一行前面加上一个 | 和空格:

p
 | 1. 001
 | 2. 002
 | 3. 003
 | 4. 004

第二种方法是:在标签名后面紧跟一个 . 号。则此标签下面的内容会被 jade 解析为一个代码段:

p.
 1. 001
 2. 002
 3. 003
 4. 004

这下有的同学就傻傻分不清了,这两种方式到底有什么区别呢?这里我们就不得不说到标签混排,如果我们有这样一个需求,在上面的代码中 1 的后面需要加一个 strong 标签。

首先我们说第一种情况下,我们的写法:

p
 | 1. 001
 strong aaa
 | 2. 002
 | 3. 003
 | 4. 004

如果是第二种写法的话,我们就需要这样写:

p.
 1. 001
 <strong>aaa</strong>
 2. 002
 3. 003
 4. 004

编译结果如下:

<p>
  1. 001
  <strong>aaa</strong>
  2. 002
  3. 003
  4. 004
</p>

3、标签的属性和属性值

h1 p 等等这些标签,我们通常都会给他们写上id & class属性的,那么这在 jade 中应该怎么写呢?和 zen coding 的语法一样,我们只需要这样写:

h1#id.class this is a title.
p#j-text.text this is a paragraph.

编译结果为:

<h1 id="id" class="class">this is a title.</h1>
<p id="j-text" class="text">this is a paragraph.</p>

等等,那我要是想添加多个 class 怎么办呢?这样办:

h1#id.class1.class2.class3 this is a title.
p#j-text.text this is a paragraph.

编译结果为:

<h1 id="id" class="class1 class2 class3">this is a title.</h1>
<p id="j-text" class="text">this is a paragraph.</p>

什么?写 div 写烦了?那就不写咯。

#id.class
#id.class1.class2 this is a div without tags.

编译结果为:

<div id="id" class="class"></div>
<div id="id" class="class1 class2">this is a div without tags.</div>

这里要说明一下,在 jade 的语法里面,只有 div 标签能够省略不写.

说完了 id 和 class,我们再来说一下标签其他的属性应该怎么添加。jade 里添加其他属性和值的语法也和 zen coding 类似,我们需要在标签后面加上小括号(),然后按照(属性名=属性值)的格式写就好了,如果有多个属性,中间以逗号进行分割。

比如上面的 id 和 class 的写法我们就可以改写成:

h1(id="id", class="class") this is a title.
p(id="j-text", class="text") this is a paragraph.

结果是一样的:

<h1 id="id" class="class">this is a title.</h1>
<p id="j-text" class="text">this is a paragraph.</p>

说来说去还是这两个属性,烦了?那我们换一个吧:

a(herf="/index.html", title="this is a link.", target="_blank", data-uid="1000") index.html

编译结果为:

<a herf="/index.html" title="this is a link." target="_blank" data-uid="1000">index.html</a>

那么问题就来了,如果我们要写一个单属性应该怎么写?比如给表单元素添加 checked属性:

input(type="checkbox", name="all", checked, value="全选")

编译结果为:

<input type="checkbox" name="all" checked="checked" value="全选"/>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用js来解决ajax读取页面乱码
Nov 28 Javascript
HTML页面滚动时获取离页面顶部的距离2种实现方法
Sep 05 Javascript
在子窗口中关闭父窗口的一句代码
Oct 21 Javascript
jquery左右全屏大尺寸多图滑动效果代码分享
Aug 28 Javascript
js实现仿爱微网两级导航菜单效果代码
Aug 31 Javascript
Node.js中npm常用命令大全
Jun 09 Javascript
Vue学习笔记进阶篇之vue-router安装及使用方法
Jul 19 Javascript
AngularJS双向数据绑定原理之$watch、$apply和$digest的应用
Jan 30 Javascript
JS中用EL表达式获取上下文参数值的方法
Mar 28 Javascript
使用vue-cli创建项目的图文教程(新手入门篇)
May 02 Javascript
浅析Proxy可以优化vue的数据监听机制问题及实现思路
Nov 29 Javascript
vue App.vue中的公共组件改变值触发其他组件或.vue页面监听
May 31 Javascript
JS实现的简单下拉框联动功能示例
May 11 #Javascript
JS实现table表格内针对某列内容进行即时搜索筛选功能
May 11 #Javascript
node前端开发模板引擎Jade的入门
May 11 #Javascript
Node.js 使用jade模板引擎的示例
May 11 #Javascript
Node.js Express安装与使用教程
May 11 #Javascript
Node.js创建HTTP文件服务器的使用示例
May 11 #Javascript
Node.js引入UIBootstrap的方法示例
May 11 #Javascript
You might like
PHP个人网站架设连环讲(二)
2006/10/09 PHP
PHP个人网站架设连环讲(三)
2006/10/09 PHP
一个图形显示IP的PHP程序代码
2007/10/19 PHP
使用PHP遍历文件目录与清除目录中文件的实现详解
2013/06/24 PHP
php实现等比例不失真缩放上传图片的方法
2016/11/14 PHP
laravel实现于语言包的完美切换方法
2019/09/29 PHP
基于jQuery的消息提示插件之旅 DivAlert(三)
2010/04/01 Javascript
在网站上应该用的30个jQuery插件整理
2011/11/03 Javascript
21个值得收藏的Javascript技巧
2014/02/04 Javascript
Node.js实现简单聊天服务器
2014/06/20 Javascript
jquery对复选框(checkbox)的操作汇总
2016/01/13 Javascript
JS监控关闭浏览器操作的实例详解
2017/09/12 Javascript
微信小程序dom操作的替代思路实例分析
2018/12/06 Javascript
js module大战
2019/04/19 Javascript
详解微信小程序调用支付接口支付
2019/04/28 Javascript
亲自动手实现vue日历控件
2019/06/26 Javascript
Vue如何将页面导出成PDF文件
2020/08/17 Javascript
python字典序问题实例
2014/09/26 Python
Python的Django应用程序解决AJAX跨域访问问题的方法
2016/05/31 Python
python使用Matplotlib画饼图
2018/09/25 Python
python实现自动解数独小程序
2019/01/21 Python
Pandas读取并修改excel的示例代码
2019/02/17 Python
python3.6 tkinter实现屏保小程序
2019/07/30 Python
django数据模型on_delete, db_constraint的使用详解
2019/12/24 Python
python中wx模块的具体使用方法
2020/05/15 Python
Python爬虫谷歌Chrome F12抓包过程原理解析
2020/06/04 Python
Python实时监控网站浏览记录实现过程详解
2020/07/14 Python
python音频处理的示例详解
2020/12/23 Python
Eton丹麦官网:精美的男式衬衫
2020/05/27 全球购物
“学雷锋活动月”总结
2014/03/09 职场文书
假面舞会策划方案
2014/05/29 职场文书
法学院毕业生求职信
2014/06/25 职场文书
2014幼儿园大班工作总结
2014/11/10 职场文书
关于空气污染危害的感想
2015/08/11 职场文书
熟背这些句子,让您的英语口语突飞猛进(135句)
2019/09/06 职场文书
读《皮囊》有感:理解是对他人的最大的善举
2019/11/14 职场文书