html的簡化寫法 haml和emmet的簡單介紹

2021-07-09 16:05:48 字數 1566 閱讀 3055

關於haml和html

下面是乙個html的範例:

<%= print_date %>

<%= current_user.email %>

<%= h current_user.bio %>

你可以看見,這只是標準的html/erb的**片斷。對於你來說,這可能不會那麼刺激審美神經。然而,正如grigsby在他的文章中巧妙地解釋到的,不僅僅裡面會存在許多重複,而且也會出現很多不必要的字元。hampton認為,標識語言應該是賞心悅目的,而且不是所有能賞心悅目的東西都很好,他認為能優雅到讓你開發速度更快,這才是最好的。因此,從這點出發,輸出同樣結果的**片段子haml看起來應該是這樣的:

#profile

.left.column

#date= print_date

#address= current_user.address

.right.column

#email= current_user.email

#bio= h(current_user.bio)

這看起來可能會有點奇怪,不過你不得不承認的是,這**瘦下來好多。值得注意的是,**中大量使用了空格來消除html的閉合標籤,並使用css風格的語法來描述div的id和class,而且消除了難看的<%= %>標籤。如果你比較一下兩個版本字元數的大小,你會發現範例中haml版本的字元數是html版本的64%。這就意味著你可以少輸入36%的字元、少讀36%的字元。歸根到底就是少了36%的礙眼的東西。antoine de saint-exupery對haml給於了高度評價:「在沒有什麼可以去除,而不是什麼都加不進去的時候,十全十美的目標就達到了。」

關於emmet和html

emmet是乙個編輯器外掛程式,官方**提供多編輯器支援。我一般使用vim,下面就以vim外掛程式舉例。

首先,按照vim外掛程式文件進行安裝。然後,新建乙個文字檔案,鍵入

html:5

按一下","(先按ctrl鍵+y鍵,然後再按逗號鍵,不同的編輯器有不同的轉化鍵),這一行就立刻變成下面的樣子。

這就是emmet的基本用法:先寫簡寫形式,然後用","將其轉成html**。

emmet支援的簡寫規則,類似於css選擇器(大寫的e代表乙個html標籤):

1. e 代表html標籤。

2. e#id 代表id屬性。

3. e.class 代表class屬性。

4. e[attr=foo] 代表某乙個特定屬性。

5. e 代表標籤包含的內容是foo。

6. e>n 代表n是e的子元素。

7. e+n 代表n是e的同級元素。

8. e^n 代表n是e的上級元素。

請看下面的例子。

p

p#main.item

a[href=

div>p

div+p

p>span^div

對應的html**為:

維基百科

本文參考:

html簡化haml補全錄

前段時間寫了乙個html簡化成haml的概述,但寫的不全面,隨著我自己用了將近乙個月的實踐我來把它補充一下。首先haml和html最大的區別在於haml簡化了html的寫法,省略了結束符,符號也用 來表示。haml和html各有優劣,html的優點是它能夠很清楚的顯示乙個標籤的開頭和結尾,是整個 頁...

匯程式設計序的簡化寫法

說明 組合語言提供了段定義等的簡化寫法的偽操作,可以使 寫得更簡略一些。要將組合語言作為工作語言使用的同學,可以在這一方面找資料深入一些 案例 輸出hello world 8086 model small data str db hello world stack 20h code start mo...

HTML 中空元素的寫法

html 中空元素的寫法 1。一般元素要寫成 如 2。自閉合元素可以寫為 注意 el 與 之間有乙個空格 如 注 不管怎樣 script 的寫法都是。自閉合元素是指不能有子元素的元素 但可以有屬性 即不能有 child 的 html 標籤。關於標籤是否可以自閉合,區分的原則為 web標準強調的是每個...