ZenCoding 一种快速编写HTMLCSS代码的方法


在本文中我们将展示一种新的使用仿CSS选择器的语法来快速开发HTMLCSS的方法。

JavaScript方面,当我们想要在一个页面上获取某个特定的元素时,我们就会遇到同样的问题,我们必须写很多代码,这就变得难于维护和重用。JavaScript框架应运而生,它们同时引入了CSS选择器引擎。现在,你可以使用简单的CSS表达式来获取DOM元素,这相当酷。

但是,如果你不仅仅可以用CSS的选择器布局和定位元素,还能生成代码会怎么样?比如,如果你这样写:

div#content>h1+p

然后就可以看到这样的输出:

<divid="content">

<h1></h1>

<p></p>

</div>

一组用于快速HTMLCSS编码的工具

ZenCoding由两个核心组件组成:一个缩写扩展器(缩写为像CSS一样的选择器)和上下文无关的HTML标签对匹配器。看一下这个演示视频来看一下它们能为你做些什么。



展开缩写

展开缩写功能将类似CSS的选择器转换为XHTML代码。术语“缩写”可能会有点儿难以理解。为什么不直接称之为“CSS选择器”呢?嗯,首要原因是语义化:“选择器”意为选择一些东西,但是在这里我们事实上是生成一些东西,是写一个长代码的较短的替代。其次,它只是使用真实的CSS选择器语法的一个小的子集,并添加了一些新的操作符。

这里是一个支持的属性和操作符的列表:

  • E
    元素名称(div,p);

  • E#id
    使用id的元素(div#content,p#intro, span#error);

  • E.class
    使用类的元素(div.header,p.error.critial). 你也可以联合使用classidID:div#content.column.width;

  • E>N
    子代元素(div>p,div#footer>p>span);

  • E+N
    兄弟元素(h1+p,div#header+div#content+div#footer);

  • E*N
    元素倍增(ul#nav>li*5>a);

  • E$*N
    条目编号(ul#nav>li.item-$*5);

正如你能看到的,你已经知道如何使用ZenCoding了:只是些一个简单的仿CSS选择器(呃,“缩写”抱歉),就像这样…

div#header>img.logo+ul#nav>li*4>a

然后调用”展开缩写”行为。

这里有两个新增的操作符:元素倍增和条目编号。比如,如果你想生成5<li>元素,你可以简单的写位li*5。它也将同样重写全部子代元素。如果你想写4<li>元素,每个里面都有一个<a>标签,你就可以简单的写为li*4>a,这样会生成以下HTML代码:

1

2

3

4

<li><ahref=""></a></li>

<li><ahref=""></a></li>

<li><ahref=""></a></li>

<li><ahref=""></a></li>

最后一个——条目编号用于当你想用索引标记重复的元素的情况。假设你想生成classitem1item2item33<div>元素。你可以写成这样的缩写,div.item$*3:

1

2

3

<divclass="item1"></div>

<divclass="item2"></div>

<divclass="item3"></div>

只需在你想要索引出现的任何classid属性上添加一个美元符号即可,而且想要多少都可以。那么,这样…

div#i$-test.class$$$*5

会被转换成为:

1

2

3

4

5

<divid="i1-test"class="class111"></div>

<divid="i2-test"class="class222"></div>

<divid="i3-test"class="class333"></div>

<divid="i4-test"class="class444"></div>

<divid="i5-test"class="class555"></div>

你会看到,当你写a的缩写的时候,输出是<ahref=”"></a>。或者,如果你写img,输出就是<imgsrc=”" alt=”" />





如果你在这段文本外面包裹这段缩写div#header>ul#navigation>li.item$*>a>span

1

2

3

4

5

AboutUs

Products

News

Blog

ContactUp

你将会得到以下结果:

1

2

3

4

5

6

7

8

9

<divid="header">

<ulid="navigation">

<liclass="item1"><ahref=""><span>AboutUs</span></a></li>

<liclass="item2"><ahref=""><span>Products</span></a></li>

<liclass="item3"><ahref=""><span>News</span></a></li>

<liclass="item4"><ahref=""><span>Blog</span></a></li>

<liclass="item5"><ahref=""><span>ContactUp</span></a></li>

</ul>

</div>

你可以看到,ZenCoding是一个强大的文本处理工具。





语法:

后代:>

缩写nav>ul>li

<nav>
    <ul>
        <li></li>
    </ul>
</nav>
兄弟:+

缩写div+p+bq

<div></div>
<p></p>
<blockquote></blockquote>
上级:^

缩写div+div>p>span+em^bq

<div></div>
<div>
    <p><span></span><em></em></p>
    <blockquote></blockquote>
</div>

缩写div+div>p>span+em^^bq

<div></div>
<div>
    <p><span></span><em></em></p>
</div>
<blockquote></blockquote>
分组:()

缩写div>(header>ul>li*2>a)+footer>p

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

缩写(div>dl>(dt+dd)*3)+footer>p

<div>
    <dl>
        <dt></dt>
        <dd></dd>
        <dt></dt>
        <dd></dd>
        <dt></dt>
        <dd></dd>
    </dl>
</div>
<footer>
    <p></p>
</footer>
乘法:*

缩写ul>li*5

<ul>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
</ul>
自增符号:$

缩写ul>li.item$*5

<ul>
    <li class="item1"></li>
    <li class="item2"></li>
    <li class="item3"></li>
    <li class="item4"></li>
    <li class="item5"></li>
</ul>

缩写h$[title=item$]{Header$}*3

<h1 title="item1">Header 1</h1>
<h2 title="item2">Header 2</h2>
<h3 title="item3">Header 3</h3>

缩写ul>li.item$$$*5

<ul>
    <li class="item001"></li>
    <li class="item002"></li>
    <li class="item003"></li>
    <li class="item004"></li>
    <li class="item005"></li>
</ul>

缩写ul>li.item$@-*5

<ul>
    <li class="item5"></li>
    <li class="item4"></li>
    <li class="item3"></li>
    <li class="item2"></li>
    <li class="item1"></li>
</ul>

缩写ul>li.item$@3*5

<ul>
    <li class="item3"></li>
    <li class="item4"></li>
    <li class="item5"></li>
    <li class="item6"></li>
    <li class="item7"></li>
</ul>
ID和类属性

缩写#header

<div id="header"></div>

缩写.title

<div class="title"></div>

缩写form#search.wide

<form id="search" class="wide"></form>

缩写p.class1.class2.class3

<p class="class1 class2 class3"></p>
自定义属性

缩写p[title="Helloworld"]

<p title="Hello world"></p>

缩写td[rowspan=2colspan=3 title]

<td rowspan="2" colspan="3" title=""></td>

缩写[a='value1'b="value2"]

<div a="value1" b="value2"></div>
文本:{}

缩写a{Clickme}

<a href="">Click me</a>

缩写p>{Click}+a{here}+{ to continue}

<p>Click <a href="">here</a> to continue</p>
隐式标签

缩写.class

<div class="class"></div>

缩写em>.class

<em><span class="class"></span></em>

缩写ul>.class

<ul>
    <li class="class"></li>
</ul>

缩写table>.row>.col

<table>
    <tr class="row">
        <td class="col"></td>
    </tr>
</table>

HTML

所有未知的缩写都会转换成标签,例如,foo→ <foo></foo>

缩写!

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>

</body>
</html>

缩写a

<a href=""></a>

缩写a:link

<a href="http://"></a>

缩写a:mail

<a href="mailto:"></a>

缩写abbr

<abbr title=""></abbr>

缩写acronym

<acronym title=""></acronym>

缩写base

<base href="" />

缩写basefont

<basefont />

缩写br

<br />

缩写frame

<frame />

缩写hr

<hr />

缩写bdo

<bdo dir=""></bdo>

缩写bdo:r

<bdo dir="rtl"></bdo>

缩写bdo:l

<bdo dir="ltr"></bdo>

缩写col

<col />

缩写link

<link rel="stylesheet" href="" />

缩写link:css

<link rel="stylesheet" href="style.css" />

缩写link:print

<link rel="stylesheet" href="print.css" media="print" />

缩写link:favicon

<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />

缩写link:touch

<link rel="apple-touch-icon" href="favicon.png" />

缩写link:rss

<link rel="alternate" type="application/rss+xml" title="RSS" href="rss.xml" />

缩写link:atom

<link rel="alternate" type="application/atom+xml" title="Atom" href="atom.xml" />

缩写meta

<meta />

缩写meta:utf

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />

缩写meta:win

<meta http-equiv="Content-Type" content="text/html;charset=windows-1251" />

缩写meta:vp

<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />

缩写meta:compat

<meta http-equiv="X-UA-Compatible" content="IE=7" />

缩写style

<style></style>

缩写script

<script></script>

缩写script:src

<script src=""></script>

缩写img

<img src="" alt="" />

缩写iframe

<iframe src="" frameborder="0"></iframe>

缩写embed

<embed src="" type="" />

缩写object

<object data="" type=""></object>

缩写param

<param name="" value="" />

缩写map

<map name=""></map>

缩写area

<area shape="" coords="" href="" alt="" />

缩写area:d

<area shape="default" href="" alt="" />

缩写area:c

<area shape="circle" coords="" href="" alt="" />

缩写area:r

<area shape="rect" coords="" href="" alt="" />

缩写area:p

<area shape="poly" coords="" href="" alt="" />

缩写form

<form action=""></form>

缩写form:get

<form action="" method="get"></form>

缩写form:post

<form action="" method="post"></form>

缩写label

<label for=""></label>

缩写input

<input type="text" />

缩写inp

<input type="text" name="" id="" />

缩写input:hidden

别名:input[type=hiddenname]

<input type="hidden" name="" />

缩写input:h

别名:input:hidden

<input type="hidden" name="" />

缩写input:text,input:t

别名:inp

<input type="text" name="" id="" />

缩写input:search

别名:inp[type=search]

<input type="search" name="" id="" />

缩写input:email

别名:inp[type=email]

<input type="email" name="" id="" />

缩写input:url

别名:inp[type=url]

<input type="url" name="" id="" />

缩写input:password

别名:inp[type=password]

<input type="password" name="" id="" />

缩写input:p

别名:input:password

<input type="password" name="" id="" />

缩写input:datetime

别名:inp[type=datetime]

<input type="datetime" name="" id="" />

缩写input:date

别名:inp[type=date]

<input type="date" name="" id="" />

缩写input:datetime-local

别名:inp[type=datetime-local]

<input type="datetime-local" name="" id="" />

缩写input:month

别名:inp[type=month]

<input type="month" name="" id="" />

缩写input:week

别名:inp[type=week]

<input type="week" name="" id="" />

缩写input:time

别名:inp[type=time]

<input type="time" name="" id="" />

缩写input:number

别名:inp[type=number]

<input type="number" name="" id="" />

缩写input:color

别名:inp[type=color]

<input type="color" name="" id="" />

缩写input:checkbox

别名:inp[type=checkbox]

<input type="checkbox" name="" id="" />

缩写input:c

别名:input:checkbox

<input type="checkbox" name="" id="" />

缩写input:radio

别名:inp[type=radio]

<input type="radio" name="" id="" />

缩写input:r

别名:input:radio

<input type="radio" name="" id="" />

缩写input:range

别名:inp[type=range]

<input type="range" name="" id="" />

缩写input:file

别名:inp[type=file]

<input type="file" name="" id="" />

缩写input:f

别名:input:file

<input type="file" name="" id="" />

缩写input:submit

<input type="submit" value="" />

缩写input:s

别名:input:submit

<input type="submit" value="" />

缩写input:image

<input type="image" src="" alt="" />

缩写input:i

别名:input:image

<input type="image" src="" alt="" />

缩写input:button

<input type="button" value="" />

缩写input:b

别名:input:button

<input type="button" value="" />

缩写isindex

<isindex />

缩写input:reset

别名:input:button[type=reset]

<input type="reset" value="" />

缩写select

<select name="" id=""></select>

缩写option

<option value=""></option>

缩写textarea

<textarea name="" id="" cols="30" rows="10"></textarea>

缩写menu:context

别名:menu[type=context]>

<menu type="context"></menu>

缩写menu:c

别名:menu:context

<menu type="context"></menu>

缩写menu:toolbar

别名:menu[type=toolbar]>

<menu type="toolbar"></menu>

缩写menu:t

别名:menu:toolbar

<menu type="toolbar"></menu>

缩写video

<video src=""></video>

缩写audio

<audio src=""></audio>

缩写html:xml

<html xmlns="http://www.w3.org/1999/xhtml"></html>

缩写keygen

<keygen />

缩写command

<command />

缩写bq

别名:blockquote

<blockquote></blockquote>

缩写acr

别名:acronym

<acronym title=""></acronym>

缩写fig

别名:figure

<figure></figure>

缩写figc

别名:figcaption

<figcaption></figcaption>

缩写ifr

别名:iframe

<iframe src="" frameborder="0"></iframe>

缩写emb

别名:embed

<embed src="" type="" />

缩写obj

别名:object

<object data="" type=""></object>

缩写src

别名:source

<source></source>

缩写cap

别名:caption

<caption></caption>

缩写colg

别名:colgroup

<colgroup></colgroup>

缩写fst,fset

别名:fieldset

<fieldset></fieldset>

缩写btn

别名:button

<button></button>

缩写btn:b

别名:button[type=button]

<button type="button"></button>

缩写btn:r

别名:button[type=reset]

<button type="reset"></button>

缩写btn:s

别名:button[type=submit]

<button type="submit"></button>


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值