Giáo trình HTML và thiết kế Web (Phần 1)

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

Joe Cool

Giáo trình HTML và thiết kế Web (Phần 1) trang 1

Trang 1

Giáo trình HTML và thiết kế Web (Phần 1) trang 2

Trang 2

Giáo trình HTML và thiết kế Web (Phần 1) trang 3

Trang 3

Giáo trình HTML và thiết kế Web (Phần 1) trang 4

Trang 4

Giáo trình HTML và thiết kế Web (Phần 1) trang 5

Trang 5

Giáo trình HTML và thiết kế Web (Phần 1) trang 6

Trang 6

Giáo trình HTML và thiết kế Web (Phần 1) trang 7

Trang 7

Giáo trình HTML và thiết kế Web (Phần 1) trang 8

Trang 8

Giáo trình HTML và thiết kế Web (Phần 1) trang 9

Trang 9

Giáo trình HTML và thiết kế Web (Phần 1) trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 44 trang duykhanh 3840
Bạn đang xem 10 trang mẫu của tài liệu "Giáo trình HTML và thiết kế Web (Phần 1)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Giáo trình HTML và thiết kế Web (Phần 1)

Giáo trình HTML và thiết kế Web (Phần 1)
ờ 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ả cuộc phân ly 
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 
 25 
 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: 
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 đó: 
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 
 26 
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 
WIDTH = n% 
Thay đổi độ dài của đường kẻ, chiếm n% độ rộng cửa 
sổ màn hình. Nếu không có % đằng sau thì độ dài 
tính theo đơn vị pixcel 
SIZE = n 
Thay đổi độ đậm hay mảnh của đường kẻ. n là số 
pixcel 
ALIGN=LEFT|RIGHT 
Căn lề trái|phải. Đường kẻ ngang mặc định được căn 
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 
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 
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: 
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. 
o Mục thứ 1 
o Mục thứ 2 
o Mục thứ 3 
 29 
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: 
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 
1. Mục thứ 1 
2. Mục thứ 2 
3. Mục thứ 3 
 30 
Kết quả trả về một danh sách sau: 
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: 
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ụ: 
I. Mục thứ 1 
II. Mục thứ 2 
III. Mục thứ 3 
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 
 31 
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ề: 
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 
 Mức 1 
 Mức 1.1 
 Mức 1.2 
 Mức 2 
 Mức 2.1 
 Mức 2.2 
 32 
 Ô 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 
Đô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 
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 
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 BORDER=n 
CELLSPACING=n 
CELLPADDING=n 
BGCOLOR="#rrggbb"> 
TABLE - Bắt đầu bảng 
BORDER - Đặt khung nổi 3D xung quanh bảng. Đặt 
BORDER=0 sẽ làm mất biên bao quanh. 
CELLSPACING - Đặt độ dầy của dòng kẻ ngang trong 
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 
ALIGN=MIDDLE|RIGHT 
Thuộc tính dùng kèm bên trong các thẻ , 
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 
để giãn một ô theo chiều ngang chiếm nhiều cột hơn 
các ô trên dòng khác. 
WIDTH=n% 
Thuộc tính dùng kèm các thẻ hay để đặt 
độ rộng của ô. 
COLSPAN=n 
Thuộc tính dùng kèm các thẻ hay để giãn 
một ô theo chiều ngang chiếm nhiều cột hơn các ô 
trên dòng khác. 
ROWSPAN=n 
Thuộc tính dùng kèm các thẻ hay để giã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: 
 ABC 
 DEF 
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 
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 
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 
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 
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 
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 
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 
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. 

File đính kèm:

  • pdfgiao_trinh_html_va_thiet_ke_web_phan_1.pdf