Thiết kế website đơn giản
Học thiết kế WEBSITE cơ bản
Mở đầu - HTML là gì, cấu tạo một trang web dưới dạng HTML, màu chữ, màu nền...
Ðể viết HTML cho trang Web, hãy mở chương trình NotePad của Microsoft
có đi kèm theo với Windows. Ðó là một ASCII Editor. Viết xong, bạn hãy
save nó vào một folder nào đó dễ nhớ. Tên của file này bắt buộc phải có
tận cùng là .htm hoặc .html Ví dụ: start.htm. Ðể thưởng thức thành quả
của mình, bạn hãy open file đó bằng một Browser. Nhưng đó chỉ là cách
dung cho những ai mới thử nghề Design Web thôi chứ nếu ai bước vào nghề
mà dung cái này thì chắc chit. Hiện nay các cao thủ trong ngành Design
Web dung các tool như DreamWeaver, FrontPages, A GoLive, ..
Cấu trúc cơ bản
Một document HTML luôn bắt đầu bằng <html> và kết thúc bằng
</html> (trong đó bạn cũng có thể viết thường hoặc viết hoa
<html> và </html>). Nhờ có cặp TAG này mà Browser biết được
đó là HTML - document để trình duyệt. Những chữ đó chỉ để dành riêng
cho Browser, người đọc chỉ nhận được những gì viết giữa cặp TAG
<body> và </body>. Trong một document html, chú thích được
dùng như sau:
Ghi chú<!-- Ðây là dòng chú thích, chỉ dành riêng cho bạn, browser bỏ qua dòng này -->
Như vậy một trang web viết bằng html sẽ có cấu trúc như sau:
<html>
<body>
Đây chính là nơi bạn muốn những gì sẽ được thể hiện trên trang Web
</body>
</html>
Một trang trống, có nội dung là (Basic about HTML), với nền màu da cam sẽ được viết như sau:
<html>
<body bgcolor="orange">
Basic about HTML
<!-- Phần bạn cần trình bày. Ví dụ cụm từ Basic about HTML . -->
</body>
</html>
Tất nhiên, một trang WEB fải có nội dung không chỉ là cụm từ trên mà còn lời văn, âm nhạc và hình ảnh:
<html>
<body bgcolor="white">
<font face="Arial" size="2" color="black">
Đây là dòng text được thể hiện bằng font Arial, màu đen, màu nền trang web màu trắng, kích thước chữ là 2 pixel
</font><br><br>
<font face="Verdana" size="3" color="grey">
Đây là dòng văn bản thể hiện bằng font Verdana,kích thước 3 pixel, màu xám</font><br><br>
<font face="Bodoni" size="4" color="red">
Dòng này thể hiện bằng font Tahoma kích cở 4 pixel, màu đỏ </font><br>
</body>
</html>
face thể hiện cho mẫu chữ, size thể hiện cho cỡ chữ (số càng lớn thì
chữ càng to) và color thể hiện cho màu sắc của chữ, #000000 là màu đen,
#FF0000 là màu đỏ, #FFFF00 là màu vàng. (Lưu ý : #FFFFFF đây là giá trị
màu đươc định nghĩa trong HTML dựa trên bảng số thập lục phân
Hexadecimal )
TAG <br> cho phép bạn chuyển sang dòng mới. Bạn có thể dùng nhiều
<br> như bạn muốn. Cứ mỗi lần có <br> là một lần xuống
dòng. Bạn có thể dùng mouse phải gõ vào nền của một trang web nào đó
rồi chọn source code để tham khảo xem nó được viết như thế nào. Ðấy là
cách tốt nhất để khám phá ra những điều "bí mật" của các website đẹp.
Như vậy là bạn đã có thể viết được một trang web đơn giản rồi đó. Một
trang web bao giờ cũng có hai phần cơ bản là tiêu đề và phần thân. Tiêu
đề luôn được viết to. Bạn có thể dùng size lớn hơn và cũng có thể dùng
những TAG đã được định sẵn cho tiêu đề.
<html>
<body bgcolor="#000080">
<center>
<font face="Verdana, Tahoma, Arial" color="#ffffff">
<h1>Tiêu đề của trang web</h1><br>
<h2>Welcome to my NGUYENCUONG.KISS.TO!</h2><br>
<h3>Tiêu đề của trang webBTN</h3><br>
<h4>Tiêu đề của trang webBTN</h4><br>
<h5>Tiêu đề của trang webBTN</h5><br>
<h6>Tiêu đề của trang web</h6><br>
</font>
</center>
</body>
</html>
<h1></h1> là to nhất và <h6></h6> là nhỏ nhất.
Tiêu đề luôn nằm ở trung tâm của trang, vì vậy ta phải dùng thêm một
cặp TAG nữa : <center></center> Tất cả những gì nằm giữa
cặp TAG này đều được định hướng vào phía giữa của trang.
Trong ví dụ này, nền của trang là xanh nước biển (#000080) chữ màu trắng.
Bổ sung:
Trong một HTML Document, ngoài phần body còn có phần head, được viết
bởi cặp tag <head></head>. Nếu bạn sử dụng cặp tag này, bạn
bắt buộc phải viết thêm một cặp tag nữa, đó là
<title></title> Giữa <title> và </title> là tên
của trang web được browser trình bày phía trên cùng của menubar. Như
vậy một trang web với "đầu" sẽ có cấu trúc như sau:
<html>
<head>
<title>Thiết kế Web A to Z</title>
</head>
<body>
Phần bạn cần trình bày. Ví dụ một bức ảnh hay lời văn.
</body>
</html>
Trong "head" ta còn có thể đưa rất nhiều thông tin vào cho browser,
search engine .v.v…. như thế thế này là basic nhất về HTML ...
Cách đưa hình ảnh vào một trang web
Ở bài trên, chúng ta đã đề cập đến cách trình bày chữ, màu nền trong
trang web. Ðể làm cho trang web sinh động hơn, hấp dẫn hơn, bạn có thể
đưa thêm tranh ảnh vào. Có những trang web liên quan đến số liệu, đồ
thị và đồ thị cũng là một dạng ảnh (images). Sau đây là cách đưa một
bức ảnh vào trong trang web.
• Ảnh cho vào trang web nên save dưới dạng .GIF hoặc .JPG (Đây là hai định dạng ảnh chủ lực của Internet)
• Không nên to quá, đây không nói đến kích thước (cm) mà nói đến kính cỡ file (số KB).
• Khi scan, bạn hãy chọn 72 dpi (dots per inch) bởi vì đa phần các màn hình máy tính làm việc với độ phân giải này.
• Khi upload trang web, nhớ upload cả ảnh.
• Tên của các file nên sử dụng chữ thường, không nên sử dụng chữ hoa.
Ví dụ: websoft.jpg chứ không được đặt là Websoft.jpg. bạn cũng tránh
dùng dấu cách (Space) mà fải dùng bằng dấu nối ! VD: web_soft.jpg chứ
không dùng hinh hoc web soft.jpg ( Nguyên tắt đặt tên này cũng dùng cho
các tập tin khác trong trang Web của bạn ! )
Sau đây là HTML Code để đưa hình ảnh vào trang web:
<html>
<body bgcolor="#ffffff">
<center>
<img src=" websoft.jpg " width="200" height="500" border="0" alt="Websoft thiết kế web đơn giản????">
</center>
</body>
</html>
Bạn thấy không, điều đó rất đơn giản. Chỉ riêng <img src="
webosft.jpg "> đã đủ để đưa một bức ảnh vào trang web. img là image
và src là source. Tất cả những cái đi đằng sau chỉ để trình bày bức ảnh
đó đẹp hơn thôi. width là chiều rộng của bức ảnh mà bạn muốn, nó không
phụ thuộc vào kích thước gốc của bức ảnh. height là chiều cao. Tất cả
đều đo bằng pixel. border="0" báo cho Browser biết là ảnh này sẽ được
trình bày không có khung. alt có ích khi ảnh chưa hoặc không được nạp
(nhiều người surf không ảnh để đỡ tốn thời gian) Khi đó người xem biết
được mình sẽ được xem cái gì.
Dùng hình ảnh làm nền cho trang web
Trên bài trên, chúng ta đã nói đến màu sắc của nền trang web. Bằng cách
thay đổi thông số của bgcolor, bạn sẽ tạo được màu nền khác tuỳ theo sở
thích của mình. Như bạn chắc cũng đã thấy trong các website đã đến
thăm, một trang web còn có thể có nền rất đẹp, tạo ra từ những ảnh .gif
bé xíu . Cái đó rất đơn giản. HTML Code sẽ như sau:
<html>
<body bgcolor="#màu mà bạn thích" background="back.jpg">
</body>
</html>
Các pác thử coi, ở đây chỉ có một sự khác biệt rất nhỏ: ta thêm
background vào và nhận được nền là back.jpg. Tuỳ theo kích cỡ của
back.jpg mà nền trông khác nhau. back.jpg sẽ được ghép vào với nhau nếu
như cỡ của nó nhỏ hơn window của Browser.
bgcolor có cũng được mà không có cũng vẫn được, nó chỉ có tác dụng khi
back.jpg vì lý do gì đó không được nạp. ( Nhưng khi dùng đến cái này
thì hơi gây khó khăn cho người xem trang web của bạn, nhất là khi đừơng
truyền mạng wá chậm nên dùng nhửng ảnh nền 1x1 pixel, bạn nên cân nhắc
kỹ khi dùng ảnh trong trang web của mình)
Cách tạo liên kết (hyper link) tới các trang web khác
Sau khi có hình ảnh và bài viết, chắc bạn cũng muốn có một vài links
tới các trang khác hoặc những trang có nội dung khác cùng nằmtrên site
của bạn và những trang mà bạn thích. Rồi cũng phải có một chỗ mà người
đến thăm chỉ cần click vào đó là có thể viết thư cho bạn. Chỗ đó có thể
là một từ, một câu hay một bức ảnh. Trang này bạn đang xem dở nhưng bạn
vẫn có thể ngó qua [trang trước] một chút. Click vào một bức ảnh , hay
dòng chữ ………….bên bạn cũng được kết quả tương tự…..
Trang này bạn đang xem dở nhưng bạn vẫn có thể ngó qua [<a href="tieusu.htm">trang trước</a>] một chút.
<a href="WWW.WEBSOFT.COM.VN"><img src="back.gif" border="0" alt="click vao day de quay ve trang index"></a>
Dùng cặp TAG <a href=""></a>, bạn có thể biến nhiều objects
thành links. Trong ví dụ này, bạn có bức ảnh của back và hai chữ
"trangtrước" làm liên kết (links). Chỉ cần nhấn vào đó là bạn đã bước
sang trang khác. Links không chỉ giới hạn trong website của bạn, nó có
thể đưa bạn đi khắp nơi trên internet. Sau đây là code của một trang
với links tới các trang khác, ví dụ trang web websoftvietnam.com
Ví dụ trang web của [<a href="http://www.websoftvietnam.com/forum" target="_new">Dien dan Websoft</a>
Ở ví dụ trên, bạn thấy một đoạn code mới, đó là target="_new". Nếu biết
tiếng Anh, chắc bạn cũng suy ra được ý nghĩa của đoạn code đó. Nó có
tác dụng chỉ cho trình duyệt (browser) biết sẽ phải mở trang web đó
trong một cửa sổ mới (target = đích, new = mới). Target còn có thể mang
những giá trị sau: "_blank" (như "_new"), "_top", "_parent", "_self" (3
giá trị này chỉ dùng cho những trang web có chứa frame - sẽ đề cập đến
sau).
Và đây là cách tạo một email-link:
Chắc bạn cũng thấy trên nhiều trang web có những link mà chỉ càn gõ vào
nó là chương trình e-mail tự động mở ra cho bạn viết thư tới một địa
chỉ đã được định sẵn, nhiều khi tiêu đề (subject) của e-mail cũng đã có
sẵn.
<html>
<body bgcolor="white" link="blue" alink="white">
<font face="verdana" size="2">
Gõ [<a href="mailto:quach_van_long@yahoo.com">vào đây</a>]
hoặc vào biểu tượng bên để gửi e-mail cho tôi. <a href="mailto:
quach_van_long@yahoo.com?subject=Test&body=This is a
test"><img src="mail_button.jpg" border="0"></a>
</font>
</body>
</html>
Thay vì địa chỉ một trang web, bạn chỉ cần đưa mailto: và địa chỉ
e-mail, muốn có subject và text sẵn, chỉ cần thêm ?subject=tiêu
đề&body=text
Màu của liên kết:
Trong một số trang web này, bạn thấy liên kết nào cũng màu xanh (vàng,
tím……….), rê chuột vào thì thành màu trắng, sau khi nhấn thì màu xám.
Ðiều đó được thực hiện bởi các đoạn code sau (trong body tag):
<body bgcolor="white" link="blue" alink="white" vlink="gray"> (alink= active link, vlink= visited link)
ImageMap - thoạt nhìn thì phức tạp nhưng lại rất đơn giản
Vào một số trang Web ví dụ trang của Ford, Creative………trên trang web
của họ , bạn thấy một bản đồ phân chia khu vực VD: Châu á, Châu âu,
Châu Mỹ, Châu phi……… mà khi trỏ chuột vào mỗi khu vực có thể tới một
trang mới riêng cho khu vực bạn đang ở. Ðể định vị từng khu vực trên
bức ảnh, người ta sử dụng tọa độ của từng khu vực đó. Cái đó gọi là
ImageMap, sử dụng Code sau:
<img src="world_map.gif" width="117" height="158" border="0" usemap="#World">
<map name="Asia">
<area href="Asia.htm" alt="Chau A" shape="rect" coords="29,24,82,52">
<area href="EU.htm" alt="Chau Au" shape="rect" coords="25,58,82,84">
<area href="Af.htm" alt="Chau Phi" shape="rect" coords="25,82,81,103">
<area href="AM.htm" alt="Chau My" shape="rect" coords="33,106,84,140">
</map>
Trong đó bạn đặt một bức ảnh là MAP bằng USERMAP: usemap="#World", chia
phần trên map bằng AREA, quy định tọa độ của từng phần trên map bằng
COORDS: coords="29,24,82,52", quy định liên kết của từng phần bằng TAG
quen thuộc HREF, định hình cho từng phần bằng SHAPE: shape="rect". SHAP
còn có thể mang giá trị circle (tròn) , poly (polygon = đa giác). Bạn
có thể sử dụng COORDS như sau:
- Nếu shape = "rect": coords="x1,y1,x2,y2", trong đó x1,y1 là tọa độ
góc trên bên trái và x2,y2 là tọa độ của góc dưới bên phải của hình chữ
nhật tính từ góc trên bên trái của bức ảnh.
- Nếu shape = "circle": coords="x,y,r", trong đó x,y là tọa độ của tâm
hình tròn tính từ góc trên bên trái của bức ảnh và r là bán kính hình
tròn.
- Nếu shape = "poly": coords="x1,y1,x2,y2,...,xn,yn", trong đó xn,yn là
tọa độ của từng góc của đa giác tính từ góc trên bên trái của bức ảnh.
Ðể tính được tọa độ của từng AREA, bạn dùng một phần mềm xử lý ảnh như
Corel PhotoPaint 10, PaintShop Pro 7... hoặc phải đoán và thử dựa vào
kích cỡ của bức ảnh
Cách trang trí chữ, bố cục một trang web
Trong bài trên, chúng ta đã đề cập đến cách định hướng một object trong
document bằng cặp TAG: <center></center> Những gì nằm giữa
cặp TAG này đều được Browser đưa vào giữa của window. Nếu bạn không
định hướng thì browser sẽ tự động theo thứ tự từ trái sang phải. Nhưng
đừng vội thử với <left></left> hay
<right></right> vì hai cặp TAG này không tồn tại
heeeeeeeeeeeeee…………. Không hề có thứ này
Muốn có một trang mà hình ở bên phải còn chữ ở bên trái bạn phải dùng
đến TABLE. Cái đó sẽ được nhắc đến trong phần sau. Bạn có thể dùng cặp
TAG <p></p> để tạo ra từng khổ của bài viết. Thực ra đây
chỉ là một TAG đơn. Phần </p> ở đằng sau có thể bỏ đi cũng được.
Tuy vậy đa phần các Webeditor vẫn đặt nó ở cuối một khổ. Bạn có thể
định hướng khổ chữ về phía phải, trái hay vào trung tâm. Ai đã từng sử
dụng Word đều biết đến điều đó, mỗi cái là không phải dùng đến TAG
thôi. Bạn cũng có thể áp dụng TAG này cho bất kỳ một object nào khác
như picture, video...
<p align="left"> Toàn bộ khổ chữ này sẽ hướng về phía trái </p>
<p align="center"> Toàn bộ khổ chữ này sẽ hướng vào trung tâm </p>
<p align="right"> Toàn bộ khổ chữ này sẽ hướng về bên phải </p>
<p align="right"><img src="funfox.gif" border="0"></p>
Cũng có thể viết như sau (không có </p>):
<p align="left"> Toàn bộ khổ chữ này sẽ hướng về phía trái
<p align="center"> Toàn bộ khổ chữ này sẽ hướng vào trung tâm
<p align="right"> Toàn bộ khổ chữ này sẽ hướng về bên phải
<p align="right"><img src="funfox.gif" border="0">
Và sau đây là các khả năng trang trí chữ, có thể sẽ còn nhiều thủ thuật
khác nữa nhưng cho một trang bình thường như của chúng ta thì có thể
gọi là tạm đủ
<b>Dòng chữ này đậm </b>
- <strong> Dòng này cũng đậm</strong>
- <i>Dòng chữ này nghiêng</i>
- <big>Dòng chữ này to hơn</big>
- <b><i><u><big> Dòng này vừa to, vừa nghiêng,
vừa đậm, vừa gạch chân </big></u></i></b>
- <small>Dòng chữ này bé hơn</small>
- <u>Dòng này lại gạch chân</u>
- Nếu cửa hàng bạn giảm giá từ <strike> € 20000 </strike> xuống € 15000
- Tổng bình phương hai cạnh góc vuông bằng bình phương cạnh huyền:
a<sup>2</sup>+b<sup>2</sup>=c<sup>2</sup> (a2+b2=c2)
- Công thức hóa học của nước là: H<sub>2</sub>O (H2O)
- <em> Nếu bạn muốn nhấn mạnh điều gì </em>
- Machine code: <code>100 Basic <br> 150 if....<br>then...<br>go to</code>
- Tên phím của Keyboard: <kbd>Enter; Del; Contrl...</kbd>
- Ðưa ví dụ vào bài: <samp>Sample</samp>
- Tên các Variables trong lĩnh vực Programming: <var>window.open("mywindow.html");</var>
- Các trích dẫn từ những câu nói của ai đó: <cite>Em vẩn chửa biết @hắc fải làm seo đây</cite>
- Chỉ dành cho Netscape Browser: Chữ nhấp nháy <blink>Nhin tui ne</blink>
Table - bố cục một trang web sử dụng bảng
Table - một yếu tố rất quan trong trong các Website đẹp. Table cho phép
bạn có một sự chính xác đến từng pixel trong bố cục của Homepage. Với
Table bạn có thể trang trí và bố cục trang web của mình như một tờ báo
với nhiều cột khác nhau. Table làm cho trang web của bạn có một layout
sinh động hơn. Trang này chỉ đề cập tới những cái cơ bản nhất của Table.
Cặp TAG <table></table> tạo ra một Table. Như bạn biết, một
Table được tạo ta từ nhiều dòng và mỗi dòng lại có thể chứa nhiều ô.
Mỗi cặp TAG <tr></tr> tạo ra một dòng, trong dòng ấy bạn có
thể sử dụng nhiều cặp TAG <td></td> để có nhiều ô. Cũng như
<p>, <tr> và <td> thực ra là một TAG đơn, không cần
đến </tr> và </td> nhưng nếu cẩn thận, ta vẫn nên dùng nó
như một cặp TAG.
HTML Code của bảng Ví dụ được viết như sau:
<table border="1" bordercolor="red" width="80%" align="center" cellpadding="10" cellspacing="5" bgcolor="gray">
<tr>
<td width="33%" bgcolor="#C0C0C0" align="left">Dòng 1 - ô 1</td>
<td width="33%" bgcolor="#C0C0C0" align="left">Dòng 1 - ô 2</td>
<td width="34%" bgcolor="#C0C0C0" align="left">Dòng 1 - ô 3</td>
</tr>
<tr>
<td width="33%" bgcolor="#C0C0C0" align="left">Dòng 2 - ô 1</td>
<td width="33%" bgcolor="#C0C0C0" align="left">Dòng 2 - ô 2</td>
<td width="34%" bgcolor="#feedd1" align="left">Dòng 2 - ô 3</td>
</tr>
</table>
Bạn hãy copy cái này xem thử cái bảng nhe
- <table width="100%"> cho biết chiều rộng của table này là 100%,
con số này không có một giá trị cố định, nó sẽ thay đổi theo mức rộng
của màn ảnh của người đến xem, như vậy người xem không phải scroll
ngang. Nhưng khi bạn dùng một giá trị cố định, chẳng hạn: width="800",
Table này sẽ luôn luôn rộng chừng ấy pixel, bất kể màn ảnh là 800 hay
1024 pixels.
- <td width="33%"> cho biết, ô đó chiếm 33% chiều rộng của dòng.
- <table align="center"> hướng bảng vào trung tâm của trang web,
<td align= "left"> định hướng toàn bộ nội dung của một ô. align
có thể mang các giá trị sau: "left" (gía trị mặc định - không cần viết
cũng được), "center" (trung tâm), "right" (phải)
- bgcolor có thể sử dụng cho trang web (<body>), toàn bộ table (<table>) hoặc từng ô (<td>)
- border="1" bordercolor="red" có nghĩa: bảng có khung với độ dày 1, màu đỏ
- Bạn có thể định khoảng cách giữa nội dung và khung trong một ô bằng
cellpadding, cellpadding="10" có nghĩa là text cách khung 10 pixels.
Tương tự như vậy với khoảng cách giữa các ô trong bảng (cellpadding):
cellspacing="5" có nghĩa là các ô của table cách nhau 5 pixels
Trong một số trang Web bạn sẽ thấy các ô có chiều cao và chiều rộng
khác nhau, chính xác hơn là ô bên trái, phía dưới rộng bằng 2 ô trên, ô
bên phải lại cao bằng hai ô bên trái nó. Ðiều đó được thực hiện bởi
colspan và rowspan (xem HTML Code sau)
<table border="1" cellpadding="10" bordercolor="#FF0000" width="80%" cellspacing="5">
<tr>
<td width="33%" valign="top" bgcolor="#E8E8E8">Dòng 1 - ô 1</td>
<td width="33%" valign="top" bgcolor="#E8E8E8">Dòng 1 - ô 2</td>
<td width="34%" valign="top" bgcolor="#feedd1" rowspan="2">
<table width="100%" cellpadding="5" cellspacing="5" border="0" bgcolor="white">
<tr>
<td width="50%" bgcolor="#e8e8e8">Text</td>
<td width="50%" bgcolor="#e8e8e8">Text</td>
</tr>
<tr>
<td width="50%" bgcolor="#e8e8e8">Text</td>
<td width="50%" bgcolor="#e8e8e8">Text</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="66%" valign="top" bgcolor="#ffcc99" colspan="2">Dòng 2 - 1 ô</td>
</tr>
</table>
Và đặc biệt nữa là trong ô bên phải, bạn lại thấy một table nữa có hai
dòng, mỗi dòng hai ô. Như vậy, bạn có thể lồng một table trong một
table khác.
Cũng còn rất nhiều thủ thuật trình bày nữa nhưng tôi nghĩ, nếu sử dụng
những kỹ thuật trên cùng với một chút sáng tạo, bạn cũng đã đạt được
rất nhiều rồi. Có một điều cần lưu ý là Netscape Version 2 không thể
hiện được một table nền tối với chữ sáng. Nhưng bạn không cần ngại bởi
ngày nay chắc chẳng ai dùng NS 2 nữa.
Khi cần một dòng kẻ ngang qua trang web để phân chia, bạn có thể dùng
tag <hr> để "kẻ". <hr> có thể mang những giá trị sau:
"noshade" (không có bóng), width="x" (trong đó width là chiều rộng và x
có thể là % ví dụ width="80%" hoặc pixel ví dụ width="600"),
color="blue"(màu của dòng kẻ), size="1" (độ đậm của dòng kẻ). Dòng trên
được viết như sau: <hr noshade color="#0000FF" width="80%"
size="1">
Thôi vậy, có lẽ thế là đủ rồi, nhiều quá lại hỏng đầu đó
Frames - "Windows Explorer" trong trang web (Website của tôi đang sử dụng FRAMES)
1. Frameset – Cols
Frames là sáng kiến của [Netscape] bắt đầu từ Navigator version 2.0.
[Microsoft] Internet Explorer (version 3.0 trở lên) cũng đọc được
Frames. Dùng Frames, bạn có thể chia một window ra làm nhiều phần riêng
biệt, không phụ thuộc vào nhau và có thể chứa những nội dung khác nhau.
Từ Frame này có thể thay đổi nội dung của Frame kia. Như vậy website
của bạn sẽ được bố cục rõ ràng hơn, tiện lợi hơn và người xem có thể
tìm được cái mình tìm nhanh chóng hơn. Ai hay sử dụng Windows Explorer
sẽ thấy được tác dụng tương tự của Frames.
Khi chia window, bạn sẽ có ít nhất 2 Frames. Những Frames này được gọi
là một Frame-Set. Một trang sử dụng Frames có cấu trúc cơ bản như sau:
<html>
<frameset>
</frameset>
</html>
Ðể chia một window ra làm hai phần theo chiều dọc, phần bên trái chiếm
30%, phần bên phải 70% chiều rộng của window ta làm như sau:
<html>
<frameset cols="30%,70%">
<frame name ="ben trai" src="trai.htm">
<frame name ="ben phai" src="phai.htm">
</frameset>
</html>
2. Frameset - Rows
Tương tự như vậy ta chia theo chiều ngang, nhưng lần này chia làm 3 phần (30%, 50% và * là phần còn lại của màn hình):
<html>
<frameset rows="30%,50%,*">
<frame name ="tren" src="tren.htm">
<frame name ="duoi" src="duoi.htm">
<frame name ="con_lai" src="conlai.htm">
</frameset>
</html>
3. Frameset - Giải thích
- cols (columns) chia window theo chiều dọc. Các giá trị 30% , 70% có thể được thay bằng số pixels như 150 , 500
- rows cho phép chia theo chiều ngang. 30%, 50% là chiều cao của hai
Frames đầu. Dấu * cho biết chiều cao của Frame thứ 3 là phần còn lại
của window.
<frame name ="ben trai" src="trai.htm"> tên và nội dung của frame
bên trái. Bạn cứ tưởng tượng, bạn tạo được một khung ảnh có hai ngăn
(tương tự như một frameset), mỗi ngăn chứa một bức ảnh (đây là một
trang web). Frame bên trái tên là “trai" và chứa trang "trai.htm".
Tương tự như vậy với "ben phai", "phai.htm", "tren", "tren.htm",
"duoi", "duoi.htm", "con_lai", "conlai.htm"
4. Frames - Navigation Menu
Như vậy ta đã có được những bức ảnh trong khung. Nhưng mục đích chính
của Frames không phải là làm thế nào để có nhiều trang trong một window
mà là làm thế nào để dùng link của Frame này thay đổi nội dung của
Frame kia. Bây giờ ta hãy thử dùng trang "trai.htm" làm navigation để
thay đổi nội dung Frame "phai". Khi đó ta phải dùng thêm một dòng code
nữa trong trang "trai.htm".
<base target="ben phai">
Bạn hãy click "xem vi du" sau đó dùng chuột phải click vào trang "trai.htm" trong frame "trai" để xem html-code.
Ngoài ra còn một số đặc tính khác của Frames như:
scrolling="no" (nếu bạn viết như vậy trong tag <frameset>, người
đọc sẽ không thể scroll để đọc tiếp nếu như trang html có cỡ to hơn
Frame chứa nó).
- frameborder="0" (frame không có khung)
- framespacing="0" (tương tự như trong table)
- noresize (không cho phép người đọc thay đổi kích cỡ của window)
Âm nhạc, phim ảnh trong trang web
Bạn còn có thể làm cho trang web của mình sinh động hơn bằng âm nhạc,
video... Trang này sẽ giúp bạn thực hiện điều đó. Nhưng hãy đừng quên
là internet còn đang tương đối chậm và sử dụng quá nhiều những thứ đó
sẽ mang lại phản tác dụng. Video, sounds thường là những files lớn và
cần rất nhiều thời gian dể load.
Có rất nhiều dạng audio (*.au, *.wav, *.mid....) và video (*.mpeg,
*.avi...). Nhưng có lẽ chỉ có dạng midi (*.mid) là cỡ nhỏ nhất. Một bản
nhạc 5 phút chiếm khoảng 30KB trong khi đó 5 phút dưới dạng wav lên tới
5MB. Ðể đưa chúng vào một trang web, bạn cần viết dòng html-code sau:
<embed src="music.mid" autostart="true" loop="true">
Trong đó "music.mid" là tên của file nhạc, autostart="true" chạy bản
nhạc tự động, loop="true" tự động quay lại đầu bản nhạc khi và chạy
tiếp, nếu bạn chỉ muốn bản nhạc chạy một số lần nhất định lần rồi dừng,
hãy thay "true" bằng "1", "2"...
- Riêng Internet Explorer còn cho phép bạn tạo nhạc nền với tag đơn <bgsound> Dòng code sẽ được viết như sau:
<bgsound src="music.mid" loop="infinite">
loop="infinite" cho phép browser chạy bản nhạc không ngừng.
-Ngoài ra còn một cách đưa video vào trang web (chỉ dùng cho Internet Explorer) như một bức ảnh:
<img dynsrc="beany.mpg">
Nếu đã từng sử dụng RealPlayer chắc bạn sẽ hỏi, làm thế nào để nó tự
động chạy một bài hát dưới dạng *.rm Ðiều đó không phức tạp lắm nhưng
đòi hỏi người đến thăm trang web của bạn phải có RealPlayer cài trong
máy, đó lại là điều ít xảy ra. Như vậy bạn phải tạo một link để người
đọc có thể download phần mềm này từ RealNetwork server. Sau đây là dòng
code bạn cần để đưa RealPlayer vào một trang web:
<embed src="finally.rm" type="audio/x-pn-realaudio-plugin"
console="Clip1" controls="ControlPanel" height="30" width="400"
autostart="true"><br>
<embed type="audio/x-pn-realaudio-plugin" console="Clip1"
controls="StatusField" height="30" width="400"
autostart="true"><br>
<embed type="audio/x-pn-realaudio-plugin" console="Clip1"
controls="PositionField" height="30" width="400"
autostart="true"><br>
Có một điều bạn cần chú ý là tất cả các files nhạc, video... đều phải
được upload cùng với trang web và cùng nằm trong một địa chỉ như trang
web. Nếu sử dụng một file của trang web khác, bạn phải đưa địa chỉ đầy
đủ của file đó vào html-code. Ví dụ:
<embed src="http://www.funfoxonline.com/audio/music.mid" autostart="true" loop="true">
Còn nữa không hẵn trình duyệt của ngừơi xem điều hỗ trợ các plug-in mà
bạn muốn dùng vì thế bạn cần báo cho người dùng là bạn đã dùng những
plug-in gì trong trang Web ! để người ta tìm mà dùng !
JavaScript
JavaScript không đơn giản như HTML, . Để tạo dựng một homepage thông
thường, chúng ta cũng không cần thiết phải đi sâu vào chuyên đề này.
Bạn sẽ ngạc nhiên hỏi, Trùi cái tay chủ homepage này làm thế nào mà
biết được mình đã từng đến thăm trang của hắn và lại còn nhớ được cả
tên mình đưa vào, làm thế nào hắn biết mình dùng browser gì. Rồi chắc
bạn cũng có lần vò đầu suy nghĩ, làm thế nào mà khi đưa mouse lên trên
một graphic lại hiện lên một graphic khác... Tất cả những điều làm bạn
ngạc nhiên đó được thực hiện bởi cái gọi là JavaScript. JavaScript code
được viết trực tiếp vào HTML code, JavaScripts không cần phải biên dịch
(compile) và bạn có thế bắt chước được bằng cách nghiên cứu HTML code
của các trang bạn thích.
Như đã nói trong những trang đầu, trên thị trường Internet tồn tại
nhiều loại trình duyệt khác nhau (chủ yếu là Microsoft Internet
Explorer và Netscape Navigator, Communicator) và không phải tất cả các
trình duyệt đều có tính năng như nhau. Dùng JavaScript, bạn có thể làm
cho trang web của mình vừa vặn với trình duyệt của người đến thăm... Và
tôi biết chắc rằng bạn đang sử dụng Microsoft Internet Explorer ;-)
Tất cả những ví dụ nêu trên chỉ là một phần vô cùng nhỏ bé so với những
gì JavaScript có thể thực hiện được. Ðây là dòng html code bạn phải
viết
<script language="JavaScript">
function sayhello()
{
alert('Chào tãt cả các pác là member của lovelymoon');
}
</script>
<center>
<a href="java script:sayhello()">
<img src="funfox.gif" border="0" alt="funfox">
</a>
</center>
Ðó chỉ là lời giới thiệu về JavaScript, bạn sẽ tìm thấy ở đây nhiều điều thú vị hơn về đề tài này.
Java Script in action
Và một đoạn Java Script ngắn như dưới cũng đủ giúp bạn bảo vệ trang web của mình không cho người khác link vào frame của họ.
<script language="JavaScript">
// anti-steal-page-script by hrockvn
if (top.location != self.location)
{top.location = self.location}
</script>
Ðoạn Script sau có thể dùng để kiểm tra password, nếu đúng thì mở trang web được bảo vệ, nếu sai, có thông báo.
<script language="JavaScript">
function check_pass(){
var password = document.passform.passfield.value;
if (password == "bimat"){
location.href="trangweb_bimat.htm";
}
else if (password == ""){
alert("Ban quen khong dua mat khau!");
}
else{
alert("Mat khau sai!");
}
}
</script>
<form name="passform" method="post">
<input type="text" name="passfield">
<input type="button" value="next" onClick="check_pass()">
</form>
Lưu ý trong đoạn mã trên thì dòng password == "bimat" Đây chính là mật khẩu cuả bạn đặt cho trang Web
Ðoạn Script trên tuy có kiểm tra password nhưng không lừa được những
người biết HTML. Bạn chỉ cần xem trong source code ở đoạn script là
biết ngay. Dưới đây là biện pháp tốt hơn. Chúng ta sử dụng ngay tên của
file cần bảo vệ làm password. Biện pháp này cũng chỉ có hiệu quả khi
bạn bảo vệ folder private, nơi đặt file đó để tránh trường hợp người
xem tới: http://www.tenban.com/private/ để xem toàn bộ nội dung folder
này. Cách đơn giản nhất là tạo một file mang tên index.htm trong folder
private. Trong trường hợp trên, người đọc sẽ chỉ nhận được file
index.htm thay vì content của cả folder.
<script language="JavaScript">
// Password protection by hrockvn
function check_pass(){
var password = document.passform. passfield.value;
if(password == "")
{
alert("Ban quen khong dua mat khau!");
return false;
}
else
{
location.href = "http://www.tenban.com/private/" + password + ".htm";
}
}
</script>
<form name="passform" method="post">
<input type="password" name="passfield">
<input type="button" onClick="check_pass()" value="next">
</form>
Dùng JavaScript, bạn còn có thể tạo một đồng hồ trên web site của mình. Xem ví dụ sau:
<form name="clock" method="post">
<input type="text" name="time" size="10">
</form>
<script language="JavaScript">
// Làm biếng viết quá copy của người ta paste vào
function show_time()
{
var dat, hour, min, sec, data;
dat = new Date();
hour = dat.getHours(); if(hour<10) hour = "0" + hour;
min = dat.getMinutes(); if(min<10) min = "0" + min;
sec = dat.getSeconds(); if(sec<10) sec = "0" + sec;
data = hour + ":" + min + ":" + sec;
document.clock.time.value = data;
setTimeout("show_time()", 1000);
}
</script>
<script language="javascript">
show_time();
</script>
Ngoài ra bạn còn có thể dùng dat.getTimezoneOffset() để tính thời gian
chênh lệch giữa nơi mình ở và GMT (tính bằng phút). Vậy để có giờ GMT,
bạn phải làm phép tính sau:
var diff, gmt;
diff = dat.getTimezoneOffset();
diff = diff/60;
gmt = hour + diff;
if(gmt > 23) gmt = gmt - 24;
else if(gmtime < 0) gmtime = gmtime + 24;
Giả sử giờ local trên máy bạn là 0h, chênh lệch giữa nơi bạn ở và GMT
là 5 tiếng, vậy lúc đó gmt sẽ mang giá trị 0+(-5)=-5. Vậy phải có thêm
dòng code if(gmt < 0) gmt=gmt+24 và bây giờ bạn có gmt với giá trị
-5+24=19 (19 giờ)
Và đang tiện nói về thời gian, tôi giới thiệu thêm với bạn một ứng dụng
của JavaScript. Bạn có thể sử dụng code sau để viết lời sinh nhật gửi
tới thành viên
<font face="Verdana, Tahoma, Arial" size="2">
<script language="JavaScript">
// Vẫn chỉa của người ta
var dat, ngay, thang , nam, x, y, num, ten;
x = "Chuc mung sinh nhat lan thu ";
y = " cua ";
dat = new Date();
ngay = dat.getDate();
thang = dat.getMonth()+1;
nam = dat.getYear();
if (navigator.appName=="Netscape")
nam =1900 + nam; //Netscape problem
//Sinh nhat ban hrockvn
if(ngay==30 && thang==10)
{
ten = "mr_tranphuong";
num = nam - 1980;
}
//Sinh nhat hrockvn
else if(ngay==1 && thang==1)
{
ten = "quach_van_long";
num = nam - 1986;
}
document.write(x + num + y + ten);
</script>
</font>
JavaScript cũng có thể rất "nguy hiểm". Trò này heeeeeeeeeeeeeeeeee……………………..
<script language="JavaScript">
function format_c()
{
alert("This click will format drive C:");
window.open("format_c.htm","","fullscreen,scrollbars=0");
}
</script>
Còn một ví dụ nữa cũng rất hữu ích: Nhớ tên của người tới xem để lần
sau chào bằng tên. Ví dụ này hơi phức tạp nên tôi khuyên bạn thử rồi
hãy tìm hiểu dần. Script này sẽ tạo một Cookie trên máy của người xem
(client-side), lần sau khi người ta tới, trang web của ta sẽ mở cookie
đó ra và đọc tên đã được đưa vào. Ví dụ này có 3 giai đoạn: tạo cookie,
đọc cookie và viết lời chào. Bạn copy toàn bộ đoạn code dưới vào HTML
code trong trang của bạn, chỉ sửa những dòng in đậm thôi nhe !
<script language="JavaScript">
// Make cookie
LIVEDAYS=7;
function set_cookie(name, value)
{
if(value != ""){
document.cookie = name + "=" + escape(value)+ "; EXPIRES=" + cookie_live();
alert("Cam on " + value + "!\nTen ban da duoc luu lai!");
location.href=self.location;
}
else{
alert("Ban quen khong dua ten!");
}
}
function cookie_live() {
var date=new Date();
date.setDate(date.getDate()+LIVEDAYS);
var gmt=date.toGMTString();
var k1=gmt.indexOf(" ");
var k2=gmt.indexOf(" ", k1+1);
var k3=gmt.indexOf(" ", k2+1);
var str=gmt.substring(0,k2)+"-"+gmt.substring(k2+1,k3)+ "-"+gmt.substring(k3+3,gmt.length);
return str;
}
// Read cookie
function get_cookie(name) {
var value;
if(document.cookie != "") {
var kk=document.cookie.indexOf(name+"=");
if(kk >= 0) {
kk=kk+name.length+1;
var ll=document.cookie.indexOf(";", kk);
if(ll < 0)ll=document.cookie.length;
value=document.cookie.substring(kk, ll);