Nếu bạn là người thiết kế và thường xuyên phải viết CSS cho các trang web thì chắc bạn biết rõ tầm ảnh hưởng của các file CSS đối với trình duyệt (ở đây babyinternet gọi là browser nhé) trong việc hiển thị website của mình. Thật khó mà có thể làm hài lòng tất cả các bác browser khó tính. Ở đây Nhân xin trình bày một số kinh nghiệm nhỏ nhoi nhằm giúp bạn thực hiện công việc một cách dễ dàng và tốt đẹp hơn.1. Canh lề với tag DIV
Việc canh lề và tạo một cột trái có vẻ sẽ không phải là vấn đề đơn giản chút nào với CSS hiện thời. Và trong khi anh em chúng ta ngồi đây đợi CSS 3 ra mắt thì tôi đã lục lọi trên Internet và tìm được giải pháp cho việc canh lề này một cách tốt nhất. Trước tiên ta hãy xem đoạn mã sau đã:
Vấn đề ở đây là gì ?
Xem xét đoạn mã CSS trên chúng ta sẽ thấy rằng đoạn code chỉ được định nghĩa chiều cao 100px và trong trường hợp nếu chiều cao của nó nhỏ hơn chiều cao của trình duyệt thì chúng ta không thể có các croll kéo chuột. Trong trường hợp này bạn sẽ đặt ra câu hỏi tại sao lại muốn có croll chuột trong trường hợp này ? Hãy xét một ví dụ khác là nếu dữ liệu bạn chứa trong tag div này lớn hơn chiều cao của tag được định nghĩa. Lúc đó một số dữ liệu bên dưới có thể không được hiển thị trên một số trình duyệt. (Bản thân tôi cũng đã từng gặp không ít trường hợp nà. Híc ! ) Giải pháp:
Baby đưa ra giải pháp cho vấn đề này như sau:
3. PNG transparency
Nếu bạn phải sử dụng một ảnh PNG để làm ảnh nền, vấn đề bạn sẽ gặp phải là khi text của bạn trùng với màu của ảnh dẫn đến bạn sẽ không thể nhìn rõ text.
Hãy xem hình dưới đây:
Vấn đề đặt ra ở đây là bạn cần phải làm thế nào để hình ảnh vẫn hiển thị và bạn vẫn có thể đọc được đoạn text của mình. Babyinternet đã xem cách mà website [Chỉ có thành viên mới thấy links này. ] thực hiện và tôi cũng có một giải pháp tương tự. Đầu tiên bạn code đoạn code sau và save thành file JS.
/*
Correctly handle PNG transparency in Win IE 5.5 & 6. [Chỉ có thành viên mới thấy links này. ]. Updated 18-Jan-2006.
Use in <HEAD> with DEFER keyword wrapped in conditional comments:
<!–[if lt IE 7]>
<script defer type=”text/javascript” src=”pngfix.js”></script>
<![endif]–>
*/
var arVersion = navigator.appVersion.split(“MSIE”)
var version = parseFloat(arVersion[1])
if ((version >= 5.5) && (document.body.filters))
{
for(var i=0; i<document.images.length; i++)
{
var img = document.images[i]
var imgName = img.src.toUpperCase()
if (imgName.substring(imgName.length-3, imgName.length) == “PNG”)
{
var imgID = (img.id) ? “id=’” + img.id + “‘ ” : “”
var imgClass = (img.className) ? “class=’” + img.className + “‘ ” : “”
var imgTitle = (img.title) ? “title=’” + img.title + “‘ ” : “title=’” + img.alt + “‘ ”
var imgStyle = “display:inline-block;” + img.style.cssText
if (img.align == “left”) imgStyle = “float:left;” + imgStyle
if (img.align == “right”) imgStyle = “float:right;” + imgStyle
if (img.parentElement.href) imgStyle = “cursor:hand;” + imgStyle
var strNewHTML = “<span ” + imgID + imgClass + imgTitle
+ ” style=\”" + “width:” + img.width + “px; height:” + img.height + “px;” + imgStyle + “;”
+ “filter:progidXImageTransform.Microsoft.AlphaI mageLoader”
+ “(src=’” + img.src + “‘, sizingMethod=’scale’);\”></span>”
img.outerHTML = strNewHTML
i = i-1
}
}
}