24/05/2018, 15:20

Các loại Style trong ứng dụng website

Ở trên chúng ta đã tìm hiểu về cú pháp viết CSS, nhưng còn đặt nó ở đâu trong tài liệu HTML? Trong phần này, Pearl xin giới thiệu với các bạn về vấn đề này. Chúng ta có ba cách khác nhau để nhúng CSS vào trong một tài liệu HTML ...

Ở trên chúng ta đã tìm hiểu về cú pháp viết CSS, nhưng còn đặt nó ở đâu trong tài liệu HTML? Trong phần này, Pearl xin giới thiệu với các bạn về vấn đề này.

Chúng ta có ba cách khác nhau để nhúng CSS vào trong một tài liệu HTML

Tương tự như cách 2 nhưng thay vì đặt tất cả các mã CSS trong thẻ style chúng ta sẽ đưa chúng vào trong một file CSS (có phần mở rộng .css) bên ngoài và liên kết nó vào trang web bằng thuộc tính href trong thẻ link.

Đây là cách làm được khuyến cáo, nó đặc biệt hữu ích cho việc đồng bộ hay bảo trì một website lớn sử dụng cùng một kiểu mẫu. Các ví dụ trong sách này cũng được trình bày theo kiểu này.

Nào bây giờ chúng ta hãy mở Notepad lên và thử thực hiện theo ví dụ sau:

Đầu tiên chúng ta sẽ tạo ra một file vidu.html có nội dung như sau:

<html>

<head>

<title>Ví dụ</title>

<link rel=”stylesheet” type=”text/css” href=”style.css” />

</head>

<body>

<p>^_^ Welcome To WallPearl’s Blog ^_^</p>

</body>

</html>

Sau đó hãy tạo một file style.css với nội dung:

body {

background-color:#FFF

}

p {

color:#00FF00

}

Hãy đặt 2 file này vào cùng một thư mục, mở file vidu.html trong trình duyệt của bạn và xem thành quả.

Lưu ý:

Để lưu 1 file với 1 đuôi khác .txt trong Notepad chúng ta chọn Save as type là All Files. Có thể chọn Encoding là UTF-8, nếu bạn chú thích CSS bằng tiếng Việt.

Trong CSS chúng ta còn có thể sử dụng thuộc tính @import để nhập một file CSS vào CSS hiện hành. Cú pháp: @import url(link)

Thật ra nếu nhìn kỹ chúng ta cũng nhận ra đây chỉ là một phương cách thay thế cách thứ nhất bằng cách rút tất cả các thuộc tính CSS vào trong thẻ style (để tiện cho công tác bảo trì, sửa chữa ấy mà).

Cũng ví dụ làm trang web có màu nền trắng, đoạn văn bản chữ xanh lá, chúng ta sẽ thể hiện như sau:

<html>

<head>

<title>Ví dụ</title>

<style type=”text/css”>

body { background-color:#FFF }

p { color:#00FF00 }

</style>

</head>

<body>

<p>^_^ Welcome To WallPearl’s Blog ^_^</p>

</body>

</html>

Lưu ý:Thẻ style nên đặt trong thẻ head.

Đối với những trình duyệt cũ, không thể nhận ra thẻ <style>. Theo mặc định, thì khi một trình duyệt không nhận ra một thẻ thì nó sẽ hiện ra phần nội dung chứa trong thẻ. Như ở ví dụ trên, nếu trình duyệt không hỗ trợ thẻ style thì 2 dòng CSS: body {background-color:#FFF } p { color:#00FF00 } sẽ hiện ra trên trình duyệt. Để tránh tình trạng này, bạn nên đưa vào thêm dấu   ở sau khối code CSS. Như ví dụ trên sẽ viết lại là:

<style type=”text/css”>

 

</style>

Đây là một phương pháp nguyên thủy nhất để nhúng CSS vào một tài liệu HTML bằng cách nhúng vào từng thẻ HTML muốn áp dụng. Và dĩ nhiên trong trường hợp này chúng ta sẽ không cần selector trong cú pháp.

Lưu ý: Nếu bạn muốn áp dụng nhiều thuộc tính cho nhiều thẻ HTML khác nhau thì không nên dùng cách này.

Ở ví dụ sau chúng ta sẽ tiến hành định nền màu trắng cho trang và màu chữ xanh lá cho đoạn văn bản như sau:

<html>

<head>

<title>Ví dụ</title>

</head>

<body style=”background-color=#FFF;”>

<p style=”color:green”>^_^ Welcome To WallPearl’s Blog ^_^</p>

</body>

</html>

Trước khi thực thi CSS cho một trang web. Trình duyệt sẽ đọc toàn bộ CSS mà trang web có thể được áp dụng, bao gồm: CSS mặc định của trình duyệt, file CSS bên ngoài liên kết vào trang web, CSS nhúng trong thẻ <style> và các CSS nội tuyến. Sau đó, trình duyệt sẽ tổng hợp toàn bộ CSS này vào một CSS ảo, và nếu có các thuộc tính CSS giống nhau thì thuộc tính CSS nào nằm sau sẽ được ưu tiên sử dụng (cái này cũng giống như chương trình “Ai Là Triệu Phú” trên truyền hình vậy, chỉ câu trả lời sau cùng mới được chấp nhận (smile)). Theo nguyên tắc đó trình duyệt của bạn sẽ ưu tiên cho các CSS nội tuyến > CSS bên trong > CSS bên ngoài > CSS mặc định của trình duyệt.

Ví dụ:

Trong một trang web có liên kết tới file style.css có nội dung như sau:

p {

color:#333; text-align:left; awidth:500px

}

Trong thẻ <style> giữa thẻ <head> cũng có một đoạn CSS liên quan:

p {

background-color:#FF00FF; text-align:right; awidth:100%;

height:150px

}

Trong phần nội dung trang web đó cũng có sử dụng CSS nội tuyến:

<p style=”height:200px; text-align:center; border:1px solid #FF0000; color:#000” } Khi thực thi CSS trình duyệt sẽ đọc hết tất cả các nguồn chứa style rồi sẽ tổng hợp lại vào một CSS ảo và nếu có sự trùng lắp các thuộc tính CSS thì nó sẽ lấy thuộc

Tính CSS có mức ưu tiên cao hơn. Như ví dụ trên chúng ta sẽ thấy CSS cuối cùng mà phần tử p nhận được là:

p {

background-color:#FF00FF;

awidth:100%; height:200px; text-align:center;

border:1px solid #FF0000;

color:#000

}

Vậy có cách nào để thay đổi độ ưu tiên cho một thuộc tính nào đó? Thật ra thì trong CSS đã có sẵn một thuộc tính giúp chúng ta thực hiện điều này, đó chính là thuộc tính !important. Chỉ cần bạn đặt thuộc tính này sau một thuộc tính nào đó theo cú pháp selector { property:value !important } thì trình duyệt sẽ hiểu đây là một thuộc tính được ưu tiên. Bây giờ, chúng ta cùng xét lại ví dụ trên nhưng có đặt thêm một số thuộc tính !important vào xem kết quả như thế nào nhé.

p {

}

p {

}

awidth:500px;

text-align:left !important;

color:#333 !important

background-color:#FF00FF;

awidth:100%; height:150px !important; text-align:right;

<p style=”text-align:center; height:200px; border:1px solid #FF0000; color:#000” }

Phần CSS sẽ tác động lên thuộc tính p là:

p {

background-color:#FF0000;

awidth:100%; height:150px !important; text-align:left !important;

border:1px solid #FF0000;

color:#333 !important

}

Lưu ý: Cùng một thuộc tính cho một selector thì nếu cả hai thuộc tính đều đặt !important thì cái sau được lấy.

0