PDA

Xem đầy đủ chức năng : Table and DIV???



anhcao
20-08-2007, 08:32 PM
Mình đang tập sài CSS - không hiểu tại sao lại không work khi bỏ <table>.....</table> ở trong cái "DIV class.." - có thể giải thích giùm mình không vậy

bebadboy87
20-08-2007, 10:37 PM
Table thì có <tr> <th> và <td>
Div thì có <dd>, <dt> và dùng nhiều thẻ <p> để định dạng.

Câu hỏi của bạn, nó không làm việc thì có rất nhiều lý do. Có thể do trong thẻ <div> thì id hoặc class của bạn đã quy định sẵn các Table rồi. Có thể do bạn đặt thẻ Table sai, có thể thẻ <tr>, <td> bạn đặt sai.v.v.v

Rất nhiều lập trình viên đã sử dụng Table trong viêc thiết kế layout và trình bày bố cục trên trang Web. Đây là phương pháp hết sức phổ biến trước khi công nghệ CSS ra đời. Tuy nhiên đến nay, vẫn còn rất nhiều người đang sử dụng phương pháp này. Mặc dù đây là một phương pháp thông dụng và được rất nhiều tool design sử dụng (Photoshop, Dreamweave…) tuy nhiên, tổ chức W3C không khuyến khích sử dụng table trong việc trình bày layout ( www.w3c.org/tr/wai-webcontent) “Bảng nên được dùng để chứa các dữ liệu dạng bảng”. Hay nói cách khác, bảng nên được sử dụng đúng với chức năng của nó là chứa các dữ liệu dạng bảng hơn là sử dụng làm layout (Layout table). Thay vào đó, ta hoàn toàn có thể sử dụng những thẻ Div và những thuộc tính của nó, thuộc tính này có thể được định nghĩa ngay tại Div đó (inline) hay được định nghĩa trong thẻ <style> tại cùng file, hoặc định nghĩa tại một file riêng biệt.

Khi sử dụng Css ta có các lợi thế:

- Khi ta sử dụng các thẻ Divs, định nghĩa giao diện, vị trí cho chúng ta không cần phải làm lại điều này với các file khác. Điều này giúp cho việc xây dựng và việc bảo dưỡng nhanh hơn rất nhiều.

- Trang web được load nhanh hơn tại phía người dùng. Hãy lưu ý rằng, file Css này được tải về trình duyệt của người dùng 1 lần duy nhất, sau đó nó được lưu trong Cache để xử lý các yêu cầu tới trang đó trong các lần sau cho tới khi nội dung của nó được thay đổi trên máy chủ. Trong khi đó nếu sử dụng bảng, các bảng được tải về trong mỗi lần yêu cầu tới trang cần hiển thị, do đó số lượng thông tin trao đổi tới máy chủ nhiều hơn rất nhiều. Do đó để hiển thị trang Web cùng với một nội dung như nhau, trang Web sử dụng CSS sẽ được tải nhanh hơn rất nhiều lần (tới 50%). Hơn nữa, khi lưu lượng dữ liệu được giảm đi, máy chủ có khả năng phục vụ được nhiều khách hàng hơn với băng thông không thay đổi.

- Các kiểu CSS và thẻ Div cung cấp sự linh hoạt hơn các bảng. Bạn có thể có những file định dạng khác nhau mà xác định các giao diện khác nhau và các vị trí cho các đối tượng khác nhau trong trang. Bằng cách chuyển lien kết của các định dạng, bạn có thể hoàn tất việc thay đổi giao diện của trang mà không cần thay đổi bất kì nội dung nào trong trang. Với các trang ASP.NET, bạn thậm chí có thể thay đổi định dạng mỗi lần chạy và từ đó dễ dàng thực hiện cơ chế mà cho phép người dùng cuối chọn các kiểu mà học thích. Và điều đó không chỉ đơn giản là về màu sắc và font- bạn có thể xác định các vị trí của đối tượng trong file CSS, và từ đó có một file mà đặt vào menu trên góc trên bên trái của trang, một cách khác là có thể đặt nó vào dưới cùng bên phải. Bởi vì chúng ta muốn cho phép các người dùng lấy các dạng mà họ ưa thích từ một danh sách các giao diện có thể sử dụng Đây là một điểm cực kì quan trọng.

- CSS cho phép bạn nhắm vào các loại của các thiết bị khác nhau trong một vài trường hợp mà không cần HTML mới giống như là thiết bị di động như PDA hoặc smartphone. Do cỡ màn hình có giới hạn, nó cần sửa lại cho hợp với đầu ra, vì vậy nội dung phù hợp màn hình nhỏ và dễ dàng đọc. Bạn có thể làm điều này bằng với một định dạng xác định mà thay đổi cỡ và vị trí của một vài thành phần chứa (đặt cái nọ dưới cái kia hơn là theo cột dọc), hoặc ẩn hoàn toàn chúng đi. Cho ví dụ, bạn có thể giấu thành phần chứa của biểu ngữ, bình chọn và đầu trang với một logo lớn. Thử làm điều này nếu bạn dùng bảng, nó sẽ khó hơn nhiều. Bạn phải nghĩ về một cơ chế giao diện tùy biến, và bạn cần viết nhiều trang riêng mà xác định các lớp khác nhau có thể dùng được. Điều này tốt hơn là viết một file CSS mới.

Chú ý rằng vấn đề trên là về việc dùng bảng cho toàn bộ giao diện của trang. Tuy nhiên, dùng bảng là chấp nhận được để tạo các form vào với kiến trúc bảng bởi vì sẽ có quá nhiều code CSS sẽ dùng trong trường hợp mà cần sự dễ viết và bảo trì. Nó cùng không phù hợp khi bạn cần thay đổi trùy các lớp của form vào, vì vậy bạn không cần sự linh họat của CSS cho điều đó, và dùng bảng HTML là nhanh hơn cả.


- HHT' Team -