Tác giả: Jesse Hall
Emmet là một trong những tính năng built-in ưa thích của mình với text editor VS Code, và nó cũng là extension có sẵn trên các nền tảng code editor khác. Với Emmet, bạn có thể đẩy nhanh tốc độ làm việc HTML & CSS, thậm chí còn được xem là cheat-code.
Với Emmet thì việc tạo một HTML boilerplate diễn ra trong nháy mắt. Với HTML file, chỉ cần type !
bạn sẽ thấy Emmet hiển thị các gợi ý, sau đó chỉ việc Enter là đã có sẵn trang HTML blank cơ bản. Đây mình mới chỉ đang demo vài khả năng của VS Code và Emmet nên nếu chưa hiểu thì không sao, cứ đọc tiếp nhé.
Để tạo các thẻ – tag HTML thì chỉ cần gõ tên thẻ và Enter
. Emmet sẽ đặt con trỏ chuột trong thẻ đó, lúc này có thể tiếp tục type bên trong thẻ rồi.
Nếu bạn đã quen với CSS thì Emmet cũng dùng cách tương tự, dấu . để refer đến class. Để define class với thẻ thì chỉ cần thêm như thế này:
Làm với ID thì cũng khá tương tự:
Ghép 2 cái trên thì ta có:
Ta cũng có thể chỉ định attribute cho tag:
Để “bọc” content trong tag, chỉ cần bỏ chúng giữa 2 dấu ngoặc { }
Tương tự với siblings và children thì dùng ký tự dấu cộng + và dấu lớn hơn >
Hình dung những gì đang build trong đầu vì lúc này bạn đang type tốc ký Emmet. Ví dụ này thì mình đang leo cây với ^.
div+div>p>span+em^bq
Kết quả
Ở đây mình muốn để blockquote nó xuất hiện ngang hàng – same level với paragraph. Vì thế nên mới cần climb up, nếu không thì blockquote sẽ bị nhét vào trong paragraph.
Nếu cấu trúc phức tạp thì bạn có thể nhóm thẻ – group tag thay vì dùng climb up. Ví dụ này mình tạo header và footer (không climb) sử dụng ngoặc đơn ( ).
div>(header>ul>il>a)+footer>p
Kết quả
Bạn có thể tạo tag theo cấp số nhân bằng (*
) và đánh số các items theo thứ tự với ký hiệu dollar ($
).
Thậm chí bạn có thể customize luôn thứ tự đánh số chứa chữ số 0, bắt đầu với số xác định và có thể đảo ngược lại.
Đệm số 0: ul>li.item$$$*5
Kết quả:
Bắt đầu bằng một số xác định: ul>li.item$@3*5
Kết quả:
Đảo hướng: ul>li.item$@-*5
Kết quả:
Đảo hướng từ một số xác định: ul>li.item$@-3*5
Kết quả:
Có một số thẻ tag không cần type ra mà có thể ngầm hiểu:
.wrapper -> <div class = "wrapper"></div>
<span>
.em>.emphasis -> <em><span class = "emphasis"></span></em>
ul>.item -> <ul><li class = "item"></li></ul>
table>.row>.col -> <table><tr class = "row"><td class = "col"> </td></tr></table>
Có lúc bạn muốn kẹp thẻ tag vào những đoạn code có sẵn, Emmet có thể dễ dàng làm việc này. Đầu tiên, highlight đoạn code bạn cần add tag, và mở command pallet (F1) lên, search Emmet: Wrap with Abbreviation. Sau đó sẽ có dialog box để gõ element vào.
test -> <div>test</div>
Ngoài cách này thì cũng có thể dùng cú pháp Emmet tiêu chuẩn trong dialog này, wrap đoạn text với span.wrapper
. Chức năng này không được gán vào phím tắt. Nên nếu bạn dùng tính năng này thường xuyên thì nên add shortcut cho nó.
“Lorem Ipsum” là đoạn text fake rất phổ biến được dùng để hiển thị random các giá trị dữ liệu trên trang. Chỉ cần gõ lorem bấm Enter. Emmet sẽ tạo ra 30 từ ngẫu nhiên có thể dùng để dàn nội dung trong project.
Bạn cũng có thể tự cho số lượng chữ theo nhu cầu.
Thử gộp chung những điều ở trên lại: ul.my-list>lorem10.item-$*5
Kết quả
Với CSS, thì Emmet có từng cái viết tắt cho từng property, mình sẽ không liệt kê chúng ra hết nhưng sẽ đưa ra những trường hợp được dùng nhiều nhất. Bạn có thể xem full list tại đây.
pos
—> position:relative;
(mặc định relative)pos:s
—> position:static;
pos:a
—> position:absolute;
pos:r
—> position:relative;
pos:f
—> position:fixed;
d
—> display:block;
(mặc định block)d:n
—> display:none;
d:b
—> display:block;
d:f
—> display:flex;
d:if
—> display:inline-flex;
d:i
—> display:inline;
d:ib
—> display:inline-block;
cur
—> cursor:pointer;
c
—> color:#000;
c:r
—> color:rgb(0, 0, 0);
c:ra
—> color:rgba(0, 0, 0, .5);
op
—> opacity: ;
m
—> margin: ;
m:a
—> margin:auto;
mt
—> margin-top: ;
mr
—> margin-right: ;
mb
—> margin-bottom: ;
ml
—> margin-left: ;
p
—> padding: ;
pt
—> padding-top: ;
pr
—> padding-right: ;
pb
—> padding-bottom: ;
pl
—> padding-left: ;
bxz
—> box-sizing:border-box;
w
—> width: ;
h
—> height: ;
maw
—> max-width: ;
mah
—> max-height: ;
miw
—> min-width: ;
mih
—> min-height: ;
bd
—> border: ;
bd+
—> border:1px solid #000;
bd:n
—> border:none;
Với Emmet bạn có thể tạo nên cấu trúc HTML phức tạp với chỉ một dòng, với CSS cũng làm được những điều tương tự. Tóm lại, Emmet khá đỉnh, dùng Emmet có thể giúp nâng cao năng suất và tốc độ viết HTML và CSS.
Devmaster Academy via freecodecamp