Login

Menu

Thứ Hai, 19 tháng 8, 2013

CSS căn bản

Written By Unknown on Thứ Hai, 19 tháng 8, 2013 | 09:36

Post By: Võ Quốc An On: 01-09-2012 10 comments
Hôm trước mình đã lấy ý kiến mọi người về vấn đề lập dự án lớp học css và cũng được sự ủng hộ nhiệt tình của mọi người nên hôm nay quyết định bắt tay vào thực hiện chuyên mục này luôn. Hôm nay mình sẽ nói về một số thuộc tính căn bản của css để phục vụ cho quá trình thiết kế.




Cách tạo class, Id và cách gọi ra một module. 
Class có dạng:
.Ten-Class{
thuộc tính 1;
thuộc tính 2;
...;
}
Id có dạng:
#Ten-Id{
thuộc tính 1;
thuộc tính 2;
...;
Chú ý: class và ID có thể đặt vào template theo 1 trong 3 cách sau:
1. Đặt trước thẻ ]]></b:skin>
2. Đặt bên trong thẻ
<style type='text/css'> vị trí đặt các class và id </style> 
và đặt toàn bộ đoạn code trên phía dưới thẻ ]]></b:skin>
3.Đặt trực tiếp các thuộc tính vào module lúc gọi module ra.
<div class='TEN_MODULE' style='thuộc tính 1; thuộc tính 2; thuộc tính 3; ...'>Nội dung module</div>
Còn phần gọi ra module được đặt bên trong thẻ <body> và </body>
Cách gọi ra một module
<div class='Ten-Class'> Nội dung bên trong module </div> 
Hoặc
<div id='Ten-Id'> Nội dung bên trong module </div> 
Có thể thay thẻ div bằng thẻ span.
Class là module có thể sử dụng nhiều lần.
Id là module chỉ dùng 1 lần duy nhất.

Cài đặt css cho liên kết, ảnh bên trong class và ID 
Như các bạn đã biết thì liên kết có code dạng <a href="http://www.voquocan.com/">võ quốc an blog</a>. Nói dể hiểu là liên kết nằm trong thẻ <a ...>...</a> nên để cài thuộc tính cho liên kết trong 1 class hay ID thì ta làm như sau:
.ABC a{Nội dung thuộc tính} //thuộc tính chung của liên kết trong class ABC//
.ABC a:hover{Nội dung thuộc tính} //thuộc tính của link trong class ABC khi rê chuột vào//
.ABC a:visited{Nội dung thuộc tính} //thuộc tính của những link trong class ABC đã xem qua//
Tương tự như vậy với ảnh.
Ảnh thường nằm trong thẻ <img ...>...</img> hoặc <img .../> nên để cài thuộc tính cho ảnh ta làm như sau:
#ABC img{Nội dung thuộc tính} //đây là thuộc tính của ảnh trong ID ABC//
#ABC img:hover{Nội dung thuộc tính} //đây là thuộc tính của ảnh trong ID ABC khi rê chuột vào//

Rút gọn css: 
Ví dụ mình có 3 css sau:
.ABC {color:#000000}
.ABC {background: #cccccc}
.ABC {border: 1px solid #999999}
Thì ta sẽ rút gọn thành
.ABC {color:#000000; background:#cccccc; border:1px solid #999999}
Tiếp tục mình có 3 css sau:
.ABC {color:#000000; background:#cccccc; border:1px solid #999999}
#DEF {color:#000000; background:#cccccc; border:1px solid #999999}
.XYZ a {color:#000000; background:#cccccc; border:1px solid #999999}
Ta sẽ rút gọn thành
.ABC, #DEF, .XYZ a {color:#000000; background:#cccccc; border:1px solid #999999}

Bên dưới là các thuộc tính bạn có thể gắng vào class hoặc id.

1. Background (nền module) 
Background qui định màu nền hoặc hình nền của module.
Màu nền:
Dạng thuộc tính: background: #fff;
#fff: là màu nền của module.
Đây là kết quả của thuộc tính trên.
Màu nền cho module là màu trắng
Hình nền
Dạng thuộc tính: background: url(Link Ảnh);
Link ảnh: là liên kết đến ảnh nền của module
Đây là kết quả của thuộc tính trên với link ảnh này
Sử dụng hình nền cho module

2. Border (Đường viền cho một module) 
Border qui định thuộc tính về đường viền của một module.
Border có dạng như sau: border: 2px dash #aaa;
Ý nghĩa các giá trị:
» 2px: độ dầy của đường viền
» dash: kiểu đường viền. Bao gồm các dạng sau.
  » dotted
Nội dung
  » dashed
Nội dung
  » solid
Nội dung
  » double
Nội dung
  » groove
Nội dung
  » ridge
Nội dung
  » inset
Nội dung
  » outset
Nội dung
» #aaa: màu đường viền

3. Border-radius (bo góc module) 
Thuộc tính border-radius có tác dụng bo góc cho một module.
Dạng thuộc tính: border-radius: 10px 10px 10px 10px;
Ý nghĩa từng thông số:
 » 10px: là góc trên bên trái.
 » 10px: là góc trên bên phải
 » 10px: là góc dưới bên phải
 » 10px: là góc dưới bên trái
Đây là kết quả đoạn code trên:
Code bo góc cho module
Bạn có thể thay giá trị tuyệt đối (dạng px) thành giá trị tương đối (%)
Ví dụ: border-radius: 50% 50% 50% 50%;
Và đây là kết quả:
Code bo góc cho module

4. Box-shadow (Bóng đổ cho module) 
Box-shadow là thuộc tính về bóng đổ cho module.
Dạng thuộc tính: box-shadow:2px 2px 2px 3px #333 inset;
Ý nghĩa thuộc tính: (lần lượt từ trái qua phải)
 » 2px: là bóng đổ về phía phải (giá trị âm sẽ đổ về phía trái)
 » 2px: là bóng đổ về phía dưới (giá trị âm sẽ đổ về phía trên)
 » 2px: là độ nhòe của bóng.
 » 3px: là độ lan tỏa của bóng.
 » #333: là màu của bóng đổ.
 » inset: là bóng đổ chìm vào trong (nếu muốn làm khối nổi thì bỏ cái này)
Và đây là kết quả của đoạn code trên khi có inset.
Đổ bóng cho module

Kết quả của đoạn code trên khi không có inset.
Đổ bóng cho module

5. Clear (Dừng float module) 
Thông thường khi có 1 module (ví dụ là module A) sử dụng thuộc tính float thì những module tiếp theo nó sẽ có xu hướng chiếm phần không gian mà module A không sử dụng. Để ngăn không cho các module còn lại chiếm không gian mà module A không sử dụng người ta thường dùng thuộc tính clear để giải quyết vấn đề này.
Dạng thuộc tính:
Clear: left; (không cho chiếm không gian bên trái của module A)
Clear: right; (không cho chiếm không gian bên phải của module A)
Clear: both; (không cho chiếm không gian cả 2 bên của module A)
Thông thường người ta ít dùng thuộc tính này vào css mà thường dùng đoạn code <div style='clear:both'/> bên dưới module để dừng việc float module.

6. Color (Màu chữ) 
Color qui định màu chữ trong module bao gồm màu chữ, màu liên kết, màu liên kết khi rê chuột vào...
Dạng thuộc tính: color: #cc0000;
Với #cc0000 là màu chữ.
Ví dụ mình có đoạn css sau:
.module{ color:#779933 }  /* Màu chữ trong module */
.module a{ color:#991177 }  /* Màu liên kết trong module */
.module a:hover{ color:#aa8822 }  /* Màu liên kết khi rê chuột vào. */
Đây là kết quả khi gọi module trên ra.

Blogger: Võ Quốc An
Homepage: http://www.voquocan.com

7. Display (Sắp xếp hoặc ẩn module) 
Display qui định về cách sắp xếp module hoặc ẩn module.
Display có một trong những dạng sau:
display: inline; (module sắp xếp cùng 1 hàng)

Module 1 
Module 2 
Module 3 
display: block; (module sắp xếp thành nhiều block chồng lên nhau)
Module 1
Module 2
Module 3
display: none; (module sẽ bị ẩn khi dùng thuộc tính này)

8. Float (Sắp xếp vị trí module) 
Float qui định về cách sắp xếp vị trí module. (trái, phải.)
Bình thường khi gắng 1 module thì mặc định module mới đó sẽ chiếm 100% chiều ngang. Tất cả các module khác sẽ bị đẩy xuống dưới. Xem ví dụ bên dưới.
Mặc dù module ảnh có chiều ngang là 160px nhưng nó vẫn chiếm 100% chiều ngang và đẩy module text xuống dưới. Gây lãng phí không gian.
Blogger: Võ Quốc An
Homepage: http://www.voquocan.com
Dạng thuộc tính:
float:left; (module nằm bên trái). float:right; làm tương tự nhưng thay left thành right.
Trong trường hợp này module ảnh đã được đẩy qua trái (float:left). Module text sẽ được đưa lên trên như thế này.

Blogger: Võ Quốc An
Homepage: http://www.voquocan.com
Chú ý:
1. Không có tình trạng float ảnh vào giữa (center). Để đẩy ảnh vào giữa bạn cần kết hợp 2 lần float trái cho 2 module. Qui định chiều rộng cho module thứ nhất để xác định được vị trí module thứ 2. Xem ví dụ bên dưới.
Đây là module 1 đã float:left với chiều rộng 150px.
Blogger: Võ Quốc An
Homepage:http://www.voquocan.com
2. Thuộc tính float thường đi chung với thuộc tính clear để gỡ bỏ thuộc tính float của module

9. Font (Kiểu chữ trong module) 
Font qui định về những thuộc tính liên quan đến chữ như kiểu chữ, cỡ chữ, im đậm, in nghiêng...
Dạng thuộc tính:
Sử dụng kết hợp font: italic bold 30px Georgia;
Ý nghĩa từng thuộc tính:
italic: Chữ in nghiêng (có thể bỏ)
bold: chữ in đậm (có thể bỏ)
30px: cỡ chữ
georgia: kiểu chữ
Sử dụng đơn lẻ từng thuộc tính:
font-family: arial; (qui định kiểu chữ)
font-size: 30px; (qui định cỡ chữ)
font-style: italic; (in nghiêng)
font-weight:bold; (in đậm)
Chú ý: Chữ có gạch chân không sử dụng thuộc tính này mà dùng text-decoration:underline;

10. Height - Width (Chiều cao - rộng module) 
Thuộc tính height (width) qui định về chiều cao (rộng) của module.
Height: chiều cao
Dạng thuộc tính: height:150px;
Ý nghĩ thuộc tính:
150px là chiều cao của module.
Bạn có thể thay địa chỉ tuyệt đối (dạng px) thành địa chỉ tương đối (dạng %)
Ví dụ: height:30%;
Width: chiều rộng
Dạng thuộc tính: width:50%;
Ý nghĩ thuộc tính:
50% là chiều rộng của module.
Bạn có thể thay địa chỉ tương đối (dạng %) thành địa chỉ tuyệt đối (dạng px)
Ví dụ: width:300px;

11. Line-height (Chiều cao dòng chữ) 
Thuộc tính line-height qui định về chiều cao dòng chữ.
Dạng thuộc tính:
line-height:2;
line-height:2;
line-height:2;
line-height:4;
line-height:4;
line-height:4;
line-height:25px;
line-height:25px;
line-height:25px;
line-height:200%;
line-height:200%;
line-height:200%;

12. list-style (dấu • định dạng đầu link) 
Thông thường trong các thủ thuật hoặc trong 1 template hay tiện ích linklist thường có các code dạng như sau:
<ul>
<li><a href="http://www.voquocan.com/">Võ Quốc An Blog</a></li>
<li><a href="http://www.voquocan.com/p/sitemap.html">Sitemap</a></li>
<li><a href="http://www.voquocan.com/2011/01/ask.html">Hỏi - Đáp</a></li>
<li><a href="Liên Kết...">Nội dung...</a></li>
</ul>
Và khi hiển thị ra ngoài thì đoạn code trên sẽ có dạng như sau:
Bạn thấy đầu mỗi dòng link có 1 cái chấm tròn không được đẹp lắm. Và dấu chấm tròn này do thuộc tính list-style qui định.
Dạng thuộc tính
list-style:none; (không hiển thị dấu chấm tròn.)
list-style: disc url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivtdpIvkClG7Q1FgPFFYllU8U8Pavkbx-jUBtiKeZFknwOYb7DUGhlCvMLbY7OCMz_s50LLxcyzt86SgU_ZBUf9P8wHZcZe5uz4ENwqioLic2Xb4HOEbMnLzUFC9hyt27HDFXDcvATdemI/s1600/iconhover.png);(dùng ảnh ở liên kết làm dấu chấm)
list-style:upper-alpha; (thay dấu chấm bằng ký tự ABC)
list-style:decimal; (thay dấu chấm bằng số 1-2-3-4)
Thật ra còn một số dạng khác nữa nhưng ít khi dùng đến nên mình sẽ không đề cập ở đây.

13. Margin (khoảng cách giữa các module) 
Margin qui định khoảng cách từ module hiện tại đến module kề với nó.
Dạng thuộc tính:
Margin: 10px 20px 30px 40px;
Ý nghĩa các thuộc tính:
10px: khoãng cách từ module đến module bên trên
20px: khoãng cách từ module đến module bên trái
30px: khoãng cách từ module đến module bên dưới
40px: khoãng cách từ module đến module bên phải
Đây là kết quả: (bạn chú ý khoảng cách từ module đến những module xung quanh)
Module A
Chú ý: Bạn có thể thay giá trị tuyệt đối (dạng px) bằng giá trị tương đối (dạng %)

Margin: 0 auto;
0: khoãng cách từ module đến phía trên và dưới.
auto: cách đều trái phải.
Đây là kết quả:
Module A

14. Max-height (Chiều cao tối đa module) 
Max-height (Min-height)  là thuộc tính qui định chiều cao tối đa (tối thiểu) cho một module.
Dạng thuộc tính:
Max-height:150px;
Min-height:100px;
Kết quả của thuộc tính trên đây:
Khi chiều cao nội dung nhỏ hơn chiều cao module thì chiều cao module sẽ bằng min-height

Khi chiều cao nội dung lớn hơn chiều cao module thì chiều cao module sẽ bằng max-height.
Khi chiều cao nội dung lớn hơn chiều cao module thì chiều cao module sẽ bằng max-height.
Khi chiều cao nội dung lớn hơn chiều cao module thì chiều cao module sẽ bằng max-height.
Khi chiều cao nội dung lớn hơn chiều cao module thì chiều cao module sẽ bằng max-height.
Khi chiều cao nội dung lớn hơn chiều cao module thì chiều cao module sẽ bằng max-height.
Khi chiều cao nội dung lớn hơn chiều cao module thì chiều cao module sẽ bằng max-height.
Khi chiều cao nội dung lớn hơn chiều cao module thì chiều cao module sẽ bằng max-height.
Khi chiều cao nội dung lớn hơn chiều cao module thì chiều cao module sẽ bằng max-height.
Khi chiều cao nội dung lớn hơn chiều cao module thì chiều cao module sẽ bằng max-height.
Khi chiều cao nội dung lớn hơn chiều cao module thì chiều cao module sẽ bằng max-height.
Khi chiều cao nội dung lớn hơn chiều cao module thì chiều cao module sẽ bằng max-height.
Khi chiều cao nội dung lớn hơn chiều cao module thì chiều cao module sẽ bằng max-height.
Thuộc tính max-height thường đi kèm với thuộc tính overflow để giải quyết vấn đề cho phần nội dung bị thừa ra ngoài. Ví dụ:
Kết hợp thuộc tính max-height:150px; với overflow:auto; thì module được tạo ra sẽ như thế này.
Kết hợp thuộc tính max-height:150px; với overflow:auto; thì module được tạo ra sẽ như thế này.
Kết hợp thuộc tính max-height:150px; với overflow:auto; thì module được tạo ra sẽ như thế này.
Kết hợp thuộc tính max-height:150px; với overflow:auto; thì module được tạo ra sẽ như thế này.
Kết hợp thuộc tính max-height:150px; với overflow:auto; thì module được tạo ra sẽ như thế này.
Kết hợp thuộc tính max-height:150px; với overflow:auto; thì module được tạo ra sẽ như thế này.
Kết hợp thuộc tính max-height:150px; với overflow:auto; thì module được tạo ra sẽ như thế này.
Kết hợp thuộc tính max-height:150px; với overflow:auto; thì module được tạo ra sẽ như thế này.
Kết hợp thuộc tính max-height:150px; với overflow:auto; thì module được tạo ra sẽ như thế này.
Kết hợp thuộc tính max-height:150px; với overflow:auto; thì module được tạo ra sẽ như thế này.
Kết hợp thuộc tính max-height:150px; với overflow:auto; thì module được tạo ra sẽ như thế này.
Kết hợp thuộc tính max-height:150px; với overflow:auto; thì module được tạo ra sẽ như thế này.
Kết hợp thuộc tính max-height:150px; với overflow:auto; thì module được tạo ra sẽ như thế này.

15. Opacity (Độ trong suốt của một module) 
Opacity là thuộc tính qui định về độ trong suốt của module.
Dạng thuộc tính: opacity:0.5;
0.5: độ trong suốt của module. Giá trị của thuộc tính nằm trong đoạn từ 0 đến 1
Đây là kết quả mình áp dụng thuộc tính opacity cho module A.
Module B
Module A

16. Overflow (Nội dung vượt ngoài module) 
Overflow là thuộc tính qui định cách hiển thị cho phần nội dung ngoài module.
Dạng thuộc tính:
Overflow:auto;
Overflow:visible;
Overflow:visible;
Overflow:visible;
Overflow:visible;
Overflow:visible;
Overflow:hidden;
Overflow:visible;
Overflow:visible;
Overflow:visible;
Overflow:visible;
Overflow:visible;
Overflow:visible;
Overflow:visible;
Overflow:visible;
Overflow:visible;
Overflow:visible;
Overflow:visible;

17. Padding (Khoãng cách từ biên module đến phần nội dung bên trong) 
Padding qui định về khoảng cách từ phần nội dung đến biên của module.
Dạng thuộc tính (tương tự như margin)
Padding: 10px 10px 10px 10px;
Kết quả:
Padding: 10px 10px 10px 10px;
Padding: 70px 10px 30px 50px;
Padding: 70px 10px 30px 50px;
Ý nghĩa các thuộc tính:
70px: khoãng cách từ nội dung đến biên trên module
10px: khoãng cách từ nội dung đến biên trái module
30px: khoãng cách từ nội dung đến biên dưới module
50px: khoãng cách từ nội dung đến biên phải module

18. Position (Vị trí tương đối của một module) 
position có khá nhiều thuộc tính nhưng thông thường mình chỉ sử dụng 1 thuộc tính làposition:fixed; để cố định vị trí của một module trên trang web (ví dụ cụ thể là thanh menu trang chủ, sơ đồ blog... trên đầu blog mình). Những thuộc tính khác mình hok tìm hiểu nên cũng không rành lắm.
Khi dùng position:fixed; người ta thường dùng kèm với 2 thuộc tính sau để định vị vị trí module
» top:10px; (cách đỉnh giao diện 10px) hoặc bottom:10px; (cách chân giao diện 10px)
» left: 10px; (cách lề trái 10px) hoặc right:10px; (cách lề phải giao diện 10px)
Bạn có thể thay giá trị tuyệt đối (dạng px) thành giá trị tương đối (dạng %)

19. Text (Thuộc tính về chữ của module) 
Text là thuộc tính qui định về chữ của module. Bao gồm các vấn đề sau:
text-align:left; chữ canh lề trái
text-align:right; chữ canh lề phải
text-align:center; chữ canh giữa
text-align:justify; chữ canh đều 2 bên
text-decoration:underline;
gạch chân dòng chữ
text-decoration:overline;
gạch trên dòng chữ
text-decoration:line-through;
gạch ngang dòng chữ
text-decoration:blink;
chữ nhấp nháy (cái này hình như chrome ko hỗ trợ)
text-transform:lowercase;
chuyển tất cả về chữ thường
text-transform:uppercase;
CHUYỂN TẤT CẢ VỀ CHỮ HOA
text-transform:capitalize;
Viết Hoa Chữ Đầu

20. Z-index (Sắp xếp module trên dưới) 
z-index là thuộc tính qui định về cách sắp xếp các module.
dạng thuộc tính: z-index:5;
module có giá trị z-index cao hơn sẽ nằm trên. (thường áp dụng cho các module có thuộc tính position:fixed)

Phía dưới là demo mình để sẵn. Ấn nút xem trước để xem kết quả. Bạn có thể xóa và thử 1 số css khác theo ý mình để biết rõ hơn cách làm việc của css.
--- --- --- --- --- ---
Cơ bản về css thì đã hoàn thành. Tất nhiên còn rất nhiều css khác nhưng không thường xuyên sử dụng nên mình không đề cập ở đây. Nếu bạn gặp khó khăn gì trong việc viết ra các đoạn css này thì để lại comments bên dưới, mình sẽ cố gắng trả lời trong thời gian sớm nhất có thể. Chúc bạn thành công!

Đăng nhận xét