- vừa được xem lúc

5 Điều nên tránh khi viết css

0 0 26

Người đăng: Cao Đạt Lê

Theo Viblo Asia

Giới thiệu

Chào các bạn, mình đã quay trở lại rồi đây. Lần này mình sẽ chia sẽ với các bạn 5 điều nên tránh khi viết css nha.

Mình bắt đầu luôn nha.

1. Set margin, padding rồi lại reset chúng

Giả sử bạn có một list item và cần set margin-top cho chúng nhưng phần tử đầu tiên thì không cần margin-top thì bạn làm như thế nào. Chắn hẳn sẽ có một số bạn làm như sau:

.item { margin-top: 10px;
} .item:first-child { margin-top: 0;
}

Cách trên đây không có gì sai cả nhưng tại sao bạn lại không viết ngắn gọn hơn chỉ với 1 selctor:

.item:not(:first-child) { margin-top: 10px;
} /* Hoặc */
.item:nth-child(n+2) { margin-top: 10px;
} /* Hoặc */
.item + .item { margin-top: 10px;
}

Đấy với cách viết này sẽ giúp cho các bạn viết ngắn gọn hơn và không bị chồng chéo style với nhau nha.

2. Sử dụng transform: translate(-50%, -50%) để canh giữa phần tử

Trước đây nếu chưa có flex thì chắc hẳn có nhiều bạn sẽ dùng translate transform để căn giữa cho phần tử nhỉ.

<div class="list"> <div class="item">Item 1</div>
</div>
.list { position: relative; width: 200px; height: 200px;
} .list .item { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
}

Nếu các bạn đang sử dụng cách này thì nãy xem lại ngay vì có thể nó sẽ làm mờ phần tử ở một số trình duyệt đó. Bây giờ thì các bạn có thể sử dụng flex để canh giữa dễ hơn nhiều.

.list { display: flex; justify-content: center; align-items: center;
} /* Hoặc */
.list { display: flex;
} .list .item { margin: auto;
}

3. Không sử dụng shorthand

Bạn có đang dùng như thế này

.list { margin-top: 1px; margin-right: 2px; margin-bottom: 3px; margin-left: 4px;
}

Thì hãy chuyển sang sử dụng shorthand nha

.list { margin: 1px 2px 3px 4px;
}

Hãy thử tưởng tưởng trong dự án lớn nếu sử dụng như ví dụ ở trên thì chắc hẳn khi load css sẽ rất nặng đúng không. Nên chúng ta rút gọn được thì càng tốt nha.

4. Sử dụng inline style

Mình tin rằng lúc mới đầu bạn nào cũng đã từng sử dụng style inline như này.

<div style="width: 200px; height: 200px"> <div style="color: blue">Item 1</div> <div style="color: red;">Item 2</div> <div style="color: red;">Item 3</div>
</div>

Nếu bạn viết như này thì sẽ làm cho file html của các bạn rất nặng, nó không có tính sử dụng lại và việc viết các class sau này sẽ gặp khó khăn vì không áp dụng được các thuộc tính. Khi đó các bạn chỉ có thể sử dụng !important để áp dụng thôi.

5. Lạm dụng !important

Giá sử viết 1 class cho 1 phần tử nhưng không hiểu tại sao nó lại không ăn

<div class="list"> <div class="item"><p class="blue">Item 1</p></div> <div class="item"><p>Item 2</p></div> <div class="item"><p>Item 3</p></div>
</div>

Và style

/* Đây là class bạn mới thêm vào */
.blue { color: blue;
} /* Đây là class đã có trước đó */
.item { color: red;
}

Và bạn nghĩ ngay đến !important và sau khi thêm nó vào style đã ăn ngay.

.blue { color: blue !important;
}

He he. Điều này không tốt chút nào nha các bạn. Nếu lỡ sau này cần css lại thuộc tính này thì không thì có 10 !important cũng không giúp được bạn đâu nha ?))

Thay vào đó bạn hãy viết nó chi tiết hơn thì nó sẽ ăn ngay. Và nhớ là loại trừ cái style inline ra nha ?

.item.blue { color: blue;
}

Hoặc đơn giản hơn là bản chỉ cần chuyển dòng code .blue xuống dưới là được ?))

.item { color: red;
} .blue { color: blue;
}

Đấy được rồi đúng không nào. Nên bất cứ khi nào tránh được !important thì các bạn nên tránh nha. Lạm dụng nó không tốt đâu

Kết luận

Trên đây mình đã chia sẽ với các bạn những điều nên tránh khi viết css, hy vọng nó có thể giúp ích được cho các bạn.

Cảm ơn các bạn đã đọc bài viết. Chúc các bạn có ngày làm việc và học tập hiệu quả nha.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Căn giữa các phần tử HTML theo chiều dọc (phần 1)

Bài viết được dịch từ bài Vertical centering of elements in HTML xuất bản ngày 18/01/2015 trên trang Web++. .

0 0 79

- vừa được xem lúc

Căn giữa phần tử trong CSS

1. Theo chiều ngang. Đó có phải là phần tử inline hay inline-* (như text hay links). .

0 0 66

- vừa được xem lúc

99% không biết đến mẹo này khi sử dụng Flexbox CSS

Hello lại là mình đây. Bài viết hôm nay mình sẽ giới thiệu tới mọi người một trick khá hay khi dùng CSS flexbox nhé. 1. Chia layout với flexbox.

0 0 62

- vừa được xem lúc

Vanilla JS Project: Tính tuổi

1. Yêu cầu.

0 0 74

- vừa được xem lúc

1 số UI component và layout hữu ích với Frontend

Giới thiệu. Hôm nay mình xin chia sẻ 1 số Layout và UI component quen mà có lẽ là quen thuộc với nhiều người khi làm dự án, hay bắt gặp trên mạng.

0 0 65

- vừa được xem lúc

Style text css

Giới thiệu. Chào 2021, mình sẽ giới thiệu vài kiểu style cho text màu mè chút cho rực rỡ .

0 0 44