thừa kế xác lập font đĩ. Tuy nhién, bạn cĩ thế ghi đè các hiệu ứng cascad ing bằng cách gán một xác lập font khác '«/ào phẩn tử <b>.
W3C đã giới thiệu chuẩn c s s Level 1 vào cuối n ăm 1996. IE 3 đã là trìn h duvệt. đầu tiên đưa vào mơt sự hỗ trơ cho chuẩn mới này và chẳng bao lâu N etscape 4 cũng hỗ trự thêm một phần cho c s s (mặc dù cực kỳ bị lỗi).
Một style sh eet là ưiột nhĩm các định nghĩa mơ tả style cho một tập hợp p h ần tử HTML. Sử dụng các style sheet, bạn cĩ th ể hồn tồn tái định nghĩa cách m ột pnần tứ nhất định được k ết xuãt bên trong trìn h duyệt Web, vì mỗi phần tử phơi bày một số thuộc tin h các giá trị cĩ th ế được th ay đổị
QỆX ( tu ----------------------------------------------------
W 3 C c é m ộ t W f b i i t f p ? t l ố t ẩ ỉ' t ì m h u ? u t k ể m v ể c i c s t i j i e s h e e t ; cỉi
đ ế n h t f p ; / / w * w . w 3 .o r g / S t y l e . ________________________________________
Gán Style vào các trang Web sử dụng các phần tử HTML
Phương pháp gốc để định dạng nội dung của m ột tra n g Web là sử dụng các phần tử và thuộc tính liên quan đến style HTML. Ví dụ, thẻ ;/ịn*> cĩ lược sử dt n f đê xác lệp kiểu chữ, kícb cỡ hoặc màu cho text b tn tvong một tàị liệụ T'iẻ <b:- t;ĩ th ể được sử dụng để in đậm
text, th ẻ <i> tạo các kiểu in nghiêng...
Tuy nhiên, đây là một phương pháp rấ t kém hiệu quá để tạo style (hí< một t r a r g Web vì một số lý do:
M Sìylờ và lavo cùa mơl tra Mị Web cơ tbê dờ dàng đỉtợc lái sử dụng giữa hai hoặc nhiều filo ÌỈTML, điền này tạo ra thơm cõng việc Ị)bát
Itiền cho các lacgtả 'ĩVìiỊị Web.
M Các frame, bảng xép lổng (nested table), ảnh ẩn và những kỹ thuật phức tạp) khác cần sử dụng ấể dật text hoặc đố boọ vào một vị trí cụ
thể.
JT Các thẻ style HTML tiling lặp, chẳng hạn như thẻ fo n t cần được lặp lại nhiều lần trẽn củnq mĩt trang Web.
R Thay đổi style trẽn một trang Web hoặc của tồn bộ một style địi hỏi nhiều cơng sức.
# Các trang Web lớn hơn nghĩa là chúng mất thời gian lâu hơn để download xuống các trình duyệt.
270 Chương 12: Thực thi hoạt hình đơn giản Điều bạn cần biết
Cách x á c đ ịn h các m àu trong HTML
Cĩ một số nơi trong HTML, css và JavaScript địi hỏi các nhà lập trình xác định một màụ Ví dụ thẻ HTML <font> cĩ một thuộc tính màu mà qua đĩ bạn cĩ thể xác định màu của font.
Các màu cĩ thể được xác định theo tên hoặc theo giá trị R G B (red-green- blue). Một số màu cĩ các tên ấn định sẵn trong HTM L, chẳng hạn như black (đen), white (trắng), yellow (vàng) và blue (xanh dương). Cĩ hàng chục màu ấn định sẵn.
Nếu bạn muốn sử dung một màu đã khơna cĩ tên, bạn cĩ thể xác định giá trị R G B chính xác. Các giá tri RGB bắt đầu với dấu pound (#' theo sau là ba cặp chỉ số thập lục phân, chẳng hạn như #FF33C0.
Cặp chỉ sơ' thập lục phân đầu tiên tượng trưng cho lượng màu đỏ trong một màu, bắt đầu từ một giá trị 00 (tối nhất) đến F F (sáng nhất) - đĩ là 256 xác lập duy nhất cho màu đỏ. Cặp thứ hai tượng trưng cho lượng màu xanh lá cây trong khi cặp thứ ba tượng trưng cho màu xanh dương.
Do đĩ màu #FF33C0 tượng trưng cho một tổ hợp màu đỏ sáng, màu xanh lục sậm và màu xanh dương vừa trơng giống nhiều như cây hoa vân anh (một màu hồng hơi tím sáng). # F F F F F F tượng trưng cho màu trắng thuần khiết và #000000 tượng trưng cho màu đen thuần khiết.
Ví dụ, m ã HTML sau đây định nghĩa một tra n g cĩ m ột style tương đối phức tạp, Mã HTML bề bộn và khĩ đọc do tấ t cả th ẻ HTML dư thừa và các thuộc tín h được yêu cầụ
<html>
<headxtitle>style sheets example</titlex/head> <body bgcolor=”white” !ink=”purple” vlink="green”> <center>
<h1>
<font color="#333399" face=”Arial”> Introduction to XML
</font> </h1> </center>
<pxfont color=”#993333" íace=”Arial” size=”3">
<b>XML is one of the most important new standards to come out of the W3C<br>
since HTML.</b> All developers should be aware of what XML is and how it<br>
 , ,&ribsp; should be used. In this article, we introduce the basics of XML, including a<br>
discussion on DTDs.</fontx/p> </body>
</'html>
Mã trước bao gồm một số thẻ định dang chẳng hạn như <center>, <font> và <b>. Cũng cĩ một số khoảng trơng khơng n g ắt ^ ) để giúp th ụ t đoạn vào và th ẻ <body> chứa ba thuộc tín h liên quan đến stylẹ
H ình 12.1 m inh hoạ trìn h duyệt kết xuất m ột tra n g được tạo style tốt từ m ã HTML m ẫu n h ư th ế nào
Chương_12: ThựcjM hoạt hình đơn giản ________________________________271
Introduction to XML
XML is o n e o f t h e m o s t im p o rta n t n e w s ta n d a r d s to c o m e o u t o f t h e W 3C
sii c e HTML AH le\ *i<. sn- iw. * • ; w. at .¡vll is • ind V * it
shouW bo usod in ttuc attic*\ wo introejce the dssics 0» AML. including o ■iistussioncr DTDs
'F~!ST a
Hình 12.1 Phướng pháp truyền thơng để định dạng một trang sử dụng các thẻ style HTML.
Gán Style vào các trang Web sử dụng các Style Sheet
Dĩ nhiên, chúng ta cĩ th ể tạo hiệu ứng tương tự được m inh hoạ trong h ìn h 12.1 sử dụng các style sheet. Tuy nhiên, giải pháp style sh eet sẽ p h á t triể n ngăn nắp hơn, dễ dàng hơn và bảo trì đơn giản hơn tro n g tương laị T hậm chí chúng ta cĩ th ể chia sẻ định nghĩa style này với b ấ t k>' số tra n g Web khác giúp tiế t kiệm cho chúng ta thời gian p h á t triể n quý giá. Chúng ta cũng cĩ th ể làm một số điều quý giá thú vị b ằng cách n ày mà các thẻ style HTML khơng th ể làm được.
Đầu tiên, chúng ta sẽ lấy ví dụ trang Web và loại bỏ các th ẻ style và thuộc tín h HTML ra khỏi nĩ. Chúng ta sẽ sử dụng các th ẻ HTML <div> th ay vào đĩ để đánh dấu text cần được tạo stylẹ
272 Chướng 12: Thực thi hoạt hình đơn giản <html>
<headxtitle>style sheets example</titlex/head> <body> <div id="heading’'> Introduction to XML «:/ơiv> <div id="summary”> <span id=”boldintro">
XML is one of the most important new standards to come out of the W3C since HTML.
</span>
Ail aevelopers should be aware OĨ what XML is and how it should be used. In this article, we introduce the basics of XML, including a discussion on DTDs.
</div> </body> </html>
Chúng ta cĩ th ể tạo một style sheet đơn giản cho tà i liệu này và chèn nĩ vào tra n g Web sử dụng p h ần tử HTML <style>. P h ần tử <style> thuộc về bên trong phần <head> của tà i liệụ
<style type=’’text/css’’> #heading { font: 24pt Arial; color: #333399; text-align: center; margin-bottom: 20pt; } #summary { font: 12pt Arial; color: #993333; margin-left: 20pt; } #boldintro { font-weight: bold; } </style>
Chương 12: Thực thi hoạt hình đnn giản 273
C húng ta sẽ xem cú pháp của chính stvle sh eet ớ phần sau trong chưong này Nhưng thậm chí khĩng cần phải biết chính xác style sheet cĩ nghĩa gì. bạn cĩ th ể thấy những gì nĩ làm. T rang Web vừa tạo ra hầu như giống h ệ t như tran g Web được minh hoạ trong h ìn h 12.1, đã được tạo style bằng HTML truyền thống, nhưng phương pháp style sh eet linh ao ạt vá m ạn h hơn nhiềụ
S ứ dụng <div> và <spcn> d ể đành dâu rext động
HTML 4.01 cung cấp hai phần tử đặc biệt để hỗ trợ việc tích hợp
css và HTML: <div> và <span>.
P h ần tử <div> là một m arker cho các khối text,. Một khối tex t là một hoặc nhiều đoạn phức tạp, h ắt đầu và k ết thúc trên rnột dịng mớị P h ần tử <div> làm cho một tài liệư dễ được tạo style hơn sử dụng các styJe sheet.
<d¡v id="Fir$tError">Error! You have entered an incorrect user ID and/cr passv/ord. Please try again, and if you continue to have dif-iC'jlt', olease contact a sys’.en cdniristraỶor f0' hair <‘div>
P h ần tử <span> rấ t tương tự ngoại trừ nĩ xử lý tex t inline (nội uịng). Text in lin e knĩng phải b ắt đầu hoậc k ết thuc trê n m ột dong mới, do đĩ <span> cĩ th ể được sử dụng để áp dụng style vào những ký tư đơn, từ hoặc câụ
<span style=”font-size:14pt”>H</span>is main goal in life was
<span stvlti=‘'foiit-\weigiit.í)0i(i,'^v;0rid iiomiiiatiofjc/spdn^, altnougli
tonight he was willing to settle for a nice steak and a cold beer.
Các thuộc tín h chính cua <div> và <span> là id, style và class, id
cho phpp ban xác định một tên rho text được bao bọc. Điếu này làm cho de dàng iru y cập tex t s f í d ụ n g JavaSciÍD t hoặc css. Thuộc tính
style cho phép bạn xác định trực tiếp css bên trong HTML. Thuộc cínb cl'iss tư ơ rg tự như thuộc tính ưì ngoại trừ một sơ" thẻ cĩ th ế cổ
cùng thuộc tin h class trong khi I;huộc lánh ici duy nhất, cho m ột thẻ. Định nghĩa các Style Inline
C huấn HTM L cho phép cú pháp style css được định nghĩa bên
trong p h ần th á n của tài liệu sử dụng một kỹ th u ậ t được gọi là inline stylẹ H ầu h ết các phần tử HTML cĩ một thuộc tín h được gọi là style cĩ th ể chấp n h ậ n những định nghĩa css như sau:
<p style=”font:Arial;font-weight:bold”> This is some text
</p>
Sử dụng kỹ th u ậ t này thì nh an h và tiện lợi nhưng bạn m ất đi một số lợi ích của việc sử dụng các style sheet. Cụ thể, p h ần th â n của tài
274 Chướng 12: Thực thi hoạt hình đơn giản
liệu vẫn phức tạp, bề bộn và khĩ bảo trì. Mã style sh ee t khơng th ể dễ dàng tá i sử dụng. Thực t ế vì style khơng được tách b iệt ra khỏi nội dung, kỹ th u ậ t này tương đương như sử dụng các th ẻ style và thuộc tín h HTML.
Một lợi ích m à bạn cĩ được là kh ả n ăng sử dụng các style phức tạp khơng cĩ sần sử dụng phương thức th ẻ style HTML. Đối với các tra n g Web nhỏ hoặc các tra n g Web cĩ những yêu cầu style duy n h ấ t, đây cĩ th ể là một phương pháp chấp n h ận được.
Đ ịnh nghĩa các Style Sheet nhúng
Bước tiếp theo từ rác inline stvle là sử d ụ rg các style sh eet nhúng. Một stylo sheet nhúng là style sheet được định nghĩa sử dụng th ẻ HTML <style> bên trong p h ần header của tà i liệụ Các style được đ ịn h nghĩa bằng cách này cĩ sẵn cho tồn bộ tra n g Web, do đĩ hồn tồn cĩ th ể định nghĩa chỉ m ột hoặc hai định nghĩa style cho m ột tài liệu lớn và phức tạp.
Một style sh eet gồm một hoặc nhiều quy tắc (rule). M ột rule là một định nghĩa cho m ột style cĩ dạng sau đây:
selector {
attributel : value; attribute2 : value; attributeN : value;
}
Ví dụ, trong phần trước chúng ta đã cĩ một style sh ee t cĩ ba rule Một trong các iule đã được địnli iighĩa oằng mix bau dây:
Isummary {
font: 12pt Arial; color: #993333; margin-left: 20pt;
}
Rule cĩ m ột selector (#summary) và định nghĩa các giá tr ị cho ba thuộc tín h (font, color, và margin-left). Selector quyết định các th ẻ HTML nào cĩ các thuộc tín h của chúng được xác lập sang nhữ ng giá trị được xác định. Rule khơng cần phải được tạo khoảng cách trê n m ột sơ" dịng. Bạn cĩ th ể đ ặ t rule trê n tấ t cả một dịng hoặc n g ắt nĩ trê n th êm m ột số dịng để cải th iện việc đọc nếu bạn muơn.
B ảng sau đây m inh hoạ các selector làm việc tro n g css n h ư th ế nàọ
S electo r Mã HTML bị ản h hư ởng
h l Anh hưởng đến tất cả thẻ <hl> trong tài
Chướng 12: ^hực th.: hor.t ‘iìrh jc n gir.n 275
p b
ul ul li điv .red
sheading Ảnh hưởng đến thẻ cỏ một thc tính id được
xac lập sang heading.
.blue Ảnh hưửng đến tất cả thẻ cĩ ưiột thuộc tính
class dược xác lập sang bluẹ
p#headin.g Ảnh hưởng đến tất cả thẻ <p> trong tài liệu
cĩ một thuộc tính id được xác lập sang head- -nf>-
p.blue Ảnh hưởng đến tất cả thẻ <p> trong tài liệu
cĩ một thuộc tính class được xác lập sang bluẹ
h i, h2, h3 Ảnh hưởng đến tất cả thẻ <hl>, <h2>, và
<h3> trong tài liệu
Anh hưởng đến tẫ t cả thé <p> chứa bên trong các thẻ <p>; các thẻ <b> khơng nằm bên trong các thẻ <p> sẽ khơng bị ảnh hưởng. Ảnh hưởng đến tất cả thẻ <li> nằm bên trong tốx thiếu hai thẻ <ul>.
Ảnh hưởng đến tất cả thẻ cĩ một thuộc tính class được xác Jập sang red cũng nám bên trong một thuộc tính div.
Như bạn cĩ th ể thấy, cĩ ba cách để xác lập style cho tồn bộ tà i liệu cùng m ột lúc và các cách để xác lập style của các phần tử r ấ t chuyên biệt bơn trong tà i l.iệu Cuối cùn^, hạn cĩ th ể tạo mơt số style sheet r ế t ohức tạp và tồn diện sử dung cáo selector phức tạp.
J n . p o r i c á c s.yỉe .Igữc i
Cĩ h ai cách để im port một stvle sheet từ m ột file ngồi vào một tài ũệu HTML:
M Phần tứ HTML <link> B Lệnh style sheet 'ỗưnport
Điều n à y cĩ n g h ĩa là bạn cĩ th ể tạo một file style sheet m à cĩ th ể được áp dụng vào tấ t cả trang trê n một web sitẹ Và với m ột vài thao tác n h ấp chuột đơn giản trong một. bộ biên tập text, bạn cĩ th ể dần dần th ay đổi style của tấ t cả tra n g trê n site cùng m ột lúc.
Để sử dụng p h ần tử <link>, đ ặt mã HTML sau đây tro n g phần <head> của tra n g Web:
clink rel="STYLESHEET" type=”texưcss"
hreí=”http://www.examplẹcom/mystylẹcss”>
M ã t r ư đ c s ẽ là m cho s ty le s h e e t đư ợc đ ặ t t ạ i h t t p : / / www.examplẹcom/mystylẹcss được im port vào tra n g Web. P h ần mở rộng file .css thường được sử dụng cho các style sheet.
276 Chương 12: Thực thi hoạt hình đơn giản
Để im port cùng một style sheet sử dụng lệnh @import, chúng ta th ậ t sự cần thêm m ột phần style vào tiêu đề tài liệụ
<style type=”texưcss”>
@import url(http://www.examplẹcom/mystylẹcss); </style>
T ất cả ba loại style sheet (inline, embeđed (nhúng) và external (ngồi)) cĩ th ể được k ết hợp trong một tài liệụ Nếu các style xung đột, các style inline được ưu tiên theo sau là các style được nhúng và cuối cùng là các style ngồị
Sử dụng các thuộc tính Style cơ bản
Như được đề cập trong phần "Định nghĩa các Style S heet nhúng", một style sheet gồm m ột hoặc nhiều rule và các rule gồm một selec tor cộng m ột hoặc nhiều thuộc tính. Trong phần này, chúng ta sẽ xem các loại thuộc tín h khác nhau cĩ th ể được sử dụng để xác lập các stylẹ
Cĩ h àn g chục thuộc tín h được định nghĩa tro n g th ơ n g số css 1 chính thức - r ấ t nhiều đến nỗi khơng th ể đề cập h ế t tro n g sách nàỵ Để biết th êm thơng tin về các thuộc tín h css cĩ sẵn , bạn nên th am khảo hai nguồn sau:
B Thơng số W3c CSS 1 chính thức cĩ th ể được tìm thấy bttp:// W W W . w3org/TR/REC-CSSl.
R Web site Micsosoft MSDNcĩ một hướng dẫn tham khảo bồn hảo tại h ttp ://tn sd n .m ic ro so ft.c o m /w o rk sb o p /a u ib o r/c ss/re fe re n c e / css_ref_entry asp.
Hướng dẫn th am khảo MSDN đặc biệt được tổ chức tốt. Các thuộc
tín h css được th am chiếu chéo với những phần tử HTM L được liên quan
của chúng.
B ảng 12.1 mơ tả m ột sơ' thuộc tín h css được sử dụng thường xuyên.
Một số thuộc tín h được liệt kê trong bảng 12.1 là nhữ ng thuộc tín h phức hợp, nghĩa là chúng cho phép bạn xác lập nhiều thuộc tín h của một phần tử cùng một lúc. Ví dụ, thuộc tín h font cho phép b ạ n xác lập lên đến 14 thuộc tín h liên quan đến font trong m ột chuỗị
BODY {
font: italic normal bold 12pt Arial;
}
Bước t ắ t tiện lợi này tương đương như mã sau đây:
BODY {
Chương 12: Thực thi hoạt hình đơn giản 277
font-variant- norma,; font-weight: bold; font-size: 12pt; font-family: Arial;
Do đĩ như b ạn cĩ th ể thấy các thuộc tín h phức hợp tiế t kiệm thời gian và nỗ lực nhưng táng thêm sự phức tạ p vi chúng khĩ xây dựng hơn.
Đặt các phần tử trên một trang Web
Một số thuộc tín h css khỏng liên quan gì đến text style và thay
vào đĩ xử lý layout và vị trí. Xác lâp vị trí của m ột p hần tử sẽ cho phép bạn xác đ ịn h kích cỡ chính xác (chiều cao và chiều rộng) của tấ t cả đối tơợng cũng như vị trí v ật lý chính xác (các toạ độ X và Y) trên