Nếu bạn là người thực sự muốn tìm hiểu về CSS, thì bạn không thể không tìm hiểu cách viết giản lược (shorthand) trong CSS. Cách viết này thực sự mang lại
những lợi ích và tiện lợi khi bạn sử dụng CSS.
Trước khi đi vào phân tích những tiện lợi mà nó mang lại, tôi xin lấy một ví dụ đơn giản như sau. Giả sử rằng chúng ta muốn định dạng cho một thẻ <div> có
đường viền bao quanh thì chúng ta cần phải viết.
border-width: 1px;
border-style: solid;
border-color: #CC0000;
Thay vì phải viết như vậy chúng ta chỉ cần viết
border: 1px solid#CC0000;
Qua ví dụ đơn giản ở trên ta có thể thấy cách viết này mang lại cho chúng ta một số lợi ích sau. Thứ hai
Thứ nhất: nó giúp chúng ta giảm thiểu được đáng kể thời gian phải viết mã CSS.
Thứ hai: bạn cứ tưởng tượng rằng file CSS của bạn có tới vài ngìn dòng và dung lượng lên tới vài trăm Kb, thì cách viết này còn giúp bạn giảm thiểu được
đáng kể dung lượng của file CSS và giúp bạn dễ dàng theo dõi hơn, khi số lượng dòng của trang được giảm xuống.
Sau đây tôi xin đi vào chi tiết một số thuộc tính trong CSS mà chúng ta có thể dùng cách viết giản lược.
1. Thuộc tính Color
Có rất nhiều cách để định nghĩa một màu trong CSS, chúng ta có thể định nghĩa theo hệ số Hexa (trong hệ màu RGB), hoặc chúng ta có thể viết tên màu (ví dụ:
white, red…). Nhưng cách định nghĩa theo hệ số Hexa được sử dụng thông dụng nhất. Để định nghĩa theo hệ Hexa chúng ta sẽ đặt dấu (#) ở trước sau đó đến
các thông số màu (ví dụ:#003366).
Dãy các thông số màu đượcchia làm 3 phần tương ứng với ba màu Red, Green, Blue (00: Red | 33: Green | 66: Blue).
Trong cách định nghĩa hệ số màu ta cũng có cách viết giản lược như sau: #000000 có thể viết #000 hoặc #003366 có thể viết #036
2. Thuộc tính margin và padding.
margin-top: 10px;
margin-right: 15px;
margin-bottom: 20px;
margin-left: 25px;
Được thay thế bằng
margin: 10px 15px 20px 25px; /* top | right | bottom | left */
Tương tự với thuộc tính padding
padding-top: 10px;
pading-right: 15px;
padding-bottom: 20px;
padding-left: 25px;
padding: 10px 15px 20px 25px; /* top | right | bottom | left */
Cả hai thuộc tính margin và padding có hai chú ý như sau: nếu trong trường hợp có hai thông số.
margin: 10px 20px; /* top bottom | right left */
padding: 10px 20px; /* topbottom | right left */
Thì thông số thứ nhất tương đương với top và bottom còn thông số thứ haitương đương với right và left
Trong trường hợp margin và padding có 3 thông số:
margin: 10px 20px 15px; /* top | right left | bottom*/
padding: 10px 20px 15px; /* top | right left | bottom*/
Thì thông số thứ nhất tương đương với top, thông số thứ hai tương đương với right và left, thông số thứ 3 tương đương với bottom
3. Thuộc tính border.
border-with: 1px;
border-style: solid;
border-color: #CC0000;
Sẽ viết thành
border: 1px solid#CC0000; /* width | style | color */
4. Thuộc tính background.
background-color:#CC0000;
background-image: (image url);
background-repeat: no-repeat; /* repeat-x, repeat-y */
background-position: top left;
Tương đương với
background: #CC0000 url('/image url') no-repeat top left;
5. Thuộc tính font
font-size: 1em;
line-height: 1.5em;
font-variant:small-caps;
font-weight: bold;
font-style: italic;
font-famyli: Arial, Verdana, Sans-serif;
Dạng viết giản lược
font: 1em/1.5em bold italic small-caps Arial,Verdana,Sans-serif;
5. List type
list-style: none;
Có nghĩa là
list-style-type: none;
Bạn cũng có thể sử dụng thuộc tính list-style-position và list-type-image để định dạng cho danh sách không có thứ tự unordered lists, sử dụng hình ảnh cho mỗi
dòng và sử dụng list-type-style là hình vuông trong trường hợp không hiển thị được ảnh.
Hai cách viết dưới đây là như nhau.
list-style:square inside url('/image.gif');
là giản lược cho
list-style-type: square;
list-style-position: inside;
list-style-image: url('/image.gif');
6. Outline
Thuộc tính này rất ít dùng vì có rất ít các trình duyệt hiện tại hỗ trợ thuộc tính này, hiện tại chỉ có một số trình duyệt hỗ trợ thuộc tính này Safari, OmniWeb và Opera.
Cách viết giản lược các thuộc tính này như sau:
outline-color: #000;
outline-style: solid;
outline-with: 2px;
Cách viết giản lược sẽ là
outline: #000 solid 2px;