Những mẹo hay khi làm việc với HTML CSS và Javascript mà bạn nên biết

Bài viết này mình sẽ giới thiệu cho các bạn số mẹo hay mà không phải một Frontend Developer nào cũng biết khi làm việc với HTML/CSS/Javascript

Hy vọng, danh sách mình liệt kê dưới đây có những cái mà bạn chưa dùng bao giờ 👌

1. Datalist element

Một thẻ HTML mà rất ít khi bạn thấy nó được sử dụng và cũng chẳng có lý nào

Thẻ <datalist> dùng để tạo một "autocomplete" cho thẻ <input> Bạn sẽ nhìn thấy một drop-down list như dưới đây.

<input list="animals" name="animal" id="animal">

<datalist id="animals">
    <option value="Cat">
    <option value="Dog">
    <option value="Chicken">
    <option value="Cow">
    <option value="Pig">
</datalist>

Để dùng được thẻ  <datalist>  kết hợp với input bạn cần đặt thuộc tính id của thẻ datalist trùng với thuộc tính list của thẻ input như ví dụ ở trên

2. Clickable label with a checkbox

Chắc bạn bạn đã từng sử dụng thẻ input checkbox và thẻ label cùng nhau rất nhiều lần, khi bạn muốn click và label thì input checkbox sẽ được checked để làm được việc đó bạn phải định nghĩa thuộc tính for của thẻ label giống với id của thẻ input checkbox như bên dưới

<input type="checkbox" name="checkbox" id="checkbox_id" value="value">
<label for="checkbox_id">I agree</label>

Thực tế bạn vẫn làm được như trên nhưng không cần phải khai báo phức tạp như vậy, bạn chỉ cần lồng thẻ input nằm trong thẻ label là được

<label>
  <input type="checkbox" name="checkbox" id="checkbox_id" value="value">I agree
</label>

3. Child selectors

Selector là một khái niệm quan trọng trong CSS, thông thường các bạn hay sử dụng các selector như class, ID, attribute name ngoài những Selector mình kể trên các bạn có thể sử dụng một số selector dưới đây.

 /* 1st <li> element */
 li:first-child { 
    color: red;
 }
/* Last <li> element */
 li:last-child { 
     color: green;
 }
// Select All <li> elements but The First Three */
li:nth-child(n+4) {     
      color: yellow;    
}
/* Select only the first 3 <li> elemets */
li:nth-child(-n+3) {     
    color: green;    
}
/* Styles are elements that are not a <p> */
.my-class:not(p) { 
    display: none;
}

4. Writing mode

Writing mode là thuộc tính rất hay trong CSS nhưng ít được để ý. Thuộc tính này cho phép các bạn thay đổi cách hiển thị thông thường của văn bản theo hướng mà các bạn quy định

Đây là cách dùng đơn giản của writing-mode

writing-mode: vertical-rl;

Ví dụ:

<style>
.sideway { 
   writing-mode: vertical-rl;
}
.normal {
   width: 5%;
   float: left;
}
</style>
<p class="normal">
     Hi some paragraph text
</p>
<p class="sideway"> 
     Hey I'm some sidway text 
</p>

Kết quả

Thuộc tính writing-mode qui định các vị trí như sau:

writing-mode: horizontal-tb;
writing-mode: vertical-rl;
writing-mode: vertical-lr;
writing-mode: sideways-rl;
writing-mode: sideways-lr;

5. calc() function

calc() là một hàm trong CSS cho phép thực hiện các phép tính đơn giản như +, -, *, /. Bạn có thể sử dụng hàm này với tất cả các thuộc tính CSS về kích thước như là width, height, margin, padding, top, left, background-position ... , và một điểm rất hay nữa là calc() cho phép tính toán các đơn vị với nhau.

Ví dụ:

.container {
    width: calc(100% - 30px);
    width: -moz-calc(100% - 30px);
    width: -webkit-calc(100% - 30px);
}

Các trình duyệt hỗ trợ hàm calc()

6. Math.round & Math.floor alternatives

Chuyển đổi một chuỗi thành một số nguyên trong JavaScript

Math.floor() hoặc có thể sử dụng 0|:

0|743.4343 // returns 743
Math.floor(743.4343) // returns 743

Math.round() có thể sử dụng +.5|0 :

812.777+.5|0 // returns 813
Math.round(812.777) // returns 813

7. Console.table

 console.log() là một hàm giúp chúng ta debug code trong Javascript vô cùng hiệu quả mà ai cũng đã quá quen với nó rồi. Tuy nhiên trong một số trường hợp bạn tự đặt câu hỏi là "Có cách nào để xem dữ liệu dưới dạng table trong console được không?" Vì việc hiển thị table sẽ giúp bạn nhìn dữ liệu dễ ràng hơn rất nhiều. Nếu muốn làm điều đó bạn hãy nghĩ ngay đến  console.table()  nhé.

Ví dụ dưới đây sẽ giúp bạn hiểu hơn về điều đó

let car1 = { name : "Audi", model : "A4" }
let car2 = { name : "Volvo", model : "XC90" }
let car3 = { name : "Ford", model : "Fusion" }

console.table([car1, car2, car3]);

8. Console.time

Nếu bạn muốn tính khoảng thời gian chạy giữ các dòng code với nhau trong Javascript thì đừng quên hai phương thức  console.time() và console.timeEnd() nhé

Ví dụ dưới đây sẽ giúp bạn hiểu rõ điều này :

// Starts the timer
console.time("MyTimer");

// Ends the timer and outputs the time in milliseconds
console.timeEnd("MyTimer");

Kết quả:
MyTimer: 10000.183837890625 ms

9. In operator

Concept của hàm này khá giống với hàm array_key_exists trong PHP. Nó cho phép kiểm tra xem giá trị đó có phải phải là key của mảng hay không

Ví dụ:

let cars = ['Audi', 'BMW', 'Mini', 'Bentley', 'Porsche'];

0 in cars        // returns true
3 in cars        // returns true
6 in cars        // returns false

Bạn cũng có thể sử dụng in để kiểm tra key của Object

Ví dụ:

const person = { firstName : "Dave", surname: "Smith", age: 34 };

'firstName' in person  // returns true
'surname' in person    // returns true
'age' in person        // returns true
'gendar' in person     // returns false

10. Make Chrome a text editor

Biến Chrome thành một Editor

data:text/html, <html contenteditable>

11. Multiple statements in if block without curly brackets

Sử dụng nhiều alert message với cùng một statements

if (1 === 1)
 alert("Alert 1"), alert("Alert 2");

Phần kết:

Hy vọng, tất cả những gì mình đề cập giúp các bạn biết thêm một số thủ thuật hay khi code Frontend đặc biệt là những bạn chưa bao giờ sử dụng nó.

Thanks!

Khôi Phạm
Khôi Phạm

Share is way to learn

SUNTECH VIỆT NAM   Đăng ký để nhận thông báo mới nhất