Trang chủTrang chủ Liên hệLiên hệ
PHP BASIC

» Events  » References  » Tutorials  » Hướng dẫn  RSS Feed2.0 Đăng ký | Đăng nhập

Dịch PHP Manual (đã dịch 113 /1248)
Thêm bài viết mới
#Thêm ý kiến
Emotion|Show / Hide
Nếu bạn nào đã tìm hiểu về css lâu , hoặc là thiết kế web lâu rùi thì chắc cái này biết rùi ^^, mình đây chỉ là đọc và thấy cái này rất cần thiết cho người mới làm quen với nó lên viết thui ^^(nhớ lại lúc mới vọc css cánh đây 1 tháng cứ không hiểu tại sao mình lại làm chạy được trên firefox chuẩn thì sang ie nó lại tùm lum):
http://www.456bereastreet.com/i/box-model.gif
Ở đây như trong hình , nếu mà theo chuẩn w3c thì tổng chiều rộng sẽ là :
total width = margin-left + border-left + padding-left + width + padding-right + border-right + margin-right

quên mất là các bạn phải nhớ nhé , cái width mà ta khai báo trong css ý ở w3c thì nó chỉ là chiều rộng của phần nội dung thui , tức là cái width trong công thức kia.
-Còn đối với bác ie nhà ta :
total width = margin-left + width + margin-right

Có nghĩa là bác ý thích chơi một mình một kiểu không giống ai , cái chiều rộng ra khai báo trong css thì sẽ là tổng cộng của cả border và padding
Cái này là rất quan trọng trong việc nếu ta thiết kế css theo kiểu chính xác đến từng pixel
Ví dụ :

    #news {
    padding:10px;
    border:1px solid;
    width:250px;
    }

Giờ bạn lấy cái thước mét ra đo xem thì sẽ thấy bác firefox hay opera đều hiển thị đúng còn ie thì không ^^
-Cánh khắc phục:
+Tránh hoàn cảnh là nguyên nhân của vấn đề :
VD có đoạn code sau cần làm:

    <div id="news">
    <h2>News</h2>
    <ul>
    <li>
    <h3>News article 1</h3>
    <p>Lorem ipsum dolor sit amet</p>
    </li>
    <li>
    <h3>News article 2</h3>
   <p>Lorem ipsum dolor sit amet</p>
   </li>
   </ul>
   </div>

Nếu với các trình duyệt chuẩn như firefox và opera thì để có được tổng chiều rộng là 250px cho #news thì ta dùng code sau :

    #news {
    padding:10px;
    border:1px solid;
    width:228px;
    }

nhưng sẽ gặp vấn đề với ie
thay vì dùng như vậy ta chèn thêm một thẻ div bao bọc xung quanh #new ví dụ ban đầu với tên là #sidebar như sau:

    <div id="sidebar">
    <div id="news">
    ...
    </div>
    </div>

Và code sẽ như sau để chạy được tuốt trên các trình duyệt :

    #sidebar {width:250px}
    #news {
    padding:10px;
    border:1px solid;
    }

Ở đây ta cho #sidebar có chiều rộng của phần nội dung là 250px , tránh đến việc đề cập trong thẻ #new là 228px để có được cùng một chiều rộng tương tự(nhưng nếu đề cập là 228 thì trên bác ie sẽ sạc T_T)
+Dùng hack với firefox tránh cho ie5/win:

    #news {
    padding:10px;
    border:1px solid;
    width:250px;
    w\idth:228px;
    }

khi gặp dòng  w\idth:228px; thì ie5 sẽ không hiểu nhưng firefox thì hiểu và sẽ hiển thị chiều rộng của nội dung là 228px
+Sử dụng bình luận có điều kiện cho ie6:

   <!--[if lt IE 6]>
    <style type="text/css">
    #news {width:250px}
    </style>
    <![endif]-->

Thì chỉ bác ie6 nhà ta hiểu được
Mong chia sẻ được chút kiến thức với mọi người

Tác giả:NguyÅn Minh Tân

Show / Hide
#Thêm ý kiến

Add phpBasic to your browser's search box
Digg.com delicious Furl Google Bookmark Reddit Slashdot Yahoo My Web

Web design

Tableless template Framework PHP functions
jQuery
 


XHTML Standard
Xây dựng & phát triển bởi tất cả các thành viên.
Powered by http://phpbasic.com