惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tailwind CSS Blog
大猫的无限游戏
大猫的无限游戏
L
LINUX DO - 热门话题
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
雷峰网
雷峰网
aimingoo的专栏
aimingoo的专栏
博客园_首页
MongoDB | Blog
MongoDB | Blog
V
V2EX
GbyAI
GbyAI
量子位
Microsoft Azure Blog
Microsoft Azure Blog
有赞技术团队
有赞技术团队
G
Google Developers Blog
云风的 BLOG
云风的 BLOG
B
Blog
Microsoft Security Blog
Microsoft Security Blog
S
SegmentFault 最新的问题
O
OpenAI News
N
News and Events Feed by Topic
博客园 - Franky
爱范儿
爱范儿
Forbes - Security
Forbes - Security
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V2EX - 技术
V2EX - 技术
Application and Cybersecurity Blog
Application and Cybersecurity Blog
N
News and Events Feed by Topic
N
News | PayPal Newsroom
Schneier on Security
Schneier on Security
Cloudbric
Cloudbric
Security Archives - TechRepublic
Security Archives - TechRepublic
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Recent Commits to openclaw:main
Recent Commits to openclaw:main
人人都是产品经理
人人都是产品经理
P
Privacy International News Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog RSS Feed
阮一峰的网络日志
阮一峰的网络日志
D
DataBreaches.Net
Last Week in AI
Last Week in AI
罗磊的独立博客
Spread Privacy
Spread Privacy
Recent Announcements
Recent Announcements
The Cloudflare Blog
Google DeepMind News
Google DeepMind News
AWS News Blog
AWS News Blog
The Register - Security
The Register - Security
Y
Y Combinator Blog
J
Java Code Geeks
I
Intezer

博客园 - 天际翔龙

一个苹果证书如何多次使用——导出p12文件[多台电脑使用] Log4net系列一:Log4net搭建之文本格式输出【转】 SMMS 2016 啟用深色主題 c#代碼小集 vscode: Visual Studio Code 常用快捷键【轉】 C#枚举Enum[轉] Android 杂记 解决genymotion-arm-translation.zip无法拖拽安装的问题[转] c#同步調用異步(async)方法【記錄用】 DDD基本概念 server2012/win8 卸载.net framework 4.5后 无法进入系统桌面故障解决【转】 Entity Framework中AutoDetectChangesEnabled為false時更新DB方法 git常用命令备忘录 MSSQL日誌傳輸熱備份注意事項 c#生成唯一编号方法记录,可用数据库主键 唯一+有序 Angular 隨記 使用dumpbin命令查看dll导出函数及重定向输出到文件【轉】 UML类图与类的关系详解【转】 知識隨記
ZenCoding[Emmet]語法簡介【轉】
天际翔龙 · 2018-02-27 · via 博客园 - 天际翔龙

快速指南

下面是一些常用的Zen Coding功能,目前VS2013的Web Essentials插件已经支持。

  • '#' 创建一个id特性
  • '.' 创建一个类特性
  • '[]' 创建一个自定义特性
  • '>' 创建一个子元素
  • '+' 创建一个兄弟元素
  • '^' 提升元素层次
  • '*' 相当于乘号,会创建n次相同的东西。
  • '$' 代替一个自增的数字。
  • '$$' 用于有填充位的数字,比如00,01。
  • '{}' 创建元素的文本。

可以做些啥呢?看下面这个复杂的例子:
div#olDiv>ol>li.item*6>span{ZenCoding$$}.red
按下Tab键后,它会生成下面的代码:

<div id="olDiv">
    <ol>
        <li class="item">
            <span class="red">ZenCoding01</span>
        </li>
        <li class="item">
            <span class="red">ZenCoding02</span>
        </li>
        <li class="item">
            <span class="red">ZenCoding03</span>
        </li>
        <li class="item">
            <span class="red">ZenCoding04</span>
        </li>
        <li class="item">
            <span class="red">ZenCoding05</span>
        </li>
        <li class="item">
            <span class="red">ZenCoding06</span>
        </li>
    </ol>
</div>

ID和Class特性:#和.

使用CSS样式语法可以创建一个元素,并给它赋予id或class特性。
div#container.layout会生成下面的代码:

<div id="container" class="layout"></div>

自定义特性:[]

可以使用中括号[]创建任何特性。
div[title]会生成下面的代码:

也可以创建多个特性并给特性赋值:
input[placeholder="请输入姓名" type="text"]会生成下面的代码:

<input type="text" value="" placeholder="请输入姓名" />

子元素:>

先要创建一个元素,然后才能创建它的子元素。
比如,form#loginForm.login>input[type="text"]会生成下面的代码:

<form id="loginForm" class="login">
      <input type="text" value="" />
 </form>

兄弟元素:+

使用Zen Coding可以很轻松地创建兄弟元素。
footer>div>a+input可以生成下面的代码:

<footer>
    <div>
        <a href=""></a>
        <input type="" value="" />
    </div>
</footer>

提升元素层次:^

>符号会降低元素的层次,然而^符号的作用相反,它是用来提升元素的层次的,而且还可以提升多个级别。比如,1^可以提升一个级别,4^可以提升4个级别。该功能不常用。

footer>div>a+input^^p,p标签要在input级别的基础上提升2个层次,这样p标签就和最外层的footer标签处于同一级别,所以,生成的代码如下:

<footer>
    <div>
        <a href=""></a>
        <input type="" value="" />
    </div>
</footer>
<p></p>

乘积:*

创建n个同样的元素。
ul>li*6会生成下面的代码:

<ul>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
</ul>

元素序号:$

当使用乘积*创建n个同样的元素时,可以使用$给它们添加一个自增的数字。注意:使用多个$操作符(如$$)会创建使用多个0填充的数字。
ul>li#id$$$*4会生成下面的代码:

<ul>
    <li id="id001"></li>
    <li id="id002"></li>
    <li id="id003"></li>
    <li id="id004"></li>
</ul>

元素中的文本:{}

要给元素输入文本时,可以使用{}符号。
ul>li*10>span{Windows $}会生成以下代码:

<ul>
    <li>
        <span>Windows 1</span>
    </li>
    <li>
        <span>Windows 2</span>
    </li>
    <li>
        <span>Windows 3</span>
    </li>
    <li>
        <span>Windows 4</span>
    </li>
    <li>
        <span>Windows 5</span>
    </li>
    <li>
        <span>Windows 6</span>
    </li>
    <li>
        <span>Windows 7</span>
    </li>
    <li>
        <span>Windows 8</span>
    </li>
    <li>
        <span>Windows 9</span>
    </li>
    <li>
        <span>Windows 10</span>
    </li>
</ul>

联合所有的符号

联合多个功能可以更快地编写一些相当酷的HTML,甚至可以为模板创建一些Knockout.js的绑定,然后只需要改变属性名就行了。

例如section[data-bind="foreach:customers"]>div*4>input[type="text" data-bind="text:$$"]会生成下面的代码:

<section data-bind="foreach:customers">
    <div>
        <input type="text" value="" data-bind="text:01" /></div>
    <div>
        <input type="text" value="" data-bind="text:02" /></div>
    <div>
        <input type="text" value="" data-bind="text:03" /></div>
    <div>
        <input type="text" value="" data-bind="text:04" /></div>
</section>

组合:()

组合是Zen Coding中强大的功能,它可以创建复杂的表达式。
例如 div>(header>div)+section>(ul>li*2>a)+footer>(div>span)可以生成下面的代码:

    <div>
        <header>
            <div></div>
        </header>
        <section>
            <ul>
                <li><a href=""></a></li>
                <li><a href=""></a></li>
            </ul>
            <footer>
                <div>
                    <span></span>
                </div>
            </footer>
        </section>
    </div>