Giáo trình Thiết kế Website (Phần 1) - Trần Trung Kiên

pdf 100 trang phuongnguyen 19031
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Thiết kế Website (Phần 1) - Trần Trung Kiên", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_thiet_ke_website_phan_1_tran_trung_kien.pdf

Nội dung text: Giáo trình Thiết kế Website (Phần 1) - Trần Trung Kiên

  1. TRƯỜNG CAO ĐẲNG NGHỀ VIỆT-ĐỨC VĨNH PHÚC KHOA CÔNG NGHỆ THÔNG TIN GIÁO TRÌNH THIẾT KẾ WEBSITE (Lưu hành nội bộ) GV: TRẦN TRUNG KIÊN VĨNH PHÚC 08/2011
  2. LỜI MỞ ĐẦU Ngôn ngữ Siêu văn bản HTML (Hyper Text Markup Language) là ngôn ngữ biểu diễn văn bản cho phép ta đưa vào một văn bản nhiều thuộc tính cần thiết để có thể truyền thông quảng bá trên mạng toàn cục WWW (World Wide Web). HTML cho phép ta đưa hình ảnh đồ họa vào văn bản, thay đổi cách bày trí của văn bản, và tạo những tài liệu siêu văn bản có khả năng đối thoại tương tác với người dùng. HTML chủ yếu xoay quanh khái niệm “thẻ” (tag) làm nền tảng. Một ví dụ về tag là . Hầu hết các chức năng trên HTML có thẻ mở và thẻ đóng tạo thành một cặp giới hạn một đoạn văn bản. Ví dụ và là thẻ “bold” nghĩa là chữ béo. Toàn bộ đoạn văn bản giữa và sẽ được thể hiện dưới dạng chữ béo (hay chữ đậm) khi văn bản đó được xem bằng một trình duyệt tương ứng. Ví dụ xin chào sẽ được hiện lên là xin chào. Để tạo một siêu văn bản, ta có thể dùng bất cứ một chương trình soạn thảo nào (ví dụ: NC-Norton Commander, EDIT - của DOS, NotePad hay Write - của Windows 3.x, WordPad của Win95, WinWord 2.0 hay 6.0, FoxPro, Borland C++ IDE, Borland Pascal IDE, FrontPage, TextPad, v.v ), chỉ cần nắm được các thẻ của HTML, và khi ghi vào đĩa thì cần lưu dưới dạng file text. Tên file có đuôi mở rộng là HTM (hoặc HTML). Song có một hạn chế là dạng văn bản khi ta soạn với khi ta xem sau này (trên WWW) không giống nhau. Chính vì lẽ đó mà nhiều hãng tung ra phần mềm soạn siêu văn bản What You See Is What You Get (WYSIWYG- cái ta thấy cũng là cái ta có được). Hãng Microsoft cũng đã tung ra một tiện ích được sử dụng rộng rãi. Ngoài ra, còn có nhiều tiện ích chuyển đổi từ dạng RTF (có thể soạn bằng WinWord hay WordPad) sang HTML, hay các phiên bản sau này của trình duyệt Web như NetScape có sẵn luôn chức năng này. Các tiện ích đó đều giống nhau ở chỗ cho phép ta gõ trực tiếp các thẻ vào văn bản nhưng cũng có thể dùng tổ hợp của thanh công cụ (toolbar), hộp thoại (dialog), thực đơn (menu) hay danh sách các lựa chọn (pop-up list). Để gạch dưới đoạn văn bản trong ví dụ vừa rồi, ta có thể gõ vào xin chào, dùng chuột chọn, rồi bấm vào nút Underline trên thanh công cụ. Văn bản sẽ tự động được chuyển thành xin chào (ở đây thì và là cặp mở/đóng của tag có chức năng giới hạn đoạn văn bản cần được gạch dưới). 1
  3. Ngày nay, do sự phát triển như thác lũ của mạng toàn cục, HTML cũng ngày càng trở nên phức tạp và hoàn thiện hơn để đáp ứng được những yêu cầu mới nảy sinh trong quá trình phát triển đó (như âm thanh, hình ảnh động, v.v ). Người ta gọi đó là những phiên bản của HTML và đánh số để biểu thị. HTML 2, HTML 2+, HTML 3, là để chỉ những phiên bản sau này. Một trong những điểm mạnh của HTML là một văn bản bất kỳ nếu tuân thủ tiêu chuẩn HTML đều có thể hiện lên màn hình hay in ra, tóm lại là hiểu được, bởi bất kỳ loại phần mềm hay máy tính nào mà người đọc có, không phân biệt trình duyệt nào (NetScape trên Windows hay Lynx trên UNIX, thậm chí cho người khiếm thị bằng phần mềm đặc biệt). Người ta còn đang tranh cãi nhiều trên Internet về HTML “tốt”. Định hướng nguyên thủy của HTML là tạo ra một phương pháp vạn năng để lưu giữ và thể hiện thông tin. Sau này người ta coi HTML như một ngôn ngữ định hướng nội dung – “trong tài liệu có gì” quan trọng hơn nhiều so với “tài liệu có đẹp không”. Tác giả rất mong nhận được sự góp ý từ bạn đọc Xin chân thành cảm ơn. 2
  4. - Tên môn học: THIẾT KẾ WEB - Mục tiêu: Cung cấp cho học viên các kiến thức cơ bản liên quan đến ngôn ngữ HTML và thiết kế Web. - Những kiến thức cần phải được trang bị trước khi học: Có kiến thức về sử dụng máy tính. - Nội dung môn học: Chương I: NHỮNG KHÁI NIỆM CƠ SỞ. Chương II: TRÌNH BÀY TRANG. Chương III: DANH SÁCH VÀ BẢNG TRONG HTML. Chương IV: ĐƯA HÌNH ẢNH VÀO TÀI LIỆU HTML. Chương V: CÁC MỐI LIÊN KẾT SIÊU VĂN BẢN. Chương VI: BÀY TRÍ NỀN VÀ KHUNG. Chương VII: BIỂU MẪU STYLE VÀ CASCADING STYLE SHEET. Chương VIII: CÔNG CỤ SOẠN THẢO TRỰC QUAN WEB (Microsoft FrontPage 2003) - Đối tượng học: Những người cần biết các kiến thức cơ bản về HTML và Website để thiết kế Website tĩnh. - Biên soạn: Trần Trung Kiên - Bộ môn Thiết kế Web, Khoa Công nghệ thông tin, Trường CĐ nghề Việt-Đức Vĩnh Phúc. 3
  5. MỤC LỤC LỜI MỞ ĐẦU 1 CHƯƠNG I. NHỮNG KHÁI NIỆM CƠ SỞ 9 I.1. World Wide Web là gì? 9 I.2. HTML là gì? 12 I.3. Các đặc điểm của siêu văn bản 13 I.3.1. Độc lập với phần cứng và phần mềm 13 I.3.2. Độc lập với khái niệm trang và thứ tự các trang 14 I.3.3. Website và trang chủ - homepage 14 I.4. Soạn thảo văn bản - những vấn đề chung 15 I.4.1. Trang mã nguồn HTML và trang Web 15 I.4.2. Các thẻ HTML 16 I.4.3. Các quy tắc chung 17 I.4.4. Cấu trúc của một tài liệu HTML 18 I.4.5. Các phần tử HTML (HTML element) 19 Bài tập 19 CHƯƠNG II. TRÌNH BÀY TRANG 20 II.1. Tạo tiêu đề 20 II.2. Thẻ trình bày trang 21 II.2.1. Một số thẻ chính 21 II.2.2. Các thuộc tính của thẻ trình bày trang 25 Bài tập 27 CHƯƠNG III. DANH SÁCH VÀ BẢNG TRONG HTML 28 III.1. Các kiểu danh sách 28 III.1.1. Danh sách không đánh số thứ tự 28 III.1.2. Danh sách đánh số thứ tự 29 III.1.3. Danh sách các định nghĩa 31 III.1.4. Danh sách phối hợp, lồng nhau 31 4
  6. III.2. Bảng biểu 32 III.2.1. Khung cấu trúc 32 III.2.2. Một số lưu ý về bảng 33 III.2.3. Các ví dụ 37 Bài tập 40 CHƯƠNG IV. ĐƯA HÌNH ẢNH VÀO TÀI LIỆU HTML 41 IV.1. Hình ảnh tĩnh 41 IV.1.1. Tệp ảnh 41 IV.1.2. Thẻ 41 IV.2. Các thuộc tính của thẻ chèn hình ảnh 41 IV.2.1. Thuộc tính ALT 41 IV.2.2. Thuộc tính WIDTH và HEIGHT 42 IV.2.3. Thuộc tính ALIGN 43 IV.2.4. Thuộc tính VSPACE và HSPACE 43 Bài tập 44 CHƯƠNG V. CÁC MỐI LIÊN KẾT SIÊU VĂN BẢN 45 V.1. Thẻ neo và mối liên kết 45 V.1.1. Thuộc tính HREF 45 V.1.2. Liên kết ra ngoài – External Links 45 V.1.3. Địa chỉ tuyệt đối 46 V.1.4. Địa chỉ tương đối 46 V.1.5. Liên kết nội tại – Internal Link 46 V.2. Dùng hình ảnh làm đầu mối liên kết 47 V.2.1. Thay chữ bằng hình 47 V.2.2. Image Map - thẻ AREA 47 V.3. Đưa âm thanh vào tài liệu 48 V.3.1. Liên kết đến tệp âm thanh 48 V.3.2. Tạo âm thanh nền 48 5
  7. V.4. Đưa Video vào tài liệu 49 V.4.1. Chèn tệp Video 49 V.4.2. Nhúng tệp video 49 Bài tập 50 CHƯƠNG VI. BÀY TRÍ NỀN VÀ KHUNG 51 VI.1. Màu nền và văn bản 51 VI.1.1. Đặt màu nền 51 VI.1.2. Màu chữ của văn bản 51 VI.1.3. Màu của đầu mối liên kết - Thuộc tính LINK, VLINK và ALINK 51 VI.1.4. Thuộc tính và mã màu 52 VI.2. Nạp hình ảnh làm nền cho trang văn bản 53 VI.2.1. Thuộc tính BACKGROUND 53 VI.2.2. Water mark 53 VI.2.3. Hãy ký tên vào tài liệu của mình 54 VI.3. Khung – Frames 55 VI.3.1. Trang trí khung 55 VI.3.2. Thành phần FRAMESET 56 VI.4. Thiết lập Target, thẻ NOFRAME và IFRAME 59 VI.4.1. Thiết lập Target 59 VI.4.2. Thẻ NOFRAMES 60 VI.4.2. Nhúng frame - thẻ IFRAME 60 Bài tập 61 CHƯƠNG VII. BIỂU MẪU STYLE VÀ CASCADING STYLE SHEET 62 VII.1. FORM 62 VII.1.1. FORM là gì? 62 VII.1.2.Các thành phần trong FORM 63 VII.1.3. Thêm tính cấu trúc cho FORM 70 VII.2. Cascading style sheet 72 6
  8. VII.2.1. Inline Style 72 VII.2.2. Giới thiệu Style Sheet 74 VII.2.3. Javascript Style Sheet 75 VII.2.4. Thuật ngữ Style Sheet 77 VII.2.5. Các chú thích trong Style Sheet 92 VII.2.6. Lợi ích của các Style Sheet 92 VII.2.7. Kết hợp Style Sheet với HTML 93 VII.2.8. Thứ tự ưu tiên của các style (Cascading) 97 CHƯƠNG VIII. CÔNG CỤ SOẠN THẢO TRỰC QUAN WEB (MICROSOFT FRONTPAGE 2003) 100 VIII.1. Tạo một trang Web 100 VIII.1.1. Bắt đầu sử dụng FrontPage2003 100 VIII.1.2. Tạo một trang từ một template 101 VIII.1.3. Tạo và lưu một trang mới 102 VIII.1.4. Tạo một đề mục 103 VIII.1.5. Chọn font và màu 104 VIII.2. Tổ chức một trang với các liên kết, danh sách và bảng 107 VIII.2.1. Thêm một hyperlink vào một trang Web 107 VIII.2.2. Tạo một danh sách 110 VIII.2.3. Tổ chức một trang với các bảng 112 VIII.2.4. Hiển thị hình ảnh trên một trang Web 120 VIII.2.5. Tạo một Web site mới 133 VIII.2.5.Khai thác site mới 135 VIII.3. Phát triển nhanh một site với các template 142 VIII.3.1. Chọn một template Web site 143 VIII.3.2. Tạo một Web site mới 144 VIII.3.3. Tạo tùy biến Web site mới của ta 145 VIII.3.4. Thêm và loại bỏ các lời chú thích 146 7
  9. VIII.3.5. Khai thác template Personal Web Site 147 VIII.3.6. Thêm một tem thời gian vào một trang Web 148 VIII.3.7. Lưu các thay đổi sang một site 149 VIII.4. Tạo một site với sự trợ giúp của Wizard trong FrontPage 2003 150 VIII.4.1. Mở một wizard tạo site 150 VIII.4.2. Nhập một site hiện có vào FrontPage 152 VIII.4.3. Chọn một phương pháp import 152 VIII.4.4. Chọn vị trí để lưu site 155 VIII.4.5. Thu thập thông tin phản hồi từ các khách tham quan Web site của ta 156 VIII.4.6. Lưu thông tin phản hồi của khách tham quan sang một file 158 VIII.4.7. Nhận thông tin phản hồi của khách tham quan bằng email 160 Bài tập 161 BẢNG CÁC TỪ VIẾT TẮT 162 TÀI LIỆU THAM KHẢO 163 8
  10. CHƯƠNG I. NHỮNG KHÁI NIỆM CƠ SỞ I.1. World Wide Web là gì? World Wide Web (WWW) là một mạng các tài nguyên thông tin. WWW dựa trên 3 cơ chế để các tài nguyên này trở nên sẵn dùng cho người xem càng rộng rãi nhất càng tốt: - Cơ chế đặt tên cùng dạng đối với việc định dạng các tài nguyên trên WWW (như các URL) - Các giao thức, để truy nhập tới các tài nguyên qua WWW (như HTTP) - Siêu văn bản, để dễ dàng chuyển đổi giữa các tài nguyên (như HTML). Các ràng buộc giữa ba cơ chế được nêu rõ dưới đây Giới thiệu về URL: Mọi tài nguyên sẵn dùng trên WWW – tài liệu HTML, ảnh, video clip, chương trình, - có một địa chỉ mà có thể được mã hóa bởi một URL. Các URL thường gồm 3 phần: - Việc đặt tên của các cơ chế dùng để truy nhập tài nguyên - Tên của máy tính lưu trữ (tổ chức) tài nguyên - Tên của bản thân tài nguyên, như một đường dẫn Ví dụ coi URL chỉ rõ trang W3C Technical Reports: URL này có thể được đọc như sau: Có một tài liệu sẵn dùng theo giao thức HTTP, đang lưu trong máy www.w3.org, có thể truy nhập theo đường dẫn “/TR”. Các cơ chế khác ta có thể thấy trong các tài liệu HTML bao gồm “mailto” đối với thư điện tử và “ftp” đối với FTP. Đây là một ví dụ khác về URL. Ví dụ này ám chỉ tới hộp thư (mailbox) của người dùng: .đây là văn bản Mọi góp ý, xin gửi thư tới Các định danh đoạn (fragment identifiers): 9
  11. Một số URL ám chỉ tới việc định vị một tài nguyên. Kiểu này của URL kết thúc với “#” theo sau bởi một dấu hiệu kết nối (gọi là các định danh đoạn). Ví dụ, đây là một URL đánh dấu một móc tên là section_2: Các URL tương đối: Một URL tương đối không theo cơ chế đặt tên. Đường dẫn của nó thường tham chiếu tới một tài nguyên trên cùng một máy như tài liệu hiện tại. Các URL tương đối có thể gồm các thành phần đường dẫn tương đối (như “ ” nghĩa là một mức trên trong cấu trúc được định nghĩa bởi đường dẫn), và có thể bao gồm các dấu hiệu đoạn. Các URL được giải quyết để cho toàn các URL sử dụng một URL gốc. Như một ví dụ của giải pháp URL tương đối, giả sử chúng ta có URL gốc “ ”. URL tương đối trong đánh dấu dưới đây cho một liên kết siêu văn bản: sẽ mở rộng thành URL đầy đủ “ ” trong khi URL tương đối trong việc đánh dấu cho một ảnh dưới đây sẽ mở rộng thành URL đầy đủ “ ” Trong HTML, các URL được dùng để: - Liên kết tới tài liệu hoặc tài nguyên khác, (xem A và LINK) - Liên kết tới kiểu dạng bên ngoài hoặc kịch bản (script) (xem LINK và SCRIPT) - Gồm một ảnh, đối tượng, hoặc applet trong một trang, (xem IMG, OBJECT, APPLET và INPUT) - Tạo một bản dồ ảnh (xem MAP và AREA) - Tạo một form (xem FORM) - Tạo một khung tài liệu (xem FRAME và IFRAME) - Trích dẫn một chỉ dẫn bên ngoài (xem Q, BLOCKQUOTE, INS và DEL) - Tham khảo các quy ước siêu dữ liệu mô tả một tài liệu (xem HEAD) 10
  12. Ngày nay người ta dùng máy tính như một công cụ rất hữu ích để truy nhập Internet, chủ yếu là tìm kiếm thông tin. Các thông tin này có thể là các văn bản, hình ảnh âm thanh hay thông tin đa phương tiện Với giao diện thân thiện bởi việc sử dụng các ký hiệu, biểu tượng rất gợi tả gần giống với các hình ảnh đời thường và chỉ cần những thao tác đơn giản ta đã có ngay thông tin cần tìm kiếm ở trước mặt. Nhu cầu sử dụng máy tính để truy cập Internet tìm kiếm thông tin ngày càng nhiều và người sử dụng máy tính có trình độ tin học và tiếng Anh để hiểu các thông báo của máy khác nhau. Làm thế nào để mọi người có thể dễ dàng sử dụng máy tính để truy cập Internet như một công cụ phục vụ đắc lực cho việc tra cứu tìm kiếm thông tin trên mạng thông tin rộng lớn nhất toàn cục. Việc này trở nên dễ dàng hơn bởi ý tưởng siêu văn bản (Hypertext). Siêu văn bản là các văn bản “thông minh” có thể giúp người đọc tìm và cung cấp cho họ các tài liệu liên quan. Người đọc không phải mất công tìm kiếm trong kho thông tin Internet vô tận. Khái niệm siêu văn bản do nhà tin học Ted Nelson đề xuất vào năm 1965 như một ước mơ (“Computer Dreams”) về khả năng của máy tính trong tương lai. Ông hy vọng về các máy tính có trí tuệ như con người, biết cách truy tìm các thông tin cần thiết. Dự án thực hiện siêu văn bản là của một kỹ sư trẻ người Anh tên là Tim Berners – Lee. Sau khi tốt nghiệp Đại học Oxfort (Anh) năm 1976, năm 1980 Tim đã viết một chương trình mô phỏng mối liên kết hai chiều bất kỳ trên một đồ thị như kiểu liên kết siêu văn bản. Năm 1989, trong khi làm việc tại Viện nghiên cứu kỹ thuật hạt nhân châu Âu (CERN) tại Berne (Thụy sỹ), thấy các đồng nghiệp rất vất vả trong việc tra tài liệu, Tim đã đưa ra một đề án lưu trữ siêu văn bản trên máy tính sao cho dễ dàng tìm kiếm tài liệu hơn. Trong thế giới siêu văn bản WWW, người sử dụng có thể dễ dàng đi từ tài liệu này sang tài liệu khác thông qua các mối liên kết. Như vậy ta có thể du lịch trong xa lộ thông tin phong phú trong khi vẫn ngồi tại nhà. Kỹ thuật siêu văn bản 11
  13. giúp cho ta không phải sang tận Luvrơ ở Paris mà vẫn có thể chiêm ngưỡng được các kiệt tác hội họa. Chính nó đã góp phần tạo ra bước phát triển bùng nổ của Internet trong những năm gần đây. I.2. HTML là gì? Để phổ biến thông tin trên toàn cục, cần một ngôn ngữ phổ biến và dễ hiểu, một kiểu việc phổ biến tiếng mẹ đẻ mà toàn bộ các máy tính có thể hiểu được. Ngôn ngữ phổ biến dùng bởi World Wide Web là HTML (Hyper Text Markup Language). HTML cho tác giả các ý nghĩa để: Phổ biến các tài liệu trực tuyến với các heading, văn bản, bảng, danh sách, ảnh, v.v Truy tìm thông tin trực tuyến theo các liên kết siêu văn bản bằng việc kích vào một nút Thiết kế các định dạng cho việc kiểm soát các giao dịch (transaction) với các thiết bị từ xa, đối với người dùng trong việc tìm kiếm thông tin, tạo các sản phẩm, đặt hàng,.v.v Bao gồm spread-sheets, video clips, sound clips, và các ứng dụng trực tiếp khác trong các tài liệu của họ. Các trang Web đầy sinh động mà bạn thấy trên World Wide Web là các trang siêu văn bản được viết bằng ngôn ngữ đánh dấu siêu văn bản hay HTML - HyperText Markup Language. HTML cho phép bạn tạo ra các trang phối hợp hài hòa văn bản thông thường với hình ảnh, âm thanh, video, các mối liên kết đến các trang siêu văn bản khác Tên gọi ngôn ngữ dánh dấu siêu văn bản phản ánh đúng thực chất của công cụ này: Đánh dấu (Markup): HTML là ngôn ngữ của các thẻ đánh dấu - Tag. Các thẻ này xác định cách thức trình bày đoạn văn bản tương ứng trên màn hình. Ngôn ngữ (Language): HTML là một ngôn ngữ tương tự như các ngôn ngữ lập trình, tuy nhiên đơn giản hơn. Nó có cú pháp chặt chẽ để viết các lệnh thực 12
  14. hiện việc trình diễn văn bản. Các từ khoá có ý nghĩa xác định được cộng đồng Internet thừa nhận và sử dụng. Ví dụ b = bold, ul = unordered list, Văn bản (Text): HTML đầu tiên và trước hết là để trình bày văn bản và dựa trên nền tảng là một văn bản. Các thành phần khác như hình ảnh, âm thanh, hoạt hình đều phải "cắm neo" vào một đoạn văn bản nào đó. Siêu văn bản (Hyper): HTML cho phép liên kết nhiều trang văn bản rải rác khắp nơi trên Internet. Nó có tác dụng che dấu sự phức tạp của Internet đối với người sử dụng. Người dùng Internet có thể đọc văn bản mà không cần biết đến văn bản đó nằm ở đâu, hệ thống được xây dựng phức tạp như thế nào. HTML thực sự đã vượt ra ngoài khuôn khổ khái niệm văn bản cổ điển. I.3. Các đặc điểm của siêu văn bản I.3.1. Độc lập với phần cứng và phần mềm HTML độc lập với phần cứng và phần mềm. Một tài liệu HTML được viết bằng một phần mềm soạn thảo cụ thể bất kỳ, trên một máy cụ thể nào đó đều có thể đọc được trên bất kì một hệ thống tương thích nào. Điều này có nghĩa là các tệp siêu văn bản có thể được trình duyệt hiển thị trên MAC hay PC tùy ý mà không phải sửa chữa thay đổi gì. Sở dĩ có được tính chất này là vì các thẻ chỉ diễn đạt yêu cầu cần phải làm gì chứ không cụ thể cần làm như thế nào. Cũng vì lẽ đó mà bạn không thể chắc chắn trang tài liệu siêu văn bản của bạn sẽ hiện lên màn hình chính xác là như thế nào vì còn tuỳ theo trình duyệt thể hiện các thành phần HTML ra sao. Trong thực tiễn, HTML chỉ thực sự độc lập đối với phần cứng, chưa hoàn toàn độc lập đối với phần mềm. Chỉ phần cốt lõi là chuẩn hoá, còn các phần mở rộng do từng nhà phát triển xây dựng thì không hoàn toàn tương thích nhau. 13
  15. I.3.2. Độc lập với khái niệm trang và thứ tự các trang Một tính chất nữa là HTML độc lập với khái niệm trang. Văn bản được trình bày tùy theo kích thước của cửa sổ hiển thị: cửa sổ rộng bề ngang thì sẽ thu ngắn hơn, cửa sổ hẹp bề ngang thì sẽ được kéo dài ra để hiển thị cho hết nội dung. Độ dài của văn bản HTML thực sự không bị hạn chế. I.3.3. Website và trang chủ - homepage Một website là một bó các trang web liên kết với nhau và liên kết với các trang ở bên ngoài chằng chịt như mạng nhện. Hàng triệu Website liên kết với nhau tạo thành World Wide Web – WWW Có thể tưởng tượng như một ngọn núi nhỏ các trang web mỗi ngày một cao thêm, được phát triển bằng cách thêm vào nhiều trang web lý thú khác nữa Có thể minh hoạ hình ảnh của một website như trong hình vẽ bên Trang chủ hay trang chính - 'home page' có thể hiểu là cửa chính - 'front door' để thâm nhập vào kho thông tin liên kết chằng chịt ấy. Vậy home page là trang web mà bộ duyệt sẽ mở ra đầu tiên mỗi khi người dùng bắt đầu thăm website. 14
  16. I.4. Soạn thảo văn bản - những vấn đề chung I.4.1. Trang mã nguồn HTML và trang Web Trang mã nguồn HTML là một tệp văn bản bình thường gồm các kí tự ASCII, có thể được tạo ra bằng bất cứ trình soạn thảo thông thường nào. Theo quy ước, tất cả các tệp mã nguồn của trang siêu văn bản phải có đuôi là .html hoặc .htm. Khi trình duyệt (browser) đọc trang mã nguồn HTML, nó sẽ dịch các thẻ lệnh và hiển thị lên màn hình máy tính thì ta thường gọi là trang Web. Vậy trang web không tồn tại trên đĩa cứng của máy tính cục bộ. Nó là cái thể hiện của trang mã nguồn qua việc xử lý của trình duyệt. Như sau này ta sẽ thấy, các trình duyệt khác nhau có thể hiển thị cùng một trang mã nguồn không hoàn toàn giống nhau. Nói soạn thảo siêu văn bản tức là tạo ra trang mã nguồn HTML đúng quy định để độ duyệt hiểu được và hiển thị đúng. Sử dụng HTML để soạn thảo các trang siêu văn bản, về nguyên tắc cũng không khác mấy so với dùng các bộ soạn thảo văn bản thông thường. Chẳng hạn, trong soạn thảo văn bản thông thường, để làm nổi bật các tiêu đề ta phải đánh dấu nó và chọn cỡ to, căn chính giữa Chương trình soạn thảo văn bản sẽ chèn các dấu hiệu thích hợp (ta không nhìn thấy được) vào đầu và cuối đoạn tiêu đề được chọn để thể hiện nó theo yêu cầu. Với HTML cũng tương tự như vậy. Để làm nổi bật các tiêu đề ta cần đánh dấu điểm bắt đầu và điểm kết thúc của đoạn tiêu đề bằng cặp thẻ Heading, ví dụ . Bộ duyệt sẽ hiển thị đoạn này với cỡ chữ to hơn và căn chính giữa. Ví dụ, dòng sau đây trong tài liệu HTML Tiêu đề mức 1 sẽ được trình duyệt hiển thị thành Tiêu đề mức 1 15
  17. Hiện nay có nhiều công cụ soạn thảo siêu văn bản mạnh như Microsoft FrontPage, Dream Weaver với giao diện trực quan và tự động sinh mã HTML, cho phép soạn thảo siêu văn bản như soạn thảo thông thường. Tuy nhiên, việc tìm hiểu cú pháp của HTML, nắm vững ý nghĩa của các thẻ khác nhau vẫn rất cần thiết để có thể tạo ra các trang Web động, tương tác với người sử dụng, tức là các ứng dụng Web sau này. I.4.2. Các thẻ HTML Các thẻ dùng để báo cho trình duyệt cách thức trình bày văn bản trên màn hình hoặc dùng để chèn một mối liên kết đến các trang khác, một đoạn chương trình khác Mỗi thẻ gồm một từ khoá - KEYWORD - bao bọc bới hai dấu "bé hơn" ( ). Hầu hết các lệnh thể hiện bằng một cặp hai thẻ: thẻ mở ( ) và thẻ đóng ( ). Dấu gạch chéo ("/") kí hiệu thẻ đóng. Lệnh sẽ tác động vào đoạn văn bản nằm giữa hai thẻ. Đoạn văn bản chịu tác động của lệnh Một số thẻ không có cặp, chúng được gọi là các thẻ rỗng hay thẻ đơn. Chỉ có thẻ mở mà thôi. Nhiều thẻ có kèm các thuộc tính (attribute), cung cấp thêm các tham số chi tiết hơn cho việc thực hiện lệnh. Các thuộc tính được chia làm hai loại: thuộc tính bắt buộc và thuộc tính không bắt buộc hay tuỳ chọn. Một thuộc tính là bắt buộc nếu như phải có nó thì thẻ lệnh mới thực hiện được. Ví dụ, để chèn một hình ảnh vào trang tài liệu ta dùng thẻ (Image). Tuy nhiên, cần chỉ rõ cái ảnh nào sẽ được dán vào đây. Điều này được thiết lập bằng thuộc tính SRC="địa chỉ của tệp ảnh". Thuộc tính SRC là bắt buộc phải có đối với thẻ . 16
  18. I.4.3. Các quy tắc chung Một số điều cần lưu ý khi soạn thảo siêu văn bản bằng HTML: - Nhiều dấu cách liền nhau cũng chỉ có tác dụng như một dấu cách. Bạn phải sử dụng thẻ để thể hiện nhiều dấu giãn cách liền nhau. - Gõ Enter để xuống dòng được xem như một dấu cách, để xuống hàng thì chúng ta phải sử dụng thẻ tương ứng - Có thể viết tên thẻ không phân biệt chữ in thường và in hoa. - Vì các kí tự dấu lớn hơn ">", dấu nhỏ hơn " > “ " Ký tự trắng   & & Có thể chèn các dòng bình luận, chú thích vào trang mã nguồn bằng cách đặt giữa cặp dấu chú thích . Trình duyệt sẽ bỏ qua không xét đến phần mã nằm giữa cặp dấu đó: 17
  19. I.4.4. Cấu trúc của một tài liệu HTML Mọi tài liệu HTML đều có khung cấu trúc như sau: Hãy xem trình duyệt hiển thị tài liệu trên như thế nào. Dĩ nhiên là một trang trắng chưa có nội dung gì cả ! Giữa cặp thẻ tiêu đề là dòng chữ sẽ hiện lên trên thanh tiêu đề của cửa sổ khi trình duyệt đọc tài liệu. Nếu bỏ trống thì trình duyệt sẽ cho hiện tên tệp thay vào đó. Toàn bộ nội dung của tài liệu nằm giữa hai thẻ xác định thân của trang . Các dòng văn bản, hình ảnh, âm thanh, video, các mối liên kết tạo nên trang Web đều phải nằm ở đây. Ví dụ như tài liệu HTML đơn giản dưới đây: Chỗ này là tiêu đề Toàn bộ nội dung của tài liệu nằm ở đây: Các đoạn văn bản xen lẫn hình ảnh, âm thanh, video, các liên kết đến vị trí khác, tài liệu khác Hãy xem trình duyệt trình bày tài liệu trên như thế nào. Nhớ lại rằng nhiều dấu cách chỉ được coi như một, dấu xuống dòng chỉ được thể hiện như một dấu cách nên tài liệu trên hoàn toàn tương đương với tài liệu sau đây: Chỗ này là tiêu đề 18
  20. Toàn bộ nội dung của tài liệu nằm ở đây: Các đoạn văn bản xen lẫn hình ảnh, âm thanh, video, các liên kết đến vị trí khác, tài liệu khác Tuy nhiên, để dễ theo dõi và phát hiện lỗi, nên trình bày như trong văn bản trước: dóng thẳng cột từng cặp thẻ, xuống dòng khi cần thiết, đặt các thẻ vào nơi hợp lý nhất. I.4.5. Các phần tử HTML (HTML element) Một tài liệu HTML tạo nên từ nhiều thành phần HTML. Một thành phần HTML được đánh dấu bằng một cặp thẻ mở và thẻ đóng. Các thành phần HTML có thể cấu trúc phân cấp hình cây, thành phần "mẹ" chứa nhiều thành phần "con" khác lồng bên trong nó. Có thành phần rỗng, chỉ có thẻ mở. Để soạn thảo tài liệu HTML đúng cú pháp, cần nắm vững cấu trúc của từng thành phần HTML. Không giống như khi lập trình, nếu bạn mắc lỗi cú pháp HTLM sẽ không có một thông báo lỗi nào báo cho biết mà trình duyệt sẽ hiểu lầm và trình bày trang Web không như bạn muốn mà thôi. Bài tập 1. Nêu các đặc điểm của siêu văn bản (HTML) 2. Thế nào là trang Web? 19
  21. CHƯƠNG II. TRÌNH BÀY TRANG II.1. Tạo tiêu đề Mở đầu các trang văn bản thường là các tiêu đề cần làm nổi bật từng phần của văn bản như Chương, Mục, cũng cần có đề mục rõ ràng khác với phần thân để người đọc theo dõi cho thuận tiện. Có 6 mức tiêu đề trong HTML. Cách thể hiện các tiêu đề phụ thuộc vào trình duyệt nhưng thông thường thì: Tiêu đề mức 1 Thẻ định nghĩa có dạng: Ví dụ: Tiêu đề 1 cho ta tiêu đề tương ứng Tiêu đề 1 Tiêu đề mức 2 Thẻ định nghĩa có dạng: Ví dụ: Tiêu đề 2 cho ta tiêu đề tương ứng Tiêu đề 2 Tiêu đề mức 3 Thẻ định nghĩa có dạng: Ví dụ: Tiêu đề 3 cho ta tiêu đề tương ứng Tiêu đề 3 Tiêu đề mức 4 Thẻ định nghĩa có dạng: Ví dụ: Tiêu đề 4 cho ta tiêu đề tương ứng Tiêu đề 4 20
  22. Tiêu đề mức 5 Thẻ định nghĩa có dạng: Ví dụ: Tiêu đề 5 cho ta tiêu đề tương ứng Tiêu đề 5 Tiêu đề mức 6 Thẻ định nghĩa có dạng: Ví dụ: Tiêu đề 6 cho ta tiêu đề tương ứng Tiêu đề 6 II.2. Thẻ trình bày trang II.2.1. Một số thẻ chính Các thành phần trình bày trang để định dạng cả một đoạn văn bản và phải nằm trong phần thân của tài liệu. Có nhiều thẻ được sử dụng nhưng trong tài liệu này chỉ trình bày một số thẻ trình bày chính: định dạng phần địa chỉ ( ), đoạn văn bản ( ), xuống dòng ( ), căn chính giữa ( ), đường kẻ ngang ( ), đoạn văn bản đã định dạng sẵn ( ), trích dẫn nguồn tài liệu ( ) a. Định dạng phần địa chỉ Cho biết thông tin như địa chỉ, danh thiếp và tác giả, thường đặt ở đầu hay cuối tài liệu. Thẻ định dạng: Ví dụ: Newsletter editor J.R. Brown JimquickPost Neưs, Jumquick, CT 01234 Tel (123) 456 7890 Kết quả thu được: 21
  23. b. Đoạn văn bản Thẻ này dùng để xác định một đoạn văn bản. Thẻ (Paragraph) có thể dùng kèm thuộc tính để ấn định cách trình bày đoạn văn bản. Chỉ là giới hạn một đoạn paragraph, cách bày trí do các thành phần khác tạo thành. Thường chỉ có khoảng trống khoảng một dòng hay nửa dòng trước paragraph, trừ khi nằm trong phần địa chỉ . Một số trình duyệt thể hiện dòng đầu của paragraph thụt vào. Thẻ định nghĩa dạng: Một đoạn văn bản rỗng là một dòng trắng. Vì đầu dòng CR (Carriage Return) không có hiệu lực xuống dòng mới mà chỉ có tác dụng như một dấu cách, do đó có thể tạo một dòng dãn cách (một dòng trắng) giữa các đoạn văn bản cần phải sử dụng thẻ . Trường hợp này chỉ cần dùng thẻ đơn lẻ, không cần thẻ đóng. Chú ý: một số thẻ khác như các thẻ tiêu đề , , , dòng kẻ ngang , danh sách, bảng biểu, đã kèm luôn việc xuống dòng thành một đoạn văn bản mới. Không cần dùng thêm thẻ trước và sau các thẻ này. c. Xuống dòng Thẻ này dùng để xuống dòng mới. Bắt buộc xuống dòng tại vị trí gặp từ khóa này. Dòng mới được căn lề như dòng được bẻ tự động khi dòng đó quá dài Thẻ định nghĩa dạng: Nếu không muốn chèn một dòng trắng mà chỉ đơn thuần muốn xuống dòng mới thì cần sử dụng thẻ (Break). Thẻ Break không cần có thẻ đóng kèm theo. 22
  24. d. Đường kẻ ngang Thẻ này tạo ra đường kẻ ngang (Horizontal Rule) ngăn cách giữa các phần trong tài liệu. Thẻ định nghĩa dạng: Ví dụ: February 8, 1995, CERN Kết quả thu được: e. Căn chính giữa Thẻ này dùng để căn chỉnh đoạn văn bản ở giữa chiều rộng trang văn bản. Thẻ định nghĩa dạng: Thẻ này cũng có tác dụng xuống dòng khi kết thúc đoạn văn bản. f. Đoạn văn bản đã định dạng sẵn Giới hạn đoạn văn bản đã được định dạng sẵn (pre-formatted) cần được thể hiện bằng phông chữ có độ rộng ký tự không đổi (do phải thẳng cột). Nếu không có thuộc tính WIDTH đi cùng thì bề rộng mặc định là 80 ký tự/dòng. Bề rộng 40,80 và 132 được thể hiện tối ưu, còn các bề rộng khác có thể được làm tròn. Thẻ định nghĩa dạng: Trong các thành phần trước: Dấu xuống dòng sẽ có ý nghĩa chuyển sang dòng mới (chứ không còn là dấu cách) không dùng. Nếu nó sẽ được coi như xuống dòng Được phép dùng các thành phần liên kết nhấn mạnh Không được chứa các thành phần định dạng paragraph (tiêu đề, địa chỉ, ) 23
  25. Ký tự TAB (có mã US-ASCII và ISO-8859-1 là 9) phải hiểu là số dấu cách nhỏ nhất sao cho đến ký tự tiếp theo ở vị trí là bội của 8. Tuy nhiên không nên dùng. Ví dụ: Nguyễn Văn A Thợ rèn Trần Thị B Thợ Sơn Kết quả thu được: g. Trích dẫn nguồn tài liệu khác Dùng để trích dẫn một đoạn văn bản, thường được thể hiện bằng chữ nghiêng có căn lề thụt vào trong (như một paragraph) và thường có một dòng trống trên và dưới. Thẻ định nghĩa dạng: Ví dụ: I think the poem ends Soft you now, the fair Ophelia. Nymph, in thy orisons, be all my sins remembed. but I am not sure. Kết quả thu được: I think the poem ends Soft you now, the fair Ophelia. Nymph, in thy orisons, be all my sins remembed. but I am not sure. 24
  26. II.2.2. Các thuộc tính của thẻ trình bày trang a. Thuộc tính ALIGN của thẻ Paragraph Thẻ dùng để xác định một đoạn văn bản (như trình bày ở phần trước). Dưới đây ta tìm hiểu kỹ thêm một số các thuộc tính kèm theo (ALIGN) của nó. Có thể căn lề trái (left - mặc định), căn giữa (center) hoặc căn lề phải (right). Căn lề trái: Cả đoạn văn bản được căn lề trái của trang. Ví dụ: Có lần tôi thấy một người đi Chẳng biết về đâu nghĩ ngợi gì Chân bước hững hờ theo bóng lẻ Một mình làm cả cuộc phân ly Kết quả trả về một đoạn văn bản được căn lề bên trái như sau: Có lần tôi thấy một người đi Chẳng biết về đâu nghĩ ngợi gì Chân bước hững hờ theo bóng lẻ Một mình làm cả cuộc phân ly Căn giữa: Cả đoạn văn bản được căn chính giữa trang. Ví dụ: Có lần tôi thấy một người đi Chẳng biết về đâu nghĩ ngợi gì Chân bước hững hờ theo bóng lẻ Một mình làm cả cuộc phân ly Kết quả trả về một đoạn văn bản được căn giữa như sau: Có lần tôi thấy một người đi Chẳng biết về đâu nghĩ ngợi gì Chân bước hững hờ theo bóng lẻ Một mình làm cả cu25ộc phân ly
  27. Căn lề phải: Cả đoạn văn bản được căn lề bên phải của trang. Ví dụ: Có lần tôi thấy một người đi Chẳng biết về đâu nghĩ ngợi gì Chân bước hững hờ theo bóng lẻ Một mình làm cả cuộc phân ly Kết quả trả về một đoạn văn bản được căn lề bên phải như sau: Có lần tôi thấy một người đi Chẳng biết về đâu nghĩ ngợi gì Chân bước hững hờ theo bóng lẻ Một mình làm cả cuộc phân ly b. Thuộc tính Clear của thẻ xuống dòng Thẻ xuống dòng cũng có 3 thuộc tính kèm theo như sau: Các thẻ được sử dụng khi chèn hình ảnh, để các dòng chữ xuất hiện bên dưới, bên trái hay bên phải của hình. c. Các kiểu đường kẻ ngang khác nhau Như ở phần trên đã giới thiệu, thẻ tạo một đường kẻ ngang chạy suốt chiều rộng cửa sổ màn hình. Các đường kẻ này có thể được thay đổi độ đậm (mảnh), ngắn, dài, căn lề trái, căn lề phải, bằng cách sử dụng các thuộc tính của chúng. Trong đó: 26
  28. Thẻ, thuộc tính Miêu tả Chèn dòng kẻ ngang suốt chiều rộng cửa sổ màn hình Thay đổi độ dài của đường kẻ, chiếm n% độ rộng cửa WIDTH = n% sổ màn hình. Nếu không có % đằng sau thì độ dài tính theo đơn vị pixcel Thay đổi độ đậm hay mảnh của đường kẻ. n là số SIZE = n pixcel Căn lề trái|phải. Đường kẻ ngang mặc định được căn ALIGN=LEFT|RIGHT chính giữa NOSHADE Không có bóng mờ, đường kẻ thành màu đen Bài tập 1. Tiêu đề trong trang Web có mấy mức chính? 2. Nêu các thuộc tính của thẻ Paragraph ( ). Hãy tạo một trang web đơn giản trong đó có sử dụng tiêu đề mức 2 và thẻ Paragraph ( ). 3. Tạo một trang web đơn giản tự giới thiệu về mình, bạn bao nhiêu tuổi, bạn làm gì, sở thích của bạn. 27
  29. CHƯƠNG III. DANH SÁCH VÀ BẢNG TRONG HTML III.1. Các kiểu danh sách Việc liệt kê danh sách sẽ làm cho văn bản trở nên sáng sủa và dễ theo dõi. Trong HTML có một số kiểu danh sách như danh sách đánh số thứ tự, danh sách không đánh số thứ tự, danh sách định nghĩa, danh sách kiểu bảng chọn và danh sách kiểu thư mục. Một số trình duyệt không hỗ trợ danh sách kiểu bảng chọn và danh sách kiểu thư mục. III.1.1. Danh sách không đánh số thứ tự Danh sách không đánh số thứ tự liệt kê các mục bằng một chấm tròn ở đầu mỗi mục. Cú pháp: Mục thứ 1 Mục thứ 2 Cặp thẻ đánh dấu bắt đầu và kết thúc danh sách. Nó có tác dụng lùi lề trái danh sách vào sâu hơn. Các thẻ có tác dụng thể hiện bắt đầu một dòng mới với một chấm tròn. Ví dụ: Mục thứ 1 Mục thứ 2 Mục thứ 3 Kết quả trả về một danh sách sau: Mục thứ 1 Mục thứ 2 Mục thứ 3 28
  30. Theo mặc định, mỗi mục thuộc mức thứ nhất của danh sách không đánh số thứ tự bắt đầu bằng một chấm tròn, còn mỗi mục thuộc mức thứ hai sẽ bắt đầu bằng một vòng tròng. Ta vẫn có thể thay đổi bằng cách sử dụng thuộc tính TYPE Cú pháp: hoặc Ví dụ: Mục thứ 1 Mục thứ 2 Mục thứ 3 Kết quả trả về một danh sách sau: o Mục thứ 1 o Mục thứ 2 o Mục thứ 3 III.1.2. Danh sách đánh số thứ tự Danh sách đánh số thứ tự giống như danh sách không đánh số thứ tự nhưng các chấm tròn ở đầu mỗi mục sẽ được thay bởi việc đánh số thứ tự các mục đó. Cú pháp: Mục thứ 1 Mục thứ 2 Cặp thẻ đánh dấu bắt đầu và kết thúc danh sách. Nó có tác dụng lùi lề trái danh sách vào sâu hơn. 29
  31. Các thẻ có tác dụng thể hiện bắt đầu một dòng mới với một số thứ tự tương ứng. Ví dụ: Mục thứ 1 Mục thứ 2 Mục thứ 3 Kết quả trả về một danh sách sau: 1. Mục thứ 1 2. Mục thứ 2 3. Mục thứ 3 Có thể dùng thuộc tính TYPE để lựa chọn các cách đánh thứ tự khác nhau khi bắt đầu mỗi mục trong một danh sách có đánh số thứ tự: Chữ in hoa A,B,C, (TYPE=A) Chữ in thường a,b,c, (TYPE=a) Chữ số La mã lớn I,II,III, (TYPE=I) Chữ số La mã nhỏ i, ii, iii, (TYPE=i) Số thứ tự 1,2,3,4, (TYPE=1), đây là lựa chọn mặc định Cú Pháp: Hoặc Ví dụ: Mục thứ 1 Mục thứ 2 Mục thứ 3 30
  32. Kết quả trả về một danh sách sau: I. Mục thứ 1 II. Mục thứ 2 III. Mục thứ 3 III.1.3. Danh sách các định nghĩa Danh sách các định nghĩa trông giống như một bảng từ vựng hay bảng giải thích các thuật ngữ lùi vào trong. Cú pháp: hoặc Ví dụ: Mục thứ 1 Nội dung mục thứ 1 Mục thứ 2 Nội dung mục thứ 2 Mục thứ 3 Nội dung mục thứ 3 Kết quả trả về một danh sách sau: Mục thứ 1 Nội dung mục thứ 1 Mục thứ 2 Nội dung mục thứ 2 Mục thứ 3 Nội dung mục thứ 3 III.1.4. Danh sách phối hợp, lồng nhau Các kiểu danh sách nêu trên đều có thể lồng nhau và lồng nhau nhiều mức. Ví dụ: 31
  33. Mức 1 Mức 1.1 Mức 1.2 Mức 2 Mức 2.1 Mức 2.2 Kết quả trả về: Mức 1 Mức 1.1 Mức 1.2 Mức 2 Mức 2.1 Mức 2.2 III.2. Bảng biểu III.2.1. Khung cấu trúc Giới hạn bảng: Định nghĩa một hàng: Định nghĩa một ô: Ô chứa tiêu đề: . (H=Header) Đầu đề của bảng: Cú pháp tạo khung cấu trúc của một bảng: Tên cột 1 Tên cột 2 Ô 1 dòng 1 32
  34. Ô 2 dòng 1 Ví dụ: Họ và tên Lớp Quê quán Bùi Thanh Trúc K50CA Hà Nội Nguyễn Mai Hương K50CB Thanh Hóa Kết quả thu được bảng như sau: Họ và tên Lớp Quê quán Bùi Thanh Trúc K50CA Hà Nội Nguyễn Mai Hương K50CB Thanh Hóa III.2.2. Một số lưu ý về bảng Ô rỗng thì không có đường bao. Muốn ô rỗng có đường bao phải dùng dấu cách không bẻ dòng:   hoặc Có thể lợi dụng ROWSPAN và COLSPAN để tạo bảng có ô chồng chéo lên nhau nhưng không nên lạm dụng. 33
  35. Đôi lúc hình ảnh nằm ngoài ô ta muốn đưa hình ảnh đó vào. Nguyên nhân là do HTML được viết như sau: Dấu xuống dòng ở đây coi như dấu cách do đó có sự chồng chéo hình ảnh với ký tự trắng đó. Cách khắc phục như sau: Mặc định bảng không có đường bao nếu không đi với thuộc tính BORDER. Bảng có các thuộc tính sau: BORDER Để định nghĩa một bảng có đường bao. Tuy nhiên không làm ảnh hưởng tới độ rộng của bảng. BORDER= Cho phép khai báo độ dày của đường bao cho phép chỉnh đường bao ngoài đậm hơn đường bao trong để dễ nhìn hơn, mặt khác nếu giá trị bằng không lại cho phép dành chỗ cho số liệu bên trong, nhất là đối với những bảng compact. CELLSPACING= Khoảng cách giữa các ô. CELLPADDING= Khoảng cách giữa nội dung của ô và đường bao. Cho ta bảng compact nhất có thể có (dành tất cả cho nội dung). WIDTH= Nếu đi cùng với thuộc tính này có ý nghĩa mô tả chiều rộng mong muốn của bảng (tính tuyệt đối bằng pixels hay theo phần trăm so với bề rộng của tài liệu). Thường thì trình duyệt tự tính toán sao cho bảng được bố trí hợp lý. Dùng 34
  36. thuộc tính này bắt buộc trình duyệt cố gắng làm sao xếp được các ô vào bảng có bề rộng mong muốn đó. Nếu đi cùng với hay lại có ý nghĩa tương tự đối với một ô. ROWSPAN Cho biết ô hiện thời chiếm mấy hàng của bảng, mặc định là 1. ALIGN Nếu nằm trong nó có ý nghĩa đối với đầu đề của hàng nằm trên hay nằm dưới, có giá trị hoặc TOP hoặc BOTTOM (mặc định là TOP). Nếu nằm trong , hay có giá trị LEFT, CENTER hay RIGHT và điều khiển việc đặt nội dung của ô căn bên trái, vào giữa ô hay căn bên phải. VALIGN Nếu nằm trong , hay có thể có các giá trị TOP, MIDDLE, BOTTOM hay BASELINE để điều khiển việc đặt nội dung của ô lên trên, vào giữa (theo chiều dọc) hay xuống dưới và cũng có thể là tất cả cùng các ô trong hàng cùng căn theo một đường nằm ngang. Có nghĩa là dữ liệu bảng (Table Data), chỉ được xuất hiện trong một hàng của bảng. Mỗi hàng không nhất thiết phải có cùng số ô vì dòng ngắn hơn sẽ được chắp thêm ô rỗng vào bên phải. Mỗi ô chỉ được chứa các thành phần bình thường khác nằm trong phần thân của tài liệu. Các thuộc tính mặc định là: ALIGN=left và VALIGN=middle. Các mặc định này có thể thay đổi bởi các thuộc tính trong và lại thay đổi tiếp bởi thuộc tính ALIGN hoặc VALIGN khai báo riêng cho từng ô. Bình thường mặc định thì nội dung sẽ được bẻ dòng cho vừa vào khổ rộng của từng ô. Dùng thuộc tính NOWRAP trong để cấm việc đó. cũng có thể chứa các thuộc tính NOWRAP, COLSPAN và ROWSPAN. NOWRAP Như nói ở trên, cần thận trọng khi dùng thuộc tính này để phòng có ô quá rộng. 35
  37. COLSPAN Có thể xuất hiện trong bất kỳ ô nào ( hay ) và chỉ rằng ô đó bành trướng ra mấy cột của bảng, mặc định là 1. Có nghĩa là tiêu đề của bảng (Table Header), các ô này tương tự như ô bình thường khác được định nghĩa bằng , có điều font chữ đậm và có thuộc tính mặc định là ALIGN=Center. cũng có thể chứa thuộc tính VALIGN, NOWRAP, COLSPAN và ROWSPAN. Đặt đầu đề cho một bảng nên phải nằm trong một cặp song không được nằm trong hàng hay cột. Thuộc tính mặc định là ALIGN=Top (đầu đề đặt ở đầu bảng), song có thể đặt là ALIGN=Bottom (cuối bảng). Đầu đề có thể chứa bất kỳ thành phần nào một ô có thể chứa và luôn được căn lề vào giữa bảng (theo chiều ngang) và có thể cũng có bẻ dòng cho phù hợp. Dưới đây là bảng tóm tắt liệt kê các thuộc tính của thẻ xây dựng bảng: Thẻ/Thuộc tính Ý nghĩa TABLE - Bắt đầu bảng BORDER - Đặt khung nổi 3D xung quanh bảng. Đặt bảng. CELLPADDING - Đặt kích thước của một ô. BGCOLOR - Đặt màu nền của bảng. B3/4t Đầu một dòng của bảng – Table row. B3/4t Đầu một ô của bảng (bắt đầu cột trong một bảng). Thẻ giống như nhưng cho chữ đậm và căn chính giữa - (heading). Đặt tiêu đề (đầu đề) cho một bảng Thuộc tính dùng kèm bên trong các thẻ , ALIGN=MIDDLE|RIGHT hay để căn lề chữ trong một ô của bảng theo chiều ngang VALIGN=TOP|BOTTOM Thuộc tính dùng kèm các thẻ , hay 36
  38. để giãn một ô theo chiều ngang chiếm nhiều cột hơn các ô trên dòng khác. Thuộc tính dùng kèm các thẻ hay để đặt WIDTH=n% độ rộng của ô. Thuộc tính dùng kèm các thẻ hay để giãn COLSPAN=n một ô theo chiều ngang chiếm nhiều cột hơn các ô trên dòng khác. Thuộc tính dùng kèm các thẻ hay để giãn ROWSPAN=n một ô theo chiều đứng chiếm nhiều dòng hơn các ô ở cột khác Kết thúc bảng III.2.3. Các ví dụ Ví dụ một bảng cơ bản gồm 2 dòng và 3 cột: A B C D E F Kết quả trả về: Ví dụ một bảng có Item 2 (tiêu thức 2) chiếm 2 hàng (dòng): Item 1 Item 2 Item 3 Item 4 Item 5 37
  39. Kết quả trả về: Ví dụ một bảng có Item 1 (tiêu thức 2) chiếm 2 hàng (dòng): Item 1 Item 2 Item 3 Item 4 Item 5 Item 6 Item 7 Kết quả trả về: Ví dụ bảng có Item 2 (tiêu thức 2) chiếm 2 cột: Item 1 Item 2 Item 3 Item 4 Item 5 Kết quả trả về: 38
  40. Ví dụ một bảng có tiêu đề: Head 1 Head 2 Head 3 D E F Kết quả trả về: Ví dụ một bảng có tiêu đề chiếm 2 cột: Head 1 Head 2 A B C D E F G H Kết quả trả về: 39
  41. Bài tập 1. Sửa phần giới thiệu của bạn (bài tập 3, chương 2) sao cho các mục đó đưa về dạng danh sách và liệt kê 5 thứ bạn thích nhất dưới dạng số. 2. Áp dụng những gì đã học ở trên, hãy tạo một danh sách như sau: Top level 1 Top level 2 1. Second Level o Fact 1 o Fact 2 Top level 3 3. Áp dụng những gì đã học ở trên, hãy tạo bảng giống như sau: Tổng kết năm học 2003 - 2004 Thống kê HS giỏi HS khá HS trung bình Lớp 1A 35 4 0 Lớp 1B 20 10 12 Lớp 1C 5 25 20 40
  42. CHƯƠNG IV. ĐƯA HÌNH ẢNH VÀO TÀI LIỆU HTML IV.1. Hình ảnh tĩnh IV.1.1. Tệp ảnh Mỗi ảnh được lưu giữ trong máy tính thành một tệp riêng biệt. Tệp ảnh có nhiều định dạng khác nhau, thể hiện qua phần mở rộng (đuôi) của tên tệp: *.bmp, *.gif, *.jpeg, *.jpg, Tuy nhiên các trình duyệt chỉ có thể “hiểu” được các tệp ảnh dưới dạng GIF hay JPEG. Hình ảnh dạng GIF được sử dụng rộng rãi nhất trên Internet, sau đó là đến các ảnh dạng JPEG. IV.1.2. Thẻ Cú pháp chèn ảnh vào trang Web: IMG (Image), thuộc tính SRC (Source) là đường dẫn đến nơi lấy tệp ảnh. Giá trị của thuộc tính SRC được gán bằng URL là một địa chỉ trên máy tính địa phương hay trên Internet. Nó chỉ ra nơi lưu trữ tệp ảnh cần chèn vào. Địa chỉ URL báo cho trình duyệt biết cần lấy tệp ảnh ở đâu. Nếu tệp ảnh nằm ngay trên máy tính địa phương thì cần ghi rõ đường dẫn Nếu tệp ảnh lấy từ một nơi khác trên Internet thì phải ghi đầy đủ địa chỉ URL Ví dụ: IV.2. Các thuộc tính của thẻ chèn hình ảnh Trong thẻ IMG còn có một số thuộc tính khác như: ALT, WIDTH, HEIGHT, ALIGN, VSPACE, HSPACE, BORDER IV.2.1. Thuộc tính ALT Thuộc tính ALT – ALTernative cho phép ta chèn một đoạn chữ thay thế vào chỗ có hình và hiện lên xâu chú thích khi đưa trỏ chuột vào ảnh. Thuộc tính này dùng trong trường hợp trình duyệt không hiển thị được hình ảnh thì sẽ hiện dòng văn bản thay thế. Làm như vậy để những người sử dụng trình duyệt không có khả 41
  43. năng đọc ảnh hay đã tắt chức năng đọc ảnh để tăng tốc độ có thể biết được đó là hình ảnh gì và họ có thể chọn xem sau nếu có thời gian. Nên luôn sử dụng thuộc tính này khi đưa hình ảnh vào trang Web vì nhiều người muốn có tốc độ cao, lướt nhanh qua các thông tin là chính đã tắt chức năng đọc ảnh của trình duyệt vẫn có thể biết được ảnh đó mang nội dung gì. Ví dụ: Hiện ảnh Ảnh (không hiện lên) khi có và không sử dụng thuộc tính ALT Nếu không sử dụng thuộc tính ALT thì tại chỗ có hình sẽ hiện từ IMAGE hoặc biểu tượng ảnh bị khuyết. IV.2.2. Thuộc tính WIDTH và HEIGHT Thuộc tính WIDTH và HEIGHT dùng để xác định chiều rộng và chiều cao của ảnh. Giá trị này có thể tính theo phần trăm (%) hoặc pixel. Chú ý: Nếu đặt chiều rộng và chiều cao không chuẩn sẽ làm hình trong ảnh bị co giãn méo đi. Để khắc phục nhược điểm này, ta nên xử lý ảnh để kích thước phù hợp với yêu cầu. Ví dụ: 42
  44. IV.2.3. Thuộc tính ALIGN Thuộc tính ALIGN cho phép chỉnh lại vị trí của ảnh theo cả hai chiều ngang và chiều dọc. Theo chiều dọc: ALIGN=MIDDLE, ALIGN=TOP, ALIGN=BOTTOM ALIGN=TOP ALIGN=MIDDLE ALIGN=BOTTOM Theo chiều ngang: ALIGN=LEFT, ALIGN=RIGHT ALIGN=LEFT ALIGN=RIGHT Nếu như không có thuộc tính này thì mặc định ảnh được đặt tại đúng nơi đặt thẻ IMG dóng trên cùng dòng chữ, theo cạnh dưới của khung nhìn. IV.2.4. Thuộc tính VSPACE và HSPACE Khi sử dụng thuộc tính ALIGN, ảnh được chèn vào dòng văn bản với các chữ dính sát liền. Thuộc tính VSPACE và HSPACE dùng để tạo khoảng trống nhỏ viền xung quanh ảnh (tính theo đơn vị pixel). VSPACE=n Thêm khoảng trống theo chiều dọc HSPACE=n Thêm khoảng trống theo chiều ngang Ví dụ: 43
  45. Bài tập 1. Hãy cho biết tại sao các ảnh dưới đây có thể được nhúng vào trong một tài liệu HTML? Viết đoạn code được dùng để nhúng các ảnh đó. 2. Tạo một trang web và chèn các ảnh sao cho ảnh nằm ở phía bên trái, và các đoạn văn bản nằm bên phải. 3. Tạo một trang web và chèn các ảnh sao cho ảnhh được căn giữa và các đoạn văn bản nằm ở trên hoặc ở bên dưới. 44
  46. CHƯƠNG V. CÁC MỐI LIÊN KẾT SIÊU VĂN BẢN V.1. Thẻ neo và mối liên kết Các liên kết siêu văn bản trong một tài liệu HTML là để tham chiếu đến một tài liệu khác hay một phần tài liệu khác nằm trong tài liệu đó. Liên kết siêu văn bản gồm có ba phần: giao thức, cái neo và địa chỉ hay URL Để tạo một mối liên kết thì việc đầu tiên cần làm là thiết lập cái neo. Cặp thẻ tạo neo là (Anchor). Thẻ này có nhiều thuộc tính bắt buộc phải xác định rõ, ta sẽ tìm hiểu kỹ hơn ở phần sau. V.1.1. Thuộc tính HREF HREF (Hypertext REFerence – tham chiếu siêu văn bản) được dùng để liên kết đến: Một tài liệu khác (external link) hay Một phần khác nằm trong chính tài liệu đang đọc (internal link) Giao thức để tham chiếu HREF là HTTP. Nếu là liên kết nội tại – internal link thì không cần phải có phần giao thức. V.1.2. Liên kết ra ngoài – External Links Để liên kết đến một tài liệu khác, ta cần phải biết địa chỉ URL của tài liệu đích. Cũng cần phải chỉ chỗ, thường là một nhóm vài từ để làm đầu mối liên kết. Nhóm từ này sẽ đổi màu để phân biệt, con chuột trỏ vào sẽ có hình bàn tay và khi nhấn chuột thì trang siêu văn bản đích sẽ được hiển thị. Nên chọn các từ làm đầu mối sao cho gợi tả và sao cho tự nhiên, không ảnh hưởng đến nội dung và ý nghĩa của câu văn. Tránh sử dụng lặp đi lặp lại câu "nhấn vào đây" khi tạo đầu mối liên kết. Cú pháp để tạo ra một mối liên kết tới tài liệu khác - liên kết ra ngoài - là như sau: 45
  47. V.1.3. Địa chỉ tuyệt đối Khi liên kết tới một tệp nằm ở ngoài máy tính cục bộ ta phải nêu rõ giao thức và đầy đủ địa chỉ URL của tệp đích. Ví dụ: V.1.4. Địa chỉ tương đối Nếu liên kết đến một tệp ở ngay trên máy chủ của bạn thì không cần dùng địa chỉ URL tuyệt đối mà dùng địa chỉ tương đối. Thay cho URL là tên tệp cùng với đường đẫn đến thư mục nơi chứa tệp đích. Ví dụ: V.1.5. Liên kết nội tại – Internal Link Cũng có thể tạo mối liên kết trong bản thân tài liệu siêu văn bản, từ phần này đến phần khác. Điều này rất có ích khi tài liệu có kích thước lớn. Ta có thể tạo mục lục toàn bộ nội dung trên phần đầu trang gồm tên các chương và liên kết từng tên chương đến phần nội dung tương ứng. Để làm điều này, cần đánh dấu điểm đích - book mark- của liên kết bằng thẻ neo còn trong thẻ neo tại điểm đầu của mối liên kết thì thay URL bằng tên nói trên. Lưu ý có thêm dấu "#". Ví dụ, để tạo liên kết nội tại từ đây nhảy về đầu trang ta cần tạo một book mark ở đầu trang với tên là Top chẳng hạn. Sau đó, tạo thẻ neo liên kết ở dòng dưới như sau 46
  48. V.2. Dùng hình ảnh làm đầu mối liên kết V.2.1. Thay chữ bằng hình Như ở phần trên, cấu trúc thành phần HTML mối liên kết siêu văn bản là: V.2.2. Image Map - thẻ AREA Thử hình dung ta có một bản đồ địa lý hành chính. Khi nhấn chuột vào vùng diện tích của một tỉnh thì một trang thông tin tương ứng với tỉnh đó sẽ hiện ra. Đó chính là Image Map. Với Image Map, “đầu mối liên kết” là một vùng trên một hình ảnh có hình dạng tùy ý nào đó. Các công cụ soạn thảo trực quan cho phép dễ dàng tạo Image Map. Một ví dụ về mã nguồn HTML của thành phần Image Map như sau: Đoạn mã trên sẽ tạo 3 đầu mối liên kết là ba vùng hình chữ nhật (rect), hình tròn (circle) và hình tam giác (polygon) trên nền ảnh image.gif. Khi nhấn chuột vào phạm vi 3 vùng này thì các tệp tương ứng chapter1.html, chapter2.html và chapter3.html sẽ được nạp về để hiển thị. 47
  49. V.3. Đưa âm thanh vào tài liệu V.3.1. Liên kết đến tệp âm thanh Để chèn một đoạn âm thành vào tài liệu HTML ta cũng theo đúng quy tắc tạo mối liên kết thông thường. Trong thẻ neo, tại địa điểm URL bây giờ là địa chỉ của tệp âm thanh. Dưới đây là một ví dụ về việc chèn âm thành vào tài liệu. Khi nhấn chuột vào mối liên kết này, tệp âm thanh sẽ được phát lại. V.3.2. Tạo âm thanh nền Không những có thể chèn tệp âm thanh vào tài liệu HTML mà còn có thể nhúng âm thanh vào tài liệu, nghĩa là âm thanh nền phát ra khi trang tài liệu bắt đầu hiển thị. Để nhúng âm thanh vào tài liệu ta dùng thẻ Trong đó: Thuộc tính Mô tả SRC=”URL” Đường dẫn đến tệp âm thanh Chiều cao của khung nhìn cho giao diện điều HEIGHT=n khiển của phần mềm phát âm thanh Chiều rộng của khung nhìn cho giao diện điều WIDTH=n khiển của phần mềm phát âm thanh Âm thanh tự động được kích hoạt khi bắt đầu AUTOSTART=true|false nạp tài liệu hiện thị (nên đặt là true) LOOP=true|false Thiết lập việc lặp lại nhiều lần hay chỉ một lần Đặt thẻ ở đâu thì khung nhìn của giao diện điều khiển việc phát tệp âm thanh xuất hiện ở đó. Ví dụ: 48
  50. V.4. Đưa Video vào tài liệu V.4.1. Chèn tệp Video Việc chèn tệp video vào tài liệu HTML cũng giống như chèn tệp âm thanh. Ví dụ đoạn mã sau đây sẽ chèn một đoạn phim video vào tài liệu. Nó sẽ tạo ra một mối liên kết tới tệp video đã chọn và khi ta nhấn chuột vào mối liên kết thì sẽ được xem lại tệp video đó. Chú ý: Các tệp video đều có kích thước khá lớn nên hãy cân nhắc về tốc độ đường truyền của người dùng. V.4.2. Nhúng tệp video Thẻ cũng dùng để nhúng tệp video vào tài liệu: Ví dụ: Cũng tương tự như các thuộc tính của việc chèn tệp âm thanh: Thuộc tính Mô tả SRC=”URL” Tên và đường dẫn đến tệp video HEIGHT=n Chiều cao của khung hình chiếu video WIDTH=n Chiều rộng của khung hình chiếu video Đặt cho video tự chạy khi bắt đầu nạp tài liệu AUTOPLAY=true|false (không bắt buộc) Cho hiện giao diện điều khiển của phần mềm CONTROLLER=true|flase video ở liền ngay phía dưới khung hình. Thuộc tính này không bắt buộc. Mặc định là true. LOOP=true|false Thiết lập việc lặp lại nhiều lần hay chỉ một lần Vị trí đặt thẻ là nơi xuất hiện khung hình video. 49
  51. Bài tập 1. Tạo một trang khác giới thiệu chi tiết hơn về mình và có liên kết tới trang giới thiệu chính của mình. 2. Chèn 2 ảnh vào trong trang giới thiệu chính sao cho khi click vào ảnh đó thì trang giới thiệu chi tiết được mở ra. Yêu cầu: ảnh thứ nhất sử dụng đường dẫn tuyệt đối, ảnh thứ hai sử dụng đường dẫn tương đối tới trang cần liên kết. 3. Tạo một trang thứ ba trong đó có chèn một đoạn Video clips ở giữa trang. 50
  52. CHƯƠNG VI. BÀY TRÍ NỀN VÀ KHUNG VI.1. Màu nền và văn bản VI.1.1. Đặt màu nền Để văn bản trở nên đẹp và hấp dẫn, đôi khi đặt nền cho trang siêu văn bản. Thuộc tính BGCOLOR (Background Color). Dùng thuộc tính này kèm thẻ để đặt màu nền cho văn bản. Cú pháp như sau: Nội dung của tài liệu trong đó "#rrggbb" là red-green-blue, bộ ba số hai chữ số hệ đếm 16, xác định mã màu. VI.1.2. Màu chữ của văn bản Thuộc tính TEXT. Thuộc tính này để thiết lập màu cho các con chữ trong văn bản, trừ các đầu mối liên kết phải có màu khác đi. Nội dung của tài liệu ́ VI.1.3. Màu của đầu mối liên kết - Thuộc tính LINK, VLINK và ALINK Ba thuộc tính trên để đặt màu của các đầu mối siêu liên kết. LINK - đặt màu hiển thị trước khi nhấn chuột vào để đến thăm đích liên kết. VLINK - Đặt màu sau khi đích liên kết đã được đến thăm (visited . ALINK - đặt màu khi bạn kích hoạt, đang nhấn chuột vào (active  Các màu mặc định là: LINK=blue, VLINK=purple and ALINK=red Nội dung của tài liệu Kết hợp cùng với nhau 51
  53. Color Control Example Đây là một tài liệu làm ví dụ về thiết đặt màu. Các chữ màu xám sáng trên nền đen, và đầu tiên có màu vàng, chuyển màu xanh lá cây sáng khi được kích hoạt và có màu xanh nhạt khi điểm đích đã được thăm Lưu ý: Tổ hợp màu như trên chỉ được thiết đặt một lần cho toàn văn bản. Hãy thận trọng khi lựu chọn để đảm bảo dễ đọc, dễ nhìn. VI.1.4. Thuộc tính và mã màu Thuộc tính Mô tả BGCOLOR Đặt màu nền TEXT Đặt màu các con chữ, trừ các mối nối. Đặt màu ban đầu của đầu mối liên kết khi chưa kích LINK hoạt VLINK Đặt màu đầu mối liên kết khi đã thăm đích ALINK Đặt màu đầu mối liên kết khi kích hoạt Một vài mã màu hay dùng: Màu Mã black #000000 white #FFFFFF pale grey #DBDDE5 dark green #306020 green #405060 pale blue/green #00FFFF pale blue #A5D6F7 navy blue #000020 52
  54. burgundy #800040 yellow #FFFF00 purple #601050 red #FF0000 orange red #FF2400 orange #FF7F00 neon blue #4D4DFF pale purple/orchid #9370DB maroon #8E236B scarlet #8C1717 pale purple #6B238E firebirch #8E2323 Tuy nhiên hiện nay nhiều trình duyệt chấp nhận dùng tên màu tiếng Anh thay cho các chữ số rất khó nhớ ở trên. VI.2. Nạp hình ảnh làm nền cho trang văn bản VI.2.1. Thuộc tính BACKGROUND Có thể dùng thuộc tính này để tạo một ảnh nền cho trang tài liệu siêu văn bản. Thay cho xác định màu ta cần chỉ ra tên tệp hình ảnh kèm đường dẫn. Nội dung tài liệu ́ Ví dụ: Khi dùng ảnh làm nền cho trang Web cần phải nạp một tệp hình ảnh. Như ta đã biết tệp ảnh thường có kích thước lớn, làm chậm việc hiển thị trang tài liệu. Do đó cần chọn tệp ảnh có kích thước nhỏ làm ảnh nền. Toàn bộ trang văn bản sẽ được "lát nền" bằng hình ảnh này như ta lát nền nhà bằng gạch hoa. VI.2.2. Water mark Nhiều trang web có nền trang trí gắn chặt cố định, còn phần văn bản sẽ cuộn trôi bên trên mỗi khi ta di chuyển thanh trượt. Hiệu ứng này được tạo ra nhờ thiết lập thêm thuộc tính cho ảnh nền là 53
  55. bgproperties="fixed" Ví dụ: VI.2.3. Hãy ký tên vào tài liệu của mình Một thông lệ nên tuân theo là "kí tên" vào tài liệu. Nó giúp cho người đọc biết được những thông tin tối thiểu về tác giả soạn ra tài liệu, thời gian cập nhật Việc đưa thêm địa chỉ của tài liệu Web vào cuối trang sẽ giúp cho người đọc lưu lại được xuất xứ của trang tài liệu. Đó là chưa nói đến ý nghĩa quan trọng của phần chữ kí này trong các tài liệu chính thức hoặc có tính thương mại. Phần chữ kí thường gồm các thông tin sau: Ngày khởi tạo lần đầu. Ngày sửa chữa cập nhật gần nhất. Tên (và e-mail) của tác giả Tuyên bố về bản quyền (nếu cần ) URL Đoạn mã HTML của phần chữ kí đại loại có thể như sau: Ngày viết: 20 September 2011 Ngày cập nhật: 20 October 2001 Tác giả: email: webmaster@vdvp.edu.vn"> Copyright © Khoa công nghệ thông tin - CĐ Nghề Việt-Đức, 2011. URL: ́ 54
  56. Thẻ là mối liên kết đến dịch vụ thư điện tử, khi trỏ chuột vào đây sẽ kích hoạt dịch vụ e- mail để gửi đến địa chỉ nêu sau lệnh mailto. Hãy tập thói quen thêm chữ kí vào tài liệu của mình! VI.3. Khung – Frames HTML có các thẻ trình bày cho phép chia vùng hiển thị của cửa sổ trình duyệt thành nhiều khung, mỗi khung là một cửa sổ độc lập, hiển thị một tài liệu HTML khác nhau. Khung cho phép người thiết kế hiển thị đồng bộ nhiều tài liệu HTML khác nhau để tiện theo dõi, so sánh. Ví dụ, trong khung bên trái hiển thị các nút bấm, còn khung bên phải hiển thị tài liệu tương ứng. VI.3.1. Trang trí khung Trang HTML thực hiện bày trí các khung (gọi là frameset document) có cấu trúc khác trang thông thường, không có khung. Trang thường có 2 phần, HEAD và BODY. Trang bày trí khung có HEAD và FRAMESET thay cho BODY. Thành phần FRAMESET tổ chức các khung trong cửa sổ trình duyệt. Nó cũng có thể chứa thẻ NOFRAMES để xử lí trường hợp trình duyệt không hỗ trợ frame. Các thành phần thông thường khác vốn nằm trong BODY không được xuất hiện trước thẻ mở FRAMESET. Nếu không, thành phần FRAMESET sẽ bị bỏ qua. Ví dụ: Dưới đây là một ví dụ đơn giản. A simple frameset document 55
  57. This frameset document contains: Đoạn mã trên sẽ tạo 3 khung, được bài trí như dưới đây. Hình VI.1. Kết quả chạy đoạn code ví dụ Khi trình duyệt khách không hỗ trợ khung thì các khung sẽ không được hiển thị mà thành phần NOFRAMES sẽ được xử lí. VI.3.2. Thành phần FRAMESET Thẻ FRAMESET dùng để phân chia vùng hiển thị trong cửa sổ trình duyệt thành các khung hình chữ nhật. Mỗi khung hình chữ nhật gọi là một frame, được định nghĩa bằng thẻ FRAME. a. Các thuộc tính và ví dụ minh họa rows = Danh sách các độ cao của các khung 56
  58. Danh sách gồm nhiều phần tử, cách nhau dấu phẩy. Mỗi phần tử xác định độ cao (số dòng !) của một khung. Chia chiều đứng thành bao nhiêu khung thì danh sách có bấy nhiêu phần tử. Chiều cao thể hiện bằng - số pixel, - tỷ lệ phần trăm chiều cao màn hình - hay tỷ lệ phần chiều cao còn lại. Giá trị mặc định là 100%, tức chỉ có một khung theo chiều ngang. cols = Danh sách các độ rộng của các khung. ý nghĩa tương tự như trên. Giá trị mặc định là 100%, tức chỉ có một khung theo chiều dọc. Thuộc tính row thiết lập việc chia khung theo chiều ngang trong một frameset. Nếu không định nghĩa, thì các cột trong khung sẽ chiếm toàn bộ chiều cao vùng hiển thị. Thuộc tính cols thiết lập việc chia khung theo chiều đứng trong một frameset. Nếu không định nghĩa, thì các dòng trong khung sẽ chiếm toàn bộ chiều rộng vùng hiển thị. Phối hợp hai thuộc tính sẽ tạo ra ô lưới các khung. Các ví dụ. 1- Chia màn hình thành hai nửa: nửa trên và nửa dưới: the rest of the definition 2- Chia màn hình thành 3 cột. Cột giữa rộng 250 pixels. Cột đầu chiếm 25% của phần còn lại và cột thứ 3 chiếm 75% của phần độ rộng còn lại. the rest of the definition 3- Tạo lưới gồm 2 x 3 = 6 khung. the rest of the definition 57
  59. 4- Chia chiều đứng màn hình thành 4 khung. Khung thứ nhất chiếm 30% của chiều cao vùng hiển thị. Khung thứ hai có chiều cao cố định 400 pixel. Dấu sao có nghĩa là hai khung thứ 3, thứ 4 chia nhau phần còn lại. Khung thứ 4 có chiều cao là "2*", gấp đôi khung thứ 3 (vì "*" tương đương với 1*). Nếu chiều cao vùng hiển thị là 1000 pixel thì độ cao của các khung 1,2,3,4 lần lượt là: 300, 400, 100, 200 pixel !. the rest of the definition b. Chia khung lồng nhau và thành phần FRAME Việc chia khung có thể lồng nhau nhiều mức. Ví dụ: chia chiều rộng thành 3 khung đứng, sau đó khung ở giữa lại được chia thành 2 phần trên và dưới. contents of first frame contents of second frame, first row contents of second frame, second row contents of third frame Thẻ FRAME định nghĩa một khung hình cụ thể (trong nhiều khung hình của frameset). Các thuộc tính: name = Tên của khung. Có thể dùng tên này để làm đích của mối siêu liên kết. src = URI Trỏ đến trang tài liệu sẽ hiển thị trong khung. 58
  60. noresize Không cho phép co giãn lại kích thước scrolling = auto|yes|no Thiết lập thanh cuộn. auto: Xuất hiện thanh cuộn khi cần thiết. Đây là giá trị mặc định. yes: Luôn có thanh cuộn. no: Luôn không có thanh cuộn. frameborder = 1|0 Thiết lập đường biên. 1: Có đường biên giữa khung đang xét với các khung kề nó. Đây là giá trị mặc định. 0: Không có đường biên giữa khung đang xét với các khung kề nó. marginwidth = số pixel Thiết lập độ rộng lề chiều rộng = khoảng trống giữa phần hiển thị nội dung và biên trái, biên phải. Giá trị mặc định tuỳ theo bộ duyệt. marginheight = số pixel Thiết lập độ rộng lề chiều cao = khoảng trống giữa phần hiển thị nội dung và biên trên, biên dưới. Giá trị mặc định tuỳ theo trình duyệt. Lưu ý: Nội dung trong một frame không được thuộc về chính trang tài liệu định nghĩa frameset. VI.4. Thiết lập Target, thẻ NOFRAME và IFRAME VI.4.1. Thiết lập Target Thuộc tính target là để xác định tệp tài liệu HTML sẽ hiển thị trong khung. target = tên khung đích. Thiết lập tên của khung mà tài liệu sẽ mở ra trong khung đó. Thuộc tính này dùng với các thành phần tạo mối liên kết: (A, LINK), image map (AREA), và FORM. 59
  61. VI.4.2. Thẻ NOFRAMES Thành phần NOFRAMES thiết lập nội dung cần hiển thị khi trình khách không hỗ trợ frame hoặc đã tắt chức năng hiển thị frame. Thành phần NOFRAMES đặt ở phần cuối của thành phần FRAMESET. Ví dụ: A frameset document with NOFRAMES Here is the VI.4.2. Nhúng frame - thẻ IFRAME Thành phần IFRAME cho phép người thiết kế chèn một frame vào giữa một khối văn bản text và hiển thị một tài liệu HTML khác bên trong. Thuộc tính SRC thiết lập tài liệu nguồn để hiển thị trong frame. Các thuộc tính: name = tên. để tham chiếu trong tài liệu width = Độ rộng của inline frame. height = Độ cao của inline frame. Ví dụ: [Your user agent does not support frames or is currently configured not to display frames. However, you may visit ] 60
  62. Inline frames mặc định là không co giãn được, không cần phải nêu rõ noresize. Bài tập 1. Sửa trang giới thiệu tóm tắt về mình sao cho nền của trang đó là một ảnh bất kỳ, trang giới thiệu chi tiết có nền màu xanh nước biển nhạt. 2. Dùng thẻ IFRAME để nhúng trang thứ 3 vào trong trang giới thiệu tóm tắt (trang chủ). 61
  63. CHƯƠNG VII. BIỂU MẪU STYLE VÀ CASCADING STYLE SHEET VII.1. FORM VII.1.1. FORM là gì? a. Chức năng của FORM Để mở rộng khả năng phục vụ người sử dụng, dịch vụ Web cần phải sử dụng các ứng dụng khác bên ngoài. Ví dụ NSD yêu cầu tìm kiếm trong cơ sở dữ liệu, lấy các thông tin tức thời, luôn được cập nhật Để làm được điều này dịch vụ Web phải chuyển yêu cầu của NSD đến một ứng dụng khác. Ứng dụng này sẽ thực hiện yêu cầu và trả lại kết quả cho Web server để chuyển tiếp đến NSD. Form là một cách để chuyển dữ liệu từ NSD đến cho Web Server xử lý. Forms được sử dụng rộng rãi trên WWW. Các forms rất tiện lợi cho người dùng điền các yêu cầu tìm kiếm, các biểu mẫu điều tra, nhập dữ liệu đầu vào cho các ứng dụng Có nhiều thành phần khác nhau (gọi là các điều khiển control) trong một form. Tuỳ theo yêu cầu giao tiếp với NSD cần chọn thành phần thích hợp nhất. Khi tạo form bạn cũng cần phải chỉ rõ cho máy chủ dịch vụ biết cách xử lý form. Có nhiều loại chương trình ứng dụng khác nhau trong máy chủ dịch vụ để làm việc này: các chương trình CGI, ISAPI, các script ASP, JSP, Java Bean, Servlet Tạo form là khâu đầu tiên trong việc xây dựng giao tiếp giữa NSD với các ứng dụng Internet / Intranet. b. Thành phần của FORM Cặp thẻ để tạo Form là . Mọi thành phần của form như sẽ trình bày dưới đây đều phải nằm trong phạm vi giới hạn bởi cặp thẻ này. Công thức khung để tạo form là: Toàn bộ các thành phần khác bên trong form nằm ở đây 62
  64. Thuộc tính METHOD chỉ ra phương thức trao đổi dữ liệu giữa trình duyệt Web và máy chủ Web. Có 2 phương thức là POST, GET. Đối với form phương thức thường là POST. Thuộc tính ACTION để thiết lập địa chỉ URL của chương trình sẽ nhận và xử lý dữ liệu gửi từ form. VII.1.2.Các thành phần trong FORM Như đã nêu trên, có nhiều loại thành phần khác nhau trong một Form. Dưới đây sẽ trình bày lần lượt những điểm cơ bản nhất. a. Hộp văn bản – TextBox Hộp văn bản là nơi để gõ vào một dữ liệu kiểu xâu kí tự. Hộp văn bản sẽ được hiển thị như sau: Bottom of Form 1 Thẻ để tạo ra nó là: Trong đó TEXT là từ khoá ứng với kiểu là Text box, Tên là tên của hộp văn bản này còn n là một số nguyên chỉ ra chiều dài của trường. Tên phải duy nhất trong trang, không được trùng nhau. b. Hộp mật khẩu – Password Hộp mật khẩu là nơi để gõ vào một mật khẩu kiểu xâu kí tự. Hộp mật khẩu được hiển thị như sau: Thẻ để tạo ra nó là: Trong đó PASSWORD là từ khoá để tạo hộp mật khẩu, n là số nguyên chỉ ra chiều dài của hộp. 63
  65. Hộp mật khẩu khác hộp văn bản ở chỗ khi gõ các kí tự từ bàn phím thì nó không hiển thị kí tự tương ứng trong khung mà thay bằng các dấu sao *. Lưu ý: Việc hiển thị kí tự dấu * để thay thế chỉ có tác dụng che giấu với người nhìn tại máy cục bộ. Password vẫn được gửi vào mạng dưới dạng rõ, không mã hoá, có thể bị xem trộm. Nhiệm vụ mã là của giao thức mạng. c. Vùng văn bản – Text Windows Vùng văn bản, để hiển thị nhiều dòng văn bản. Vùng văn bản có dạng như sau: Công thức viết là: Van ban hien thi trong đó, Tên vùng là tên của vùng văn bản, m và n là các số nguyên, chỉ ra chiều cao và chiều rộng của vùng văn bản. Nếu bạn để trống phần "đoạn văn bản sẽ hiển thị " thì sẽ không có văn bản nào xuất hiện trong cửa sổ. Ví dụ: Bạn cần phải thường xuyên cập nhật các mẫu virus mới nhất d. Các lựa chọn – Radio Button Các nút chọn radio là một nhóm nút tròn, chỉ cho phép bạn được chọn một trong nhiều nút. Nút radio có dạng như sau: Công thức viết: Nhãn nút Trong đó RADIO là từ khoá ứng với kiểu nút chọn Radio, nhãn nút i là xâu kí tự sẽ xuất hiện cạnh nút. 64
  66. Ví dụ: Đoạn mã để tạo nút radio đầu tiên - Mastercard - là: Master Card Trong ví dụ trên, thuộc tính NAME được gán trị PAYMENT là tên nhóm nút Radio, gồm 3 nút cho phép lựa chọn một trong 3 cách thanh toán, thuộc tính VALUE để nhận kết qủa câu trả lời ứng với lựa chọn "Mastercard". Lưu ý phân biệt giữa Mastercard là giá trị của lựa chọn với Mastercard là nhãn nút, tức cụm chữ hiện cạnh nút radio. Ta có thể thay nhãn nút bằng một xâu bất kì, ví dụ "Thẻ tín dụng MasterCard". Dĩ nhiên cứ một nút radio lại tương ứng với một dòng mã HTML như trên. Lưu ý rằng thuộc tính NAME phải như nhau cho toàn bộ các nút radio của cùng một nhóm. Trong ví dụ trên thì tất cả các nút đều phải cùng có NAME =[PAYMENT]. Trong một nhóm nút radio, một nút có thể có thuộc tính CHECKED, nghĩa là nó được đánh dấu chọn sẵn khi mở trang Web. e. Ô đánh dấu – CheckBoxes Ô đánh dấu, để đánh dấu một hoặc vài lựa chọn. Ô dánh dấu có dạng như sau: Công thức viết: Nhan o i Ví dụ: 65
  67. Khác với nút radio bạn có thể đánh dấu chọn nhiều ô đồng thời trong cùng một nhóm ô đánh dấu. Ví dụ công thức để tạo ra checkbox đầu tiên ở trên là: Overnight ý nghĩa của các thuộc tính cũng tương tự như của nút radio. Trong một nhóm ô đánh dấu, một số ô có thể có thuộc tính CHECKED và được đánh dấu chọn sẵn khi mở trang Web. f. Danh sách lựa chọn – thành phần SELECT Công thức để tạo menu là: Menu item 1 Menu item 2 Menu item 3 Menu item 4 Menu item 5 Menu item 6 Menu item 7 Menu item 8 trong đó thuộc tính SIZE xác định số mục chọn có thể nhìn thấy trong cửa sổ cuộn. OPTION SELECTED xác định lựa chọn mặc định ban đầu. Có thể tạo menu buông xuống có dạng như sau nếu ta đặt thuộc tính SIZE=1: Để tạo bảng chọn kiểu này chỉ cần bỏ thuộc tính SIZE trong đoạn mã trên. Mặc định, danh sách chọn SELECT chỉ cho phép chọn một mục chọn. Thuộc tính MULTIPLE cho phép đánh dấu chọn nhiều mục. g. Hộp chọn tệp 66
  68. Cho phép hiển thị hộp chọn tệp hoặc nhập tên tệp trực tiếp. Ví dụ. Khi nhấn chuột vào nút Browse thì hộp thoại Choose File sẽ mở và cho phép chọn tệp. Cách viết: Khi nhập tên tệp vào trường text hay chọn tệp (bằng nút Browse) thì tên tệp sẽ được gán cho thuộc tính VALUE của thành phần này. h. Nút Send và Clear Khi người sử dụng đã điền xong thì phải hoặc gửi kết quả đi, hoặc xoá sạch và điền lại từ đầu: Send - gửi kết quả đi. Clear - xoá sạch và làm lại từ đầu. Hai nút để làm việc này có dạng: Mã để tạo ra hai nút này là: trong đó hai xâu kí tự trong ngoặc kép Send form, Clear form gán cho thuộc tính VALUE sẽ hiển thị trên nút tương ứng. Dĩ nhiên ta có thay bằng xâu nào khác tuỳ ý, chẳng hạn “gửi đi”, “điền lại”. i. Nút nhấn – Push Button Ngoài hai nút kiểu "Submit" và "Reset" luôn gắn với form và có chức năng quy định trước như trên, có thể tạo nút nhấn để gắn với những hành động xử lí khác do ta tự thiết kế. Mã nguồn để tạo nút nhấn tổng quát kiểu này là. Nhãn nút 67
  69. Tên nút để tham chiếu, còn nhãn nút là nhãn sẽ hiển thị trên nút. Nếu muốn trang trí một biểu tượng hay hình ảnh trên nút chỉ cần thay thế phần nhãn nút bằng hình ảnh. Lưu ý: phải cung cấp dòng chữ thay thế cho thành phần IMG. Không được gắn một image map với thành phần IMG chứa trong một thẻ BUTTON. Để gắn các hàm chức năng xử lí với một nút nhấn, ta dùng các thuộc tính về sự kiện nội tại của nút như onclick, ondblclick, onmousedown, onmouseup, onmouseover, onmousemove, onmouseout Phần trình bày về Scripting sẽ nêu rõ vấn đề này. j. Nút nhấn bằng hình ảnh Có thể tạo nút nhấn trực tiếp bằng một hình ảnh. Khi nhấn nút, form được gửi đi cùng với các toạ độ x,y tính bằng pixel, kể từ góc trên - trái của hình ảnh. Các số liệu này được gửi đi dưới dạng. name.x=x-value name.y=y-value ở đây name là giá trị của thuộc tính name của nút; x-value, y-value là các toạ độ. Nếu việc xử lí khác nhau phụ thuộc toạ độ của điểm nhấn chuột mà trình khách không hỗ trợ hình ảnh thì phải dùng giải pháp khác: dùng nhiều button hoặc image map và script. k. Các trường ẩn Các trường ẩn không hiển thị trên form nhưng được dùng để gửi thông tin cho Server. Ví dụ: Đoạn mã trên để tạo một liên kết trên trang cho phép NSD nhấn nút để tới một trang Web tại địa chỉ URL nhất định nào đó chứ không phải dùng phím BACK. 68
  70. Một ví dụ nữa là để điền tự động mục Subject trong email có thể dùng một trường ẩn như sau: Đoạn mã này điền xâu kí tự đã gán cho thuộc tính VALUE vào dòng chủ đề - subject trong email. l. Nhãn Thẻ label Các nút đã có nhãn ngầm định, gán bằng thuộc tính value Các thành phần còn lại như text fields, checkboxes, radio buttons, menus không có nhãn ngầm định. Có thể hiển thị một xâu kí tự kề bên thích hợp để làm "nhãn" như ta vẫn làm ở trên. Tuy nhiên, đặc tả HTML có thành phần LABEL để gán nhãn cho các thành phần điều khiển khác. Cặp thẻ dùng để định nghĩa thành phần LABEL. Thuộc tính FOR của thẻ label Thuộc tính này nhằm gán nhãn cho thành phần điều khiển trỏ bởi Id. Id là tên định danh của thành phần điều khiển. Nếu không có thuộc tính for thì ngầm định là gán cho thành phần điều khiển chứa trong cặp thẻ LABEL đang xét. Có thể nhiều hơn một LABEL cho cùng một thành phần điều khiển Ví dụ: First Name Last Name 69
  71. Gắn nhãn không dùng thuộc tính FOR Để gắn nhãn cho một thành phần điều khiển mà không dùng thuộc tính FOR, thành phần điều khiẻn phải nằm bên trong thành phần LABEL. Lúc này, một thành phần LABEL chỉ chứa một thành phần điều khiển. Các chữ làm nhãn có thể đặt trước hay sau thành phần điều khiển. Ví dụ: gán nhãn cho 2 thành phần text field. First Name Last Name VII.1.3. Thêm tính cấu trúc cho FORM a. FIELDSET và LEGEND Thành phần FIELDSET cho phép nhóm một số thành phần điều khiển có liên quan với nhau. NSD dễ hiểu hơn, còn người thiết kế trang cũng dễ xử lí di chuyển focus hơn. Thành phần LEGEND cho phép gắn một dòng chú giải cho một FIELDSET Các thuộc tính align = top|bottom|left|right top: legend đặt ở phía trên của fieldset. Đây là giá trị mặc định. bottom: legend đặt ở phía dưới của fieldset. left: legend đặt ở phía trái. right: legend đặt ở phía phải của fieldset. Vi dụ 70
  72. Personal Information Last Name: First Name: Address: Medical History Smallpox Mumps Dizziness Sneezing Current Medication Are you currently taking any medication? Yes No If you are currently taking medication, please indicate it in the space below: Trình duyệt sẽ hiển thị như sau: 71
  73. Hình VII.1. Kết quả ví dụ VII.2. Cascading style sheet Style Sheets là một đặc tính quan trọng mà có thể được dùng trong HTML động (Dynamic HTML). Mặc dù trang Web không thật sự cần phải có một style sheet, nhưng việc dùng nó có nhiều lợi ích. Trong phần này, ta sẽ làm quen về công nghệ style sheet dùng để nâng cao việc thiết kết và phát triển trang Web. VII.2.1. Inline Style Một đặc tính quan trọng của Dynamic HTML là các style động. Ta có thể thay đổi style của nhiều phần tử HTML trên trang sau khi nó được hiển thị trong trang. Sự thay đổi có thể thể hiện bằng cách đáp lại tương tác của người dùng hoặc sự kiện thay đổi trạng thái (như sự kiện thay đổi kích thước). Có hai cách thay đổi style của trang: Thay đổi style bên trong Viết các scripts để thay đổi style Sử dụng các inline style ta có thể viết các style động mà không phải viết thêm script vào trang. Một “inline style” là một style mà được gán vào một phần tử đặc biệt. Style không hỗ trợ cho tất cả các phần tử của một kiểu hoặc một lớp nào đó. Một inline style được định nghĩa dùng thuộc tính STYLE cho tag của các phần tử. Ví dụ, nếu ta 72
  74. muốn gán màu của (Heading 1) thành màu đỏ, ta có thể gán thuộc tính STYLE của thẻ H1. Nếu ta muốn dùng script để sửa một inline style bất kỳ lúc nào, khi đó ta phải dùng đối tượng style (Style Object). Style Object hỗ trợ mọi thuộc tính mà CSS hỗ trợ cho các style. Để dùng thuộc tính trong scrip: Loại bỏ gạch nối từ tên thuộc tính style CSS Thay đổi chữ đầu tiên của từ sau gạch nối thành chữ viết hoa Ví dụ, thuộc tính CSS font-weight thành fontWeight trong DHTML. Hoặc text-align thành textAlign. Ta hãy xem một ví dụ để xóa mọi thứ. Ta sẽ dùng inline style để gán các thuộc tính của nhân tố . Xem đoạn code dưới đây trong Internet Explorer: Setting Properties This paragraph has an inline style applied to it This paragraph is displayed in the default style. Can you see the difference in this line 73
  75. Hình VII.2. Sử dung Inline Style VII.2.2. Giới thiệu Style Sheet Style sheet là nơi mà ta quản lý và điều khiển các style. Style sheet mô tả diện mạo và việc biểu diễn của một tài liệu HTML như nó sẽ được đưa ra trên màn hình, hoặc in ra ngoài. Trong thực tế, ta có thể nghĩ về nó như một khuôn mẫu để căn cứ vào các tài liệu HTML của ta. Đặc biệt ta cũng có thể định rõ vị trí và sự xuất hiện của các phần tử trên một trang và tạo các hiệu ứng đặc biệt. Ví dụ ta có thể tạo một style sheet định nghĩa cho thẻ là chữ béo và nghiêng và màu xanh. Hoặc thẻ phần tử được đưa ra với màu đỏ với font Arial. Ta có thể định nghĩa thông tin style mà ta muốn trong một vị trí – style sheet. Khi đó style sheet có thể được liên kết để tất cả các trang trong một Web site để tạo một diện mạo thích hợp, đồng nhất qua site bên trong. Ta có thể định nghĩa nhiều style sheet và liên kết chúng thành một tập như nhau của các trang Web để mềm dẻo hơn nhiều trong khi tạo các trang Web. Một trang Web có thể không có style sheet, nếu không có style sheet được xác định, khi đó trình duyệt sẽ sử dụng cách hiển thị theo quy ước ngầm định của nó. Ví dụ, một thẻ luôn được hiển thị cùng một định dạng, các đoạn và các lề cũng như vậy. Dù sao việc dùng style sheet ta có thể xác định cách mà thẻ được hiển thị trong trình duyệt. Về mặt lý thuyết, ta có thể dùng bất kỳ công nghệ style sheet nào với HTML. Dù sao thực tế thì chỉ công nghệ Cascading Style Sheet (CSS) được các trình duyệt 74
  76. hỗ trợ tốt. CSS là một chuẩn được phát triển bởi World Wide Web Consortium (thường gọi là “W3C”) dùng trong các trình duyệt Web. VII.2.3. Javascript Style Sheet Netscape hỗ trợ các cascading style sheet. Nó cũng hợ trợ style sheet mà được viết trông giống JavaScript và dùng mô hình đối tượng tài liệu – Document Object Model (DOM). Khi ra định nghĩa một style sheet ta có thể khai báo kiểu như: “text/CSS” - - Trong trường hợp này nó tìm cú pháp CSS. “text/JavaScript” – Trong trường hợp này nó tìm cú pháp JavaScript style sheet. Khi dùng cú pháp JavaScript trong phần tử , ta phải xác định thuộc tính các thẻ của đối tượng tài liệu. Trong mô hình đối tượng tài liệu, các phần tử HTML được đối xử như các đối tượng. Một đối tượng có các thuộc tính và có thể được truy nhập để định nghĩa diện mạo và style của phần tử. Một thuộc tính trả về có thể hoạt động như một đối tượng với một tập các thuộc tính. Ví dụ, một trang Web được đối xử như một đối tượng tài liệu. Đối tượng tài liệu có một thuộc tính các thẻ. Thuộc tính các thẻ có một đối tượng H2. Đối tượng H2 có một thuộc tính gọi là color mà có thể được truy nhập và thay đổi khi được yêu cầu. Document.tags.H2.color = “limegreen” Ví dụ: tags.P.fontSize = “25pt”; tags.P.marginLeft = “15pt”; tags.H2.color = “hotpink”; This is an H2 element with a style applied This is a paragraph element 75
  77. Tất cả các phần tử khác đều thừa kế từ phần tử . Nếu ta muốn cung cấp một style mặc định cho tất cả các phần tử trong một tài liệu, ta có thể đặt style yêu cầu trong phần tử . Đoạn mã sau chạy trên trình duyệt netscape: Ví dụ: tags.body.color=”red”; This is an H2 element This is a paragraph element Hình VII.3. Hỗ trợ một style bình thường Ví dụ: BODY {color:limegreen} 76
  78. This is an H2 element This is a paragraph element Nếu ta phải đặt nhiều thuộc tính cho một phần tử, ta có thể dùng cú pháp để rút ngắn lại mã: with (tags.P) { color=”hotpink”; fontStyle=”italic”; fontFamily=”helvetica”; fontSize=”20pt”; } This is a paragraph element VII.2.4. Thuật ngữ Style Sheet Một cascading style sheet định nghĩa các style mà có thể được cung cấp cho các trang hoặc các phần tử trang. Luật style - - Một cascading style sheet là một tập các luật. Một luật định nghĩa định dạng của tài liệu. Ví dụ, ta có thể tạo một luật style để quy định tất cả các xuất hiện với màu xanh. Style Sheet - - là một danh sách các luật. Nó có thể được nhúng vào trong tài liệu HTML. Trong trường hợp đó nó được gọi là một style sheet nhúng. Một style sheet cũng có thể được tạo như một file bên ngoài và liên kết với tài liệu HTML. Các luật style có thể được cung cấp để lựa chọn các phần của một trang Web. Ví dụ, ta có thể quy định một đoạn văn bản xuất hiện dạng chữ đậm và nghiêng. Việc này được gọi là khai báo bên trong style (inline style declaration) nhờ đó các style được cung cấp để chia các phần tử HTML trên một trang Web. 77
  79. Các luật - - Một style sheet có thể gồm một hoặc nhiều luật. Phần đầu của luật được gọi là Selector. Mỗi selector có cá thuộc tính và các giá trị kết hợp với nó. Ví dụ: A RuleSelector{Declarationsproperty: value; property: value; } Phần của luật kèm theo bên trong các ngoặc nhọn được gọi là Khai báo (Declaration). Một khai báo có hai phần, phần trước dấu hai chấm là thuộc tính (Property) và phần sau dấu hai chấm là giá trị (Value) của thuộc tính đó. Các khai báo phân chia ra bởi dấu chấm phẩy (;). Ta không cần đặt một dấu phẩy chấm sau khai báo cuối cùng. Ví dụ: H1 {color:blue} H1 là Selector, color:blue là khai báo. Bên trong khai báo: {Thuộc tính:Giá trị} Color là thuộc tính, blue là giá trị. Ta có thể đặt mỗi luật tách rời bên trong các thẻ STYLE. Trong trường hợp đó các header của ta sẽ được liệt kê. Ví dụ: H1{ color:limegreen } H1{ font-family: Arial } { color: limegreen } H2{ font-family:Arial } This is the H1 element This is the H2 element This is the H3 element with its default style as displayed in the browser 78
  80. Ta cũng có thể nhóm các luật. Mỗi khai báo được phân chia bởi một dấu chấm phẩy. Ví dụ: H1, H2{ color: limegreen;font-family: Arial;} This is the H1 element This is the H2 element This is the H3 element with its default style as displayed in the browser Hình VII.4. Luật nhóm Các Selector Selector có thể được định nghĩa như, “một xâu mà quy định các luật nào hỗ trợ cho các phần tử nào. Có hai kiểu cơ bản của các selector - Các selector đơn giản (Simple selectors) - HTML Selectors - Class selectors 79
  81. - ID Selectors - Các selector ngữ cảnh (Contextual selectors) a. Các selector đơn giản (Simple selectors) Sử dụng dễ nhất. Nó mô tả một phần tử không kể vị trí của nó trong cấu trúc tài liệu. Quy định H1 là một selector đơn giản. Ví dụ: H1 {color:blue} HTML Selector Seletor này sử dụng các tên của các phần tử HTML. Chỉ khác là ta loại bỏ các móc nhọn. Như vậy, thẻ HTML trở thành P. Trong ví dụ dưới đây, trong khi định nghĩa style, phần tử P không có các móc nhọn. Điều này bởi vì, phần tử HTML được đối xử như một selector. Ví dụ: P{font-style:italic; font-weight:bold;color:limegreen} Ở đây các nội dung của được xác định. Phần tử được đối xử như một phần tử HTML. This selectors use the names of HTML elements. The only fifference is that you remove the brackets. Hình VII.5. Sử dụng một HTML selector 80
  82. Class Selector Các selector này dùng thuộc tính CLASS của các phần tử HTML. Mọi phần tử, mà thấy được, có một thuộc tính CLASS mà được dùng để gán một quy định. Thay vì ta có thể gán một quy định lớp cho nhiều phần tử của một kiểu đơn khi ta muốn hiển thị nhiều màu khác nhau. Trong trường hợp đó ta sẽ dùng một quy định lớp cho . CLASS Selector được bắt đầu với một dấu chấm (.) gọi là ký tự cờ (flag), theo sau bởi ‘tên lớp’ của selector. Sẽ tốt hơn để chọn các tên lớp theo mục đích hơn là một tên mà mô tả màu hoặc style của họ. Ví dụ, ta có thể muốn đoạn A xuất hiện dạng chữ nghiêng, các đoạn khác xuất hiện với style khác, trong trường hợp đó đoạn A có thể có một quy định lớp.slant. Ví dụ: .water { color: blue } .danger { color: red } test water test danger no style italic Hình VII.6. Sử dụng CLASS selector 81
  83. Ví dụ: classes.water.all.color = “blue” classes.danger.all.color = “red” test water test danger no style italic Khi dùng cú pháp JavaScript, ta không thể dùng gạch nối bên trong các tên lớp. Bởi vì JavaScript đọc gạch nối như một dấu trừ (-) mà là một toán tử JavaScript. Các tên lớp không thể gồm bất kỳ toán tử JavaScript nào. Khi định nghĩa một style class: Ta có thể xác định các phần tử HTML nào có thể dùng style này Ta có thể dùng từ khóa tất cả để cho tất cả các phần tử có thể dùng nó. Ví dụ: all.hotpink {color:hotpink;} P.BLUE {color: blue; font-weight:bold;} H5.red1 {color:red; font-weight:bold;} This paragraph is blue. This paragraph does not use the class BLUE. This is an H5 element that tried to use the red1 class This paragraph is hotpink. This is an H5 element that has been allowed to use hotpink style. 82
  84. Hình VII.7. Xác định các phần tử Ví dụ: classes.HOTPINK.all.color=”hotpink”; classes.BLUE.P.color = “blue”; classes.BLUE.P.fontWeight = “bold”; classes.red1.H5.color = “red”; classes.red1.H5.fontWeight = “bold”; This paragraph is blue. This paragraph does not use the class BLUE. This an H5 element that tried to use the red1 class This paragraph is hot pink. This is an H5 element that has been allowed to use hotpink style. 83
  85. ID Selector Một ID Selector dùng thuộc tính ID của một phần tử HTML. Một ID selector được dùng để cung cấp một style cho một phần tử cụ thể trên trang Web. Ví dụ, ta có thể dùng một ID selector để cung cấp cho một tiêu đề . Không có nghĩa là cùng một style sẽ được cung cấp cho sự kiện khác của một phần tử trên cùng một trang, trừ khi chỉ rõ. Nó tương tự như việc dùng một inline style do đó một style được cung cấp cho một phần tử xác định. Một ID selector được bắt đầu bởi một dấu thăng (#). Khi dùng cú pháp JavaScript, ta phải dùng thuộc tính ID. Ví dụ: ID Selectors #control {color: red} Fire is this colour This paragraph has no style applied Hình VII.8. Sử dụng ID selector 84
  86. Ví dụ: Combining ID and Class Selectors .forest {color: green } .danger {color: red } #control {color: blue } green things fire hazards more green things more fire hazards things that burn things that don’t burn water 85
  87. Hình VII.9. Kết hợp ID và Class selector Ví dụ: Combining ID and Class Selectors With (classes.forest.all) { Color = “green”; } With (classes.danger.all){ Color = “red”; } idss.control.color = “blue”; green things fire hazards more green things more fire hazards 86
  88. things that burn things that don’t burn water b. Các selector ngữ cảnh (Contextual Selectors) Một contextual seclector đề cập đến ngữ cảnh của các phần tử. Để làm mọi thứ sáng sủa hơn, đôi khi ta có hai phần tử với cùng một giá trị. Phần tử chính hoặc phần tử cha có một phần tử con bên trong nó. Trong trường hợp đó, để thay đổi style của phần tử con ta cần dùng một contextual selector. Điều này dựa trên khái niệm kế thừa, nơi mà phần tử con kế thừa style được gán cho phần tử cha. Một ví dụ thông thường là phần tử . Khi ta thêm một phần tử vào mỗi phần tử chứa bên trong những kế thừa của . P là cha và B là con. Bây giờ thì xem nó được điều khiển ra sao? Sau khi ta không muốn tất cả các phần tử trên trang Web xuất hiện cùng một style. Như vậy, ta phải ghi đè sự kế thừa. Trong trường hợp đó ta sẽ phải thay đổi style của phần tử con. Xem đoạn code dưới đây: Ví dụ: Contextual selectors BODY { color:blue; Background:lavender; Font-family:Arial; } UL {color:red} Selector UL trong style sheet xác định rằng danh sách không đánh số màu đỏ, do đó tất cả các phần tử LI sẽ là màu đỏ trừ khi nó được ghi đè sự kế thừa này. 87
  89. mangoes oranges apples Selector UL Selector trong style sheet xác định rằng các chỉ mục danh sách sẽ là màu đỏ. Chúng thừa kế font Arial từ khai báo BODY, màu đỏ từ khai báo UL. Nếu ta xác định một font family trong khai báo UL, nó sẽ ghi đè khai báo selector BODY. Không có selector OL trong style sheet, do đó danh mục OL kế thừa các thuộc tính của nó từ selector BODY. managoes oranges apples Hình VII.10. Contextual Selectors Các phần tử không được kế thừa trong style sheet như các selector sẽ kế thừa các thuộc tính của phần tử cha nó. Trong ví dụ dưới đây, các phần tử B và I đang kế thừa các thuộc tính của selector P. 88
  90. Ví dụ: Contextual Selectors BODY { color:blue; background:lavender; font-family:Arial; } P {color:hotpink} I am having fun This is fun too Để sự trả về của các thuộc tính của selector P, đóng nó lại I am having fun This is fun too Hình VII.11. Contextual Selectors 89
  91. Ví dụ: With (tags.BODY){ color=”blue”; backgroundColor=”lavender”; fontFamily=”Arial”; } tags.P.color=”hotpink”; I am having fun This is fun too I am having fun This is fun too Thay đổi các luật Ta phải tìm hiểu để chỉnh sửa style của một phần tử cụ thể. Có thể các kế thừa khi ta muốn làm các thứ trên phạm vi toàn cục, cho tất cả các trang trong web site. Ta có thể muốn chỉnh sửa một style định nghĩa bởi một style sheet như một lớp hoặc style toàn cục. Khi ta làm điều này, sự sửa đổi có một hiệu ứng gợn sóng. Đó là, style của tất cả các phần tử trên trang mà đưa ra style sheet đặc biệt được thay đổi. Ví dụ, ta có một định nghĩa style sheet mà xác định hai style: Một style toàn cục mà cung cấp toàn bộ phần tử (green, arial font, normal size) Một lớp style chung gọi là cảnh báo (red, bold, italic) mà sẽ cung cấp bất kỳ một phần tử nào mà sử dụng lớp đó. Hai ví dụ sau đây miêu tả việc dùng style sheet gọi là sheet1.css mà được liên kết với 1.htm đầu tiên và sau đó là 2.htm 90
  92. Ví dụ: sheet1.css: H2 {color:blue; font-style:italic;} .warning {color:red; font-weight:bold; font- style:italic;} Copy đoạn code này và ghi với tên “sheet1.css” Sau đó trong file f1.htm ta sử dụng nó như sau: f1.htm Changing the Rules Changing the rules is fun Changing the rules may not be such fun The H2 element again Hình VII.12. Sử dụng một style sheet thông thường 91
  93. Trong file f2.htm ta cũng sử dụng: f2.htm Changing the Rules This document uses the sheet1 style sheet Selecting this option could delete all your files The H2 element again VII.2.5. Các chú thích trong Style Sheet Các chú thích (comments) là một đặc tính mà hầu hết các ngôn ngữ phát triển đều hỗ trợ. Ta cũng có thể thêm các chú thích vào một style sheet để giúp lưu giữ vết của các style mà được hỗ trợ thông qua trang. Các chú thích được bao quanh bởi các dấu /*. Không được đặt lồng vào nhau. Với cascading style sheet, cú pháp là: H1 {color:blue;} /*Các phần tử H1 màu xanh*/ tags.H1.color=”blue”; /*Các phần tử H1 màu xanh*/ Với JavaScript style sheet, cú pháp là: tags.H1.color=”blue”; //Các phần tử H1 màu xanh VII.2.6. Lợi ích của các Style Sheet Nếu ta muốn sử dụng điều khiển lớn hơn với các trang Web ta nên sử dụng style. Ta có thể sử dụng style sheet cho: a. Ghi đè các ngầm định trình duyệt Mỗi trình duyệt có cách thể hiện các trang Web riêng của nó. Ngày nay, các chuyên viên phát triển không có quyền với trang được thể hiện trong một trình duyệt. Ta không biết được trình duyệt nào trên toàn cầu được sử dụng. Với các style sheet ta có thể ghi đè các mặc định truyền thống của trình duyệt và gán nó thành của riêng ta. Ví dụ, ta có thể xác định style trong phần tử như sau: 92
  94. Overriding the browser b. Bố trí trang Các style sheet có thể được dùng để hiển thị font, thay đổi màu sắc, mà không thay đổi cấu trúc của trang web. Nghĩa là một người thiết kế có thể tách rời các yêu cầu thiết kế trực quan từ cấu trúc logic của trang Web và đánh địa chỉ khác nhau. Việc dùng các độ đo tương đối trong style sheet của ta, ta có thể biểu diễn tài liệu để trông đẹp hơn trên màn hình tại bất kỳ độ phân giải nào. c. Các Style Sheet có thể được tái sử dụng Sau khi ta định nghĩa thông tin style, ta có thể nhúng style sheet vào trong tài liệu HTML. Ta cũng có thể liên kết toàn bộ các trang trên web site tới style sheet. Điều này đảm bảo rằng các trang web của ta có một diện mạo đồng bộ khi chúng được hiển thị. Như vậy ta có thể có một nền thông thường, logo công ty và một số thông tin chuẩn trong một style sheet. Điều này sẽ đảm bảo rằng một cái nhìn thông thường và cảm giác trên Web site. Hãy tưởng tượng nếu có hàng trăm trang và ta phải định nghĩa style của mỗi trang riêng biệt. d. Tạo một lần Ta có thể tạo một style sheet và liên kết nhiều tài liệu tới nó. Tất cả các tài liệu sẽ có một diện mạo. Dù sao quan trọng nhất là khi ta tạo một thay đổi tới style sheet tất cả các tài liệu liên kết tới style sheet sẽ mang lại sự thay đổi. VII.2.7. Kết hợp Style Sheet với HTML Có nhiều cách để kết hợp style sheet với HTML - Phần tử STYLE - Thuộc tính Style - Phần tử liên kết Phần tử STYLE (STYLE element) Phần tử STYLE được chèn vào trong phần tử của một tài liệu với toàn bộ luật đặt giữa các thẻ mở và đóng. Khi các trang được hiển thị, chỉ tài liệu mà có STYLE được nhúng vào mới bị tác động. Thẻ có một tham số TYPE. Tham số này xác định kiểu Internet Media như “text/css”. 93