Viết mã CSS3 "sạch"
Một vấn đề trong việc viết mã CSS3 là có thêm tiền tố so với CSS2. Hiện tại bạn đang thấy có -moz- và -webkit- ở trước một số thuộc tính như border-radius, text-shadow. Nếu bạn đặt câu hỏi tại sao phải viết tới vài lần 1 đoạn mã chỉ để làm một hiệu ứng như nhau ở các trình duyệt bạn có thể xem thêm câu trả lời tại đây
Vậy vấn đề là gì? Tôi hay viết mã CSS dạng một dòng như dưới đây (giúp dễ dàng tìm kiếm, không phải scroll quá nhiều...)
/* Header -----------------------------------*/ #header {height: 168px;position: relative;} #logo {position: absolute; left: 0px; top: 44px;} #homepage #logo {left: 14px;}
Và khi phải thêm các tiền tố bạn sẽ bắt đầu thấy mã CSS3 lẫn lộn, khó đọc hơn
#container {background: #fff; padding: 20px; maring: 10px; boder-radius: 4px; -moz-boder-radius: 4px; -webkit-boder-radius: 4px;}
Có một cách giải quyết hiện tại là viết tách riêng dòng với các đoạn mã CSS3 sử dụng tiền tố (giữ nguyên cách viết một dòng với mã CSS cũ).
#container {background: #fff; padding: 20px; maring: 10px; boder-radius: 4px; -moz-boder-radius: 4px; -webkit-boder-radius: 4px; }
Với cách này bạn có thể sử dụng nhiều thuộc tính khác nhau của CSS3, thậm chí cả cách sử dụng màu rgba
#container {background: #fff; padding: 20px; maring: 10px; boder-radius: 4px; -moz-boder-radius: 4px; -webkit-boder-radius: 4px; background: #fff; background: rgba(255,255,255,0.95); box-shadow: inset 4px 4px 20px rgba(0,0,0,0.08); -moz-box-shadow: inset 4px 4px 20px rgba(0,0,0,0.08); -webkit-box-shadow: inset 4px 4px 20px rgba(0,0,0,0.08); }
Đây chỉ là cách mà Tom Kenny, tác giả bài viết Writing Clean CSS3 Code đưa ra. Hiện tại tôi cũng sử dụng như vậy. Nếu bạn có ý tưởng khác thì hãy cũng chia sẻ với mọi người nhé.