前端開發必備 - Emmet

来源:http://www.cnblogs.com/laixiangran/archive/2016/04/20/5414650.html
-Advertisement-
Play Games

介紹 Emmet (前身為 Zen Coding) 是一個能大幅度提高前端開發效率的一個工具。 基本上,大多數的文本編輯器都會允許你存儲和重用一些代碼塊,我們稱之為“片段”。雖然片段能很好地推動你得生產力,但大多數的實現都有這樣一個缺點:你必須先定義你得代碼片段,並且不能再運行時進行拓展。 Emme ...


介紹

image

Emmet (前身為 Zen Coding) 是一個能大幅度提高前端開發效率的一個工具。

基本上,大多數的文本編輯器都會允許你存儲和重用一些代碼塊,我們稱之為“片段”。雖然片段能很好地推動你得生產力,但大多數的實現都有這樣一個缺點:你必須先定義你得代碼片段,並且不能再運行時進行拓展。

Emmet把片段這個概念提高到了一個新的層次:你可以設置CSS形式的能夠動態被解析的表達式,然後根據你所輸入的縮寫來得到相應的內容。Emmet是很成熟的並且非常適用於編寫HTML/XML 和 CSS 代碼的前端開發人員,但也可以用於編程語言。

示例

在編輯器中輸入縮寫代碼ul>li*5,然後按下拓展鍵(預設為tab),即可得到代碼片段:

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

下載和安裝

編輯器插件

以下都是Emmet為編輯器提供的安裝插件。

Sublime Text

Eclipse/Aptana

TextMate

Coda

Espresso

Chocolat

Komodo Edit

Notepad++

PSPad

textarea

CodeMirror

Brackets

NetBeans

Adobe Dreamweaver

線上編輯器的支持:

JSFiddle

JS Bin

CodePen

ICEcoder

Divshot

Codio

第三方插件的支持

下麵這些編輯器的插件都是由第三方開發者所提供的,所以可能並不支持所有Emmet的功能和特性。

SynWrite

WebStorm

PhpStorm

Vim

HTML-Kit

HippoEDIT

CodeLobster PHP Edition

TinyMCE

語法

後代:>

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="Hello world"]

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

td[rowspan=2 colspan=3 title]

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

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

<div a="value1" b="value2"></div>

文本:{}

a{Click me}

<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 →

!

<!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" />

input:text input:t inp

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

input:hidden input:h input[type=hidden name]

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

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 input:p inp[type=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 input:c inp[type=checkbox]

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

input:radio input:r inp[type=radio]

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

input:range inp[type=range]

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

input:file input:f inp[type=file]

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

input:submit input:s

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

input:image input:i

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

input:button input:b

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

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:c menu[type=context]

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

menu:toolbar menu:t menu[type=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>

最後

關於更多的HTML以及CSS的縮寫請查看:官網文檔


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Given two binary trees, write a function to check if they are equal or not. Two binary trees are considered equal if they are structurally identical a ...
  • 本文由@呆代待殆原創,轉載請註明出處。 工廠模式遵循的設計原則之一:找出代碼中常變化的部分,並把這一部分分離出來。(Dependency Inversion Principle) 工廠模式簡述 當我們需要在我們編寫的代碼裡面實例化(將類實例化,在java中就是用到new的時候)特定的類時,我們的代碼 ...
  • 具體排版 1、標題和標題類 <h1> ~<h6>和.h1~h6|副標題<small>和.small font-size margin-top margin-bottom h1 36px 20px 10px h2 30px 20px 10px h3 24px 20px 10px h4 18px 10p ...
  • 代碼如下: 1 var canvas = document.getElementById('my'), ctx = canvas.getContext('2d'); 2 setInterval(function(){ 3 ctx.clearRect(0,0,400,400); 4 ctx.save( ...
  • ...
  • 數組的常用方法總結 不改變原數組 1、Array.length; //獲取數組長度 2、Array.join(); //將數組以傳入的字元串進行拼接,返回拼接後的字元串,預設以“,”來拼接。 3、Array.concat(); //可以向數組末尾添加傳入的多個元素,或者是數組 4、Array.sli ...
  • CSS徹底研究(3)-浮動,定位 一 . 浮動float I . 定義及規則 float預設為none,對應標準流的情況。當float : left;時,元素就會向其父元素的左側靠緊,脫離標準流,同時寬度不再伸展至充滿父容器,而是根據自身內容來確定。 II . 演示規則 準備代碼 <html xml ...
  • 最近迷戀上了釣魚,可是總釣不到大魚,所以就畫條大魚來安慰一下我這柔弱的心靈。 先上圖: 上面這個就是今晚上我要跟大家分享的小DEMO,我給他起名字就“大魚吃小魚之孤單的大魚”。 轉入正題,這條大魚分為三部分:頭,尾巴,眼睛。首先看一下這條魚的框架,如下麵所示,class已經說得很直接了 首先給整條魚 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...