Cơ bản về HTML, JAVASCRIPT, CSS và ASP
Science and TechnologyĐịnh dạng các phần tử HTML bằng CSS
Mục tiêu của chương:
- Giúp học viên hiểu rõ hơn về ý nghĩa của việc dùng kiểu (style)
- Tra cứu thành thạo các thuộc tính trong bảng dánh sách kiểu
- Vận dụng các thuộc tính (kiểu) để định dạng cho các phần tử trong trang web, nâng cao tính thẩm mỹ.
Nội dung:
Nhắc lại khái niệm về kiểu
Kiểu (style) thực chất là một cách định nghĩa thuộc tính cho các phần tử trong trang web theo một cách thức mới.
Việc định nghĩa các thuộc tính này cho các phần tử sẽ cho ta một "dáng vẻ mới", một "diện mạo mới" về trang web. Ngoài ra, việc định nghĩa thuộc tính theo cú pháp mới này sẽ làm tiền đề cho việc xây dựng các trang web động mà ta sẽ đề cập trong các chương tiếp theo.
Ví dụ: Trước đây, để định nghĩa một đoạn văn bản nằm trong thẻ <P> có font chữ là .vntime, chúng ta sẽ viết như sau:
<P <FONT face=.VnTime>Dòng văn bản này có font chữ là .vntime</Font></p>
Nhưng với cách định dạng mới theo cú pháp mà ta gọi là cú pháp CSS, thì có thể thực hiện yêu cầu trên như sau:
<P style= "font-family:.vntime">Dòng văn bản này có font chữ là .vntime </P>
Minh hoạ cách khai báo style
Trong JavaScript, bạn có thể thiết lập các thuộc tính cho một thẻ nào đó theo rất nhiều cách. Dưới đây xin giới thiệu 3 cách thiết lập thuộc tính cho thẻ, đó là :
- Thiết lập (Định nghĩa) thuộc tính ngay trong khi định nghĩa thẻ (tag), kiểu này còn gọi là định nghĩa kiểu ở mức dòng (style line)
- Thiết lập thuộc tính cho toàn bộ một loại thẻ nào đó. Cách này còn gọi là định nghĩa bộ chọn
- Định nghĩa một lớp, sau đó có thể đem ra sử dụng cho bất kỳ phần tử nào
- Định nghĩa bộ chọn ID, cho phép áp dụng tất cả các thuộc tính của bộ chọn vào tất cả các thẻ có thuộc tính ID phù hợp với mã ID trong định nghĩa.
Style áp dụng ở mức dòng (Inline style)
Style mức dòng (inline style) cho phép bạn có thể thay đổi hình thức (style) của một phần tử nào đó bằng cách thêm các thuộc tính định dạng trực tiếp vào ngay bên trong định nghĩa của thẻ.
Một số ví dụ minh hoạ
Ví dụ 1: Để tạo một dòng văn bản với thẻ <P>; có màu chữ là đỏ, bạn có thể viết như sau:
<P style = "color:blue"> Màu này là màu của hoà bình <P>. Kết quả cho ta :
Màu này là màu của hoà bình
Ví dụ 2 : Để tạo một một button (Nút nhấn) có màu nền là tím (magenta), bạn viết: <input type="button" style="background-color:magenta" value="Hello world"> Kết quả :
Ví dụ 3: Tạo một nút nhấn (Button), trong đó, khi người dùng đưa chuột đến nút đó thì con trỏ chuột có hình bàn tay
Thuộc tính qui định chuột có kiểu hình bàn tay là "cursor:hand", do vậy cần thêm thuộc tính này trong định nghĩa thẻ <Input type = button style = "cursor:hand" value="Chuột hình bàn tay "> Ta đợc kết quả (Bạn di chuột vào nút này):
Ví dụ 4 : Tạo một textbox có viền màu đỏ Thuộc tính tạo viền màu đỏ là : "background-border:red", do vậy bạn cần đặt vào trong định nghĩa thẻ text như sau: <input type="text" style="border-color:red" value="viền màu đỏ"> Kết quả cho ta một textbox có viền màu đỏ:
Nhận xét :
ã Trong các ví dụ ở trên, chúng ta có thể thiết lập một số thuộc tính của bất kỳ phần tử nào bằng cách đưa vào dòng style = "Tên thuộc tính:Giá trị của thuộc tính" Trong đó, Cặp tên thuộc tính : Giá trị của thuộc tính các bạn có thể tra trong bảng các thuộc tính. đợc đặt trên th mục của máy chủ.
ã Có thể đưa vào một hoặc nhiều thuộc tính trong biểu thức style="...." , khi đưa nhiều thuộc tính thì các thuộc tính cách nhau bởi dấu chấm phảy ";"
Ví dụ 5: Tạo một nút nhấn có màu nền là tím (magenta) và màu chữ là trắng (white) Thuộc tính qui định màu nền tím là :"background-color:magenta", Còn thuộc tính qui định màu chữ trắng là "color:white" Như vậy cần định nghĩa thẻ là : <input type ="button" style="background-color:magenta; color:white" value="Nền tím- chữ trắng"> Kết quả :
Ví dụ 6: Thiết lập ảnh nền của trang Web là anh1.jpg, và ảnh này hiển thị ở vị trí cố định (Tức là nếu bạn có cuộn thanh cuộn của cửa sổ thì ảnh này sẽ không bị cuộn theo mà vẫn đứng yên).
Biết rằng thuộc tính đưa ảnh nền vào trang web như sau:
background-image:url( ' <Đường dẫn và tên file ảnh> ')
Thuộc tính để ảnh ở vị trí cố định là :
background-attachment:fixed
Lưu ý: đặc tính ảnh cố định chỉ có trong IE, không có trong Nescape
Như vậy, yêu cầu trên có thể thực hiện như sau:
<body style="background-image:url('anh1.jpg'); background-attachment:fixed; color:white; font-family:arial">
<Click vào đây để xem minh hoạ> (Bạn phải đảm bảo là mở trong trình duyệt IE)
Ví dụ 7: Tạo các liên kết đến các trang http://www.aptech.ute, http://www.vnn.vn, nhưng các liên kết này không có đường gạch chân và có các thuộc tính như sau:
- Màu chữ : Đỏ (red)
- Màu nền : lavender
- Màu khi chuột click vào liên kết : tím (magenta)
- Màu khi trang đó đã được thăm : nâu (brown)
Hướng dẫn:
- Thuộc tính qui định màu chữ của liên kết là: linkColor, thuộc đối tượng document
- Thuộc tính qui định màu nền của văn bản trong một thẻ : background-color (CSS)
- Thuộc tính qui định của liên kết khi bị click chuột : alinkColor, thuộc document
- Thuộc tính qui định màu của liên kết đã được thăm: vlinkColor, thuộc document
Minh hoạ (Soạn trong Dreamweaver):
Định nghĩa style ở mức dòng
Bộ chọn HTML
Bộ chọn HTML cho phép chúng ta chỉ cần định nghĩa các thuộc tính một lần duy nhất cho một loại thẻ HTML nào đó (Ví dụ P, INPUT, H1, H2 ....), và về sau tất cả các văn bản nằm trong loại thẻ này sẽ có cùng định dạng như nhau. Điều này rất có lợi cho ta trong thực tế, chẳng hạn khi bạn tạo một website cho một cuốn sách nào đó mà trong cuốn sách này lại có rất nhiều chương và bạn muốn màu sắc, kích cỡ, font chữ, kiểu dáng... cho tiêu đề các chương là như nhau, thì bạn chỉ cần định nghĩa một lần và về sau tiêu đề các chương sẽ có cùng định dạng giống như nhau.
Việc chúng ta tạo ra các tính chất chung cho một loại thẻ nào đó thì ta gọi là một bộ chọn (Selector) HTML
Để định nghĩa ra một bộ chọn HTML, ta có 2 cách, bạn có thể tuỳ ý chọn một trong 2 cách này. Cách thứ nhất là ta viết theo một dạng cú pháp mà ta gọi là cú pháp dạng CSS, dạng thứ hai là ta viết theo cú pháp của JavaScript.
Cú pháp để tạo bộ chọn theo CSS như sau:
<Style type = "text/CSS">
<Tên thẻ HTML> { <Tên thuộc tính> : <Giá trị> }
<Tên thẻ HTML> { <Tên thuộc tính> : <Giá trị> }
<Tên thẻ HTML> { <Tên thuộc tính> : <Giá trị> }
........................
</Style>
Trong đó:
- <Tên thẻ HTML> là một trong các thẻ mà bạn đã học, ví dụ nó có thể là thẻ P, INPUT, LI, UL, B, H1, H2 v.v...
- Tên thuộc tính : Là tên của thuộc tính của loại thẻ mà bạn muốn thay đổi . Nó có thể là color, background-color, cursor, text-align v.v... Tên các thuộc tính này các bạn có thể tra trong bảng (File Cac the su dung trong CSS.doc" nằm trong thư mục tài liệu về JavaScript của máy Server)
- Giá trị: Là giá trị mới mà bạn muốn đặt cho thuộc tính. Ví dụ, "red", "lavender", "hand", "center" v.v.... Để có thể đặt giá trị cho hợp lệ, bạn tham khảo trong file: [link]Cac the su dung trong CSS.doc" trong server.
Sau khi đã định nghĩa tên của một loại thẻ với các thuộc tính của nó, thì tất cả các thẻ cùng loại về sau sẽ có tất cả các thuộc tính như đã định nghĩa. Để làm sáng tỏ điều này, chúng ta hãy lấy một số ví dụ :
Ví dụ 1: Giả sử bạn cần tạo một danh mục các đầu sách của Aptech, theo định dạng dứơi đây
KNOW YOUR DESKTOP
Office 2000
Access 2000
Logic Building with C
HTML, DHTML and JavaScript
Dream Weaver
Một cách thông thường nhất, với các kiến thức ở những phần trước, bạn hoàn toàn có thể tạo được bằng cách viết như sau :
Tuy nhiên nếu theo cách ở trên thì chúng ta dễ dàng thấy có một điểm chưa được thuận tiện, đó là mỗi khi thêm tên một loại sách chúng ta cần phải thêm trong thẻ P dòng:
<style="font-family:.vntimeH; font-size:20pt; color:red".
Trong trường hợp này, Bằng cách định ra một qui tắc (Định dạng) chung cho tất cả các thẻ P ta có thể có kết quả như mong đợi mà không phải viết lại các dòng dư thừa như ở trên. Việc định ra qui tắc chung cho thẻ P ta gọi là định nghĩa bộ chọn P.
áp dụng cú pháp định nghĩa bộ chọn theo dạng CSS để định nghĩa bộ chọn P như sau:
<style type = "text/css">
P {font-family:.vntimeH}
P{font-size:20pt}
P {color:red}
</style>
Hoặc định nghĩa một cách ngắn gọn :
<style type = "text/css">
P {font-family:.vntimeH; font-size:20pt; color:red}
</style>
PHỤ LỤC : BẢNG TRA CỨU CÁC THUỘC TÍNH CỦA CSS
* Lưu ý: Các giá trị in nghiêng khi sử dụng bạn phải thay bằng giá trị cụ thể, ví dụ viết phần trăm hay lenght thì bạn phải thay các giá trị dạng phần trăm, ví dụ 50% đối với thuộc tính phần trăm (percentage) và 10, 20 .... cho thuộc tính length.
Thuộc tính | Giá trị hợp lệ | Ví dụ |
letter-spacing | normal | length | letter-spacing:5pt |
text-decoration | none | underline | overline | line-through | text-decoration:underline |
vertical-align | sub | super | | vertical-align:sub |
text-transform | capitalize | uppercase | lowercase | none | text-transform:lowercase |
text-align | left | right | center | justify | text-align:center |
text-indent | length | percentage | text-indent:25px |
line-height | normal | number | length | percentage | line-height:15pt |
Thuộc tính | Giá trị hợp lệ | Ví dụ |
margin-top | length | percentage | auto | margin-top:5px |
margin-right | length | percentage | auto | margin-right:5px |
margin-bottom | length | percentage | auto | margin-bottom:1em |
margin-left | length | percentage | auto | margin-left:5pt |
margin | length | percentage | auto {1,4} | margin: 10px 5px 10px 5px |
padding-top | length | percentage | padding-top:10% |
padding-right | length | percentage | padding-right:15px |
padding-bottom | length | percentage | padding-bottom:1.2em |
padding-left | length | percentage | padding-left:10pt; } |
padding | length | percentage {1,4} | padding: 10px 10px 10px 15px |
border-top-width | thin | medium | thick | length | border-top-width:thin |
border-right-width | thin | medium | thick | length | border-right-width:medium |
border-bottom-width | thin | medium | thick | length | border-bottom-width:thick |
border-left-width | thin | medium | thick | length | border-left-width:15px |
border-width | thin | medium | thick | length {1,4} | border-width: 3px 5px 3px 5px |
border-top-color | color | border-top-color:navajowhite |
border-right-color | color | border-right-color:whitesmoke |
border-bottom-color | color | border-bottom-color:black |
border-left-color | color | border-left-color:#C0C0C0 |
border-color | color {1,4} | border-color: green red white blue; } |
border-top-style | none | solid | double | groove | ridge | inset | outset | border-top-style:solid |
border-right-style | none | solid | double | groove | ridge | inset | outset | border-right-style:double |
border-bottom-style | none | solid | double | groove | ridge | inset | outset | border-bottom-style:groove |
border-left-style | none | solid | double | groove | ridge | inset | outset | border-left-style:none |
border-style | none | solid | double | groove | ridge | inset | outset | border-style:ridge; } |
border-top | border-width | border-style | border-color | border-top: medium outset red |
border-right | border-width | border-style | border-color | border-right: thick inset maroon |
border-bottom | border-width | border-style | border-color | border-bottom: 10px ridge gray |
border-left | border-width | border-style | border-color | border-left: 1px groove red |
border | border-width | border-style | border-color | border: thin solid blue |
float | none | left | right | float:none |
clear | none | left | right | both | clear:left |
Thuộc tính | Giá trị hợp lệ | Ví dụ |
display | none | block | inline | list-item | display:none |
list-style-type | disk | circle | square | decimal | lower-roman | upper-roman | lower-alpha | upper-alpha | none | list-style-type:upper-alpha |
list-style-image | url | none | list-style-image:url(icFile.gif) |
list-style-position | inside | outside | list-style-position:inside |
list-style | keyword || position || url | list-style: square outside url(icFolder.gif) |
Thuộc tính | Giá trị hợp lệ | Ví dụ | Có thể áp dụng cho |
clip | Toạ độ của một hình chữ nhật| auto | clip:rect(0px 200px 200px 0px) | tất cả các phần tử (all elements) |
height | length | auto | height:200px | DIV, SPAN và các ptử bị thay thế |
left | length | percentage | auto | left:0px | Các phần tử được định vị tuyệt đối và tương đối |
overflow | visible | hidden | scroll | auto | overflow:scroll | tất cả các phần tử |
position | absolute| relative | static | position:absolute | tất cả các phần tử |
top | length | percentage | auto | top:0px | Các phần tử được định vị tuyệt đối và tương đối |
visibility | visible | hidden | inherit | visibility:visible | tất cả các phần tử |
width | length | percentage | auto | width:80% | DIV, SPAN and replaced elements |
z-index | auto | integer | z-index:-1 | Các phần tử được định vị tuyệt đối và tương đối |
Thuộc tính | Giá trị hợp lệ | Ví dụ |
page-break-before | auto | always || left | right | page-break-before:always |
page-break-after | auto | always || left | right | page-break-before:auto |
Thuộc tính | Giá trị hợp lệ | Ví dụ |
cursor | auto | crosshair | default | hand | move | e-resize | ne-resize | nw-resize | n-resize | se-resize | sw-resize | s-resize | w-resize | text | wait | help | { cursor:hand; } |
active, hover, link, visited | n/a | a:hover { color:red; } |
first-letter, first-line | any font manipulating declaration | p:first-letter{float:left;color:blue}. |
Một số ví dụ áp dụng:
Ví dụ 1: Tạo một dòng văn bản “Welcome to CSS” có font chữ là Arial, in nghiêng và kích thước font chữ là 16 point.
<HTML>
<HEAD> </HEADS>
<BODY>
<P style=“font-family:arial; font-style:italic; font-size:16pt”>Welcome to </P>
</BODY>
</HTML>
Ví dụ 2: Tạo một textbox với màu nền là màu tím (magenta).
<HTML>
<HEAD> </HEADS>
<BODY>
<input type = text style = “background-color:magenta”>
</BODY>
</HTML>
Ví dụ 3: Đặt 3 file ảnh nền tương ứng vào tài liệu, vào textbox và vào textarea
<HTML>
<HEAD> </HEAD>
<BODY style="background-image:url('anh1.jpg');background-repeat:no-repeat">
<input style = "background-image:url('anh2.jpg');background-repeat:repeat-x; width:100%">
<P>
<textarea style = "background-image:url('anh3.jpg');background-repeat:repeat-y" cols = 80 rows = 25>
</textarea>
</BODY>
</HTML>
*Ghi chú:
-Khi ta đặt là repeat-x thì ta có một dãy ảnh được xếp liên tiếp theo chiều ngang
-Khi ta đặt là repeat-y thì ta có một dãy ảnh được xếp liên tiếp theo chiều dọc
Ví dụ 4: Tạo một dòng văn bản, chứa xâu: "Trang chu cua HY-Aptech", trong đó từ "Trang chu" có màu xanh (blue) và khi người dùng di chuyển chuột đến chữ "Trang chu" thì chuột chuyển thành hình bàn tay, và khi chuột click lên chữ này thì trang http://www.aptech.ute sẽ được mở.
<HTML>
<HEAD> </HEAD>
<BODY>
<TITLE>Tạo liên kết và xử lý sự kiện</TITLE>
<font style ="cursor:hand;color:blue" onclick="window.open('http://www.aptech.ute');">Trang chu</font>cua HY-Aptech
</BODY>
</HTML> ===> Xem kết quả
Ghi chú: Khi muốn áp dụng các kiểu cho một số phần tử các bạn chỉ cần viết : style="Tên_Thuộc_tính : Giá_Trị;" trong định nghĩa thẻ. Trong đó cặp "Tên_Thuộc_tính : Giá_Trị;" có thể viết như cột ví dụ đã chỉ ra ở các bảng trên.
Nội dung trang Web của chúng ta bây giờ sẽ là:
<html>
<head>
<title>Su dung bo chon</title>
</head>
<style type = "text/css">
P {font-family:.vntimeH; font-size:20pt; color:red}
</style>
<body>
<P>Know Your desktop </P>
<P>Office 2000 </P>
<P>Access 2000 </P>
<P>Logic Building with C </P>
<P>HTML, DHTML and JavaScript</P>
<P>Dream Weaver</P>
</body>
</html>