Các bài học về CSS
Contents
Cơ bản vềCSS . 3
I. CSS là gì . 3
II. Một số đặc tính cơbản của CSS . 3
Cú pháp của CSS . 5
Làm sao chèn CSS vào trong trang Web . 6
1. CSS được khai báo trong file riêng. . 6
2. Chèn CSS trong tài liệu HTML . 6
3. Chèn trực tiếp vào thẻcủa HTML(inline style) . 7
4. Nhiều Stylesheet . 7
Các vấn đềvềvăn bản và cách định dạng văn bản . 8
Đặt màu cho một đoạn văn bản . 8
Đặt màu nền cho đoạn văn bản. . 8
Căn chỉnh khoảng cách giữa các ký tự. . 8
Căn chỉnh khoảng cách giữa các dòng. . 8
Dóng hàng . 9
Trang hoàng thêm cho đoạn văn bản. . 9
Chỉnh vịtrí của đoạn văn bản (indent). . 9
Điều kiển các ký tựtrong một đoạn văn bản. . 9
Đặt hướng cho đoạn văn bản. . 10
Tăng khoảng cách giữa các từ. . 10
Làm mất tác dụng của đường bao của một thẻHTML. . 10
Các thuộc tính của font chữvà định nghĩa font chữcho văn bản . 11
Đường viền và các thuộc tính của đường viền . 13
Các thuộc tính của margin . 15
Thuộc tính đường bao ngoài (Outline) . 16
CSS padding . 18
Làm thẻdiv có thanh cuộn (scrollbar) giống iFrame . 19
Style một kiểu Bubble đơn giản . 21
1. Định dạng HTML . 21
2. Định dạng CSS . 21
Căn bảng vào giữa màn hình. . 23
Menu dạng tab - Phần I. . 24
Kỹthuật làm chữhoa đầu dòng (Drop cap) . 26
1. Cách thứnhất . 26
2. Cách thứhai . 27
Trang trí cho danh sách có thứtự . 29
Kỹthuật tải ảnh trước bằng CSS . 30
Fix min-height cho IE . 32
Đặt min-width cho IE6 . 33
CSS Transparency trên toàn bộcác trình duyệt . 34
Border và những điều bạn chưa biết . 35
Kỹthuật đưa footer xuống cuối trang . 36
Đặt dòng text vào giữa ( theo chiều cao) . 38
Hiển thị ảnh PNG trên IE . 39
Style cho thẻhr . 40
Thêm khoảng cách giữa đường kẻvà phần nội dung. . 40
Kỹthuật slicing door và ứng dụng . 41
1. Tạo nút bằng Photoshop . 41
2. Cắt nút ra thành hai phần. . 42
3. Thực hiện viết mã HTML và CSS. . 42
Cách viết giản lược trong CSS . 44
1. Thuộc tính Color . 44
2. Thuộc tính margin và padding. . 44
3. Thuộc tính border. . 45
4. Thuộc tính background. . 45
5. Thuộc tính font . 46
5. List type. 46
6. Outline . 46
ww.123comta.com
CÁC BÀI HọC Về CSS
Style cho thẻ hr
là một thẻ tự đóng, điều đó có nghĩa là nó không cần thẻ đóng như những thẻ HTML khác.
Thẻ sẽ tạo ra một đường kẻ ngang trên trình duyệt và khoảng cách giữa đường kẻ và nội
dung thì phụ thuộc vào các trình duyệt khác nhau.
Tuy nhiên bạn hoàn toàn có thể thay đổi cách hiển thị của thẻ theo ý mình trên một số trình
duyệt. Đối với một số trình duyệt mới (IE6, IE7, Firefox, Opera, Mozilla...) thì cách định dạng
của bạn hoàn toàn có thể tương thích.
Trong cách định dạng thẻ chúng ta cũng cần phải chú ý một chút về cách mà cách trình
duyệt xử lí đối với đối tượng thẻ . Với Internet Explore (IE) sẽ sử dụng thuộc tính color để
hiển thị màu của đường kẻ và thuộc tính background sẽ không có tác dụng. Tuy nhiên thì
Mozilla(Netscape) và Opera thì lại dùng thuộc tính background để hiển thị màu của đường kẻ.
Chúng ta cũng có thể sử dụng thuộc tính border để hiển thị định dạng, nhưng đó không phải là
một cách mà chúng ta muốn.
Chúng ta có đoạn mã CSS định dạng thẻ như sau:
hr {
color: red;
background: red;
border: 0;
height: 1px;
}
Thêm khoảng cách giữa đường kẻ và phần nội dung.
Để thêm khoảng cách giữa đường kẻ và nội dung chúng ta sẽ dùng thuộc tính margin để quy
định khoảng cách này.
hr {
color: red;
background: red;
border: 0;
height: 1px;
margin: 10px 0 20px; }
www.123comta.com
CÁC BÀI HọC Về CSS
Kỹ thuật slicing door và ứng dụng
Đối với những desiger thường xuyên làm việc với CSS thì kỹ thuật Sliding Doors không có gì
mới mẻ. Nhưng đối với những bạn mới làm quen với CSS thì tôi nghĩ rằng đây là một kỹ thuật
mà bạn nên tìm hiểu nó.
Kỹ thuật Sliding Doors(kỹ thuật cửa kéo), là một kỹ thuật được ứng dụng rất nhiều trong việc tạo
ra các button, hay các menu ngang kiểu tab,…Trong bài viết này chúng ta sẽ đi tìm hiểu ý tưởng
chủ đạo của kỹ thuật và tạo ra một ví dụ nhỏ có sử dụng kỹ thuật trên.
Tôi chắc rằng ít nhất chúng ta đã một lần nhìn thấy chiếc cửa kéo kiểu nhật bản. Một bên cửa cố
định và một bên cửa sẽ linh động có thể kéo ra hoặc kéo vào tùy thích. Bản chất của kỹ thuật
Sliding Doors cũng giống như vậy.
Chúng ta sẽ chia đối tượng 2 phần(phần bên trái và phần bên phải). Phần bên trái sẽ là phần cố
định, còn phần bên phải sẽ là phần động(Việc phân chia này tùy theo ý thích của bạn, bạn có thể
phân chia phần bên phải cố định và phần bên trái là phần động). Điều đó cũng có nghĩa là phần
bên trái sẽ có kích thước vừa phải, còn phần bên phải cần có kích thước luôn lớn hơn hoặc bằng
nội dung mà bạn dự định đưa vào(để đảm bảo rằng đối tượng của chúng ta giống như bị đứt
gãy).
Để bạn có một hình dung rõ hơn tôi xin đưa ra hình vẽ mô tả ý tưởng của kỹ thuật này như sau:
Như trên hình vẽ bạn đã thấy, phần bên trái sẽ cố định và phần bên phải sẽ có ra hoặc dãn vào
tùy theo nội dung bên trong của đối tượng cần tạo. Do vậy với cách làm như trên thì chúng ta cần
tạo phần bên phải cần phải đủ dài để tránh trường hợp bị thiếu ảnh khi nội dung dài.
Các bạn thấy không nghe thì có vẻ ghê gớm nhưng về bản chất thì kỹ thuật này chỉ có vậy thôi,
nhưng các bạn đừng coi thường, tuy vậy nhưng nó khá quan trọng và được ứng dụng rất rộng rãi
trong việc tạo button, tạo menu kiểu tab,…Để minh họa cho điều tôi vừa trình bày bày sau đây
tôi xin đưa ra một ví dụ có sử dụng kỹ thuật này.
Trong ví dụ này chúng ta sẽ tạo ra một số button theo phong cách web 2.0, và có độ tùy biến nội
dung cao(chúng ta có thể thay đổi nội dung ở trong một cách tùy ý). Sau đây là chi tiết từng bước
làm cụ thể.
1. Tạo nút bằng Photoshop
www.123comta.com
CÁC BÀI HọC Về CSS
Việc đầu tiên chúng ta cần làm đó là chúng ta cần tạo ra hình dáng chiếc nút thân yêu của ta,
trong ví dụ này tôi tạo ra một nút Sign Up Now! như sau:
2. Cắt nút ra thành hai phần.
Như tôi đã trình bày ở trên, để thực hiện được kỹ thuật này chúng ta cần phải cắt đối tượng ra
làm 2 phần. Để có thể cắt hình được chính xác tôi khuyên bạn nên sử dụng công cụ Slice(Slice
Tools) trong Adobe Photoshop. Button của chúng ta sẽ được slice như sau:
Chúng ta cần chú ý là phần bên phải cần phải đủ dài để đảm bảo rằng không bị thiếu.
3. Thực hiện viết mã HTML và CSS.
Chúng ta có định dạng mã HTML như sau:
…Nội dung…
Giải thích:
1. Sở dĩ chúng ta cần phải sử dụng 2 phần thử HTML trong việc này là do đối tượng của
chúng ta được chia làm 2 phần, và mỗi phần tử sẽ làm nhiệm vụ giữ một phần của đối
tượng.
2. Chúng ta sẽ dùng thẻ bao ở ngoài cùng để đảm bảo rằng toàn bộ nút sẽ link được khi
di chuột lên trên nút. Đồng thời thẻ này sẽ chứa phần động bên phải.
3. Thẻ sẽ làm nhiệm vụ giữ phần cố định bên trái, đồng thời sẽ có nhiệm vụ che
phần dư của ảnh nền bên phải.
Để thỏa mãn với yêu cầu đặt ra chúng ta có mã định dạng CSS như sau:
/* Sign up button style */
a.sign-up {
font-family: Arial, Helvetica, sans-serif;
font-size: 25px;
font-weight: bold;
color: #FFF;
text-decoration: none;
margin: 0;
padding: 28px 0;
display: block;
background: url(images/signup-right-bg.gif) no-repeat right center;
width: 270px;
}
a.sign-up:hover,
a.sign-up:active {
www.123comta.com
CÁC BÀI HọC Về CSS
color: #FF0;
}
a.sign-up span {
margin: 0;
padding: 28px 0 28px 90px;
background: url(images/signup-left-bg.gif) no-repeat left center;
}
www.123comta.com
CÁC BÀI HọC Về CSS
Cách viết giản lược trong CSS
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ẻ 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
1. 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.
2. 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 được
chia 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;
www.123comta.com
CÁC BÀI HọC Về CSS
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; /* top bottom | right left */
Thì thông số thứ nhất tương đương với top và bottom còn thông số thứ hai tươ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
www.123comta.com
CÁC BÀI HọC Về CSS
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. Và 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;
www.123comta.com File đính kèm:
Các bài học về CSS.pdf

