Danh mục: Tài liệu PHP

Thiết kế giao diện website đơn giản với Div và CSS

Sở hữu tính ưu việt và hiệu quả vượt trội, ngày nay những kỹ thuật viên thường sử dụng thẻ Div kết hợp với CSS thay vì bảng (table) như trước đây để thiết kế website. Trong bài viết này, chúng tôi sẽ chia sẻ cới các bạn cách thiết kế một giao diện với thẻ div kết hợp với 2 thuộc tính Float và Clear trong CSS.

Cấu trúc giao diện chúng ta sẽ thiết kế gồm có header, footer và 2 cột có kích thước cố định (fixed column)  như hình bên dưới.

Đầu tiên chúng ta sẽ dựng mã HTML như sau:

CODE

<html XMLns=”http://www.w3.org/1999/xhtml” XML:lang=”en” lang=”en”>
<head>
    <meta http-equiv=”content-type” content=”text/html; charset=utf-8″ />
    <title>Thiết kế giao diện với Div</title>
    <link href=”style.css” media=”screen” rel=”stylesheet” />
</head>
<body>
    <div id=”mainWap”>
      <div id=”header”>
        <h1>Header</h1>
     </div>
     <div id=”left”>
        Nội dung cột trái…
     </div>
     <div id=”right”>
        Nội dung cột phải…
     </div>
     <div class=”clr”></div>
     <div id=”footer”>
       Nội dung footer…
     </div>
   </div>
</body>
</html>

Lưu lại với tên div.html vào một thư mục nào đó trên máy tính của bạn.

Trước tiên chúng ta sẽ tạo ra một thẻ div lớn bao quanh toàn bộ trang web với id=”mainWap”. Bạn nên thực hiện việc này trong các thiết kế tiếp theo của mình. Ví dụ bây giờ bạn muốn toàn bộ trang web của bạn được canh bên phải màn hình, thay vì phải đi căn chỉnh từng thành phần sang phải  thì bạn chỉ cần canh thẻ div này sang phải, toàn bộ các thành phần khác trong nó sẽ được canh phải theo thẻ div lớn. (Bạn cứ tưởng tượng rằng chúng ta có một cái hộp lớn và bỏ tất cả các hộp nhỏ vào bên trong và khi muốn thì chỉ cần di chuyển cái hộp lớn đi thôi). Đây cũng là cách để bạn quản lý độ lớn của Box tốt hơn.

Tiếp theo ta sẽ tạo các thành phần header, left, right, footer bên trong thẻ div lớn này với các id tương ứng.

Ta thêm vào thành phần <div class=”clr”></div> trước footer, ta sẽ xem phần này sau khi viết CSS.

Xem thêm các bố cục của một file CSS để hiểu rõ các thành phần cần có trong file này.

Tạo một file style.css và lưu vào cùng thư mục chứa file div.html. chúng ta sẽ viết mã CSS trong file này.

Trong bài viết này có sử dụng đến Margin và Padding, tuy nhiên mỗi trình duyệt lại hiểu các giá trị này theo một kiểu, cho nên để tránh phiền toái việc đầu tiên chúng ta nên làm là reset 2 giá trị này về 0 với lệnh sau:

CODE

*{ margin: 0; padding: 0 }

Tiếp theo chúng ta sẽ quy định cho độ rộng của toàn bộ trang là 950px và canh giữa màn hình bằng các viết mã cho thẻ div lớn bao quanh mà chúng ta đã tạo ra ban đầu.

CODE

#mainWap{
    width: 950px;
    margin: 0 auto;
}

Khi ta sử dụng margin: 0 auto; thì thẻ div lớn sẽ được canh giữa màn hình.

Theo hình trên ta thấy, thành phần header cách thành phần left và right 1 khoảng 10px, đó chính là margin-bottom của header đối left và right. Và ta sẽ viết mã cho header như sau:

CODE

#header{
    background(): green;
    margin-bottom: 10px;
    padding: 10px;
}

Tiếp theo để left và right tạo thành 2 cột nằm song song ta cần sử dụng đển thuộc tính Float để cố định 2 thành phần này, đồng thời gán cho chúng một kích thước (width) nào đó. Đầu tiên ta có cố định thành phần left về bên trái và gán thuộc tính width = 200px. Mã CSS như sau:

CODE

#left{
     float: left;
     width:  200px;
     background(): #f98000;
     padding: 10px;
     min-height: 450px;
}

Lúc này thành phần left sẽ được di chuyển về tận cùng bên trái của thẻ div mẹ (id=”mainWap”) và có độ lớn là:

200px + 10px left padding + 10px right padding = 220px; (1)

Tiếp theo ta viết mã CSS cho thành phần right như sau:

CODE

#right{
    float: right;
    width: 700px;
    padding: 10px;
    background(): #e4e4e4;
    min-height: 450px;
}

Lúc này thành phần right  sẽ được di chuyển về tận cùng bên phải của thẻ div mẹ (id=”mainWap”) và có độ lớn là:

700px + 10px left padding + 10px right padding = 720px; (2)

Như ta đã biết khi thuộc tính float được khai báo cho một thành phần nào đó thì thành phần đó sẽ bị dịch chuyển tận cùng về phía bên trái nếu được float:left và bên phải nếu được float:right so với thành phần mẹ và tạo khoảng trống cho các thành phần khác di chuyển lên lấp đầy khoảng trống nếu còn.

Kết hợp (1) và (2) ta thấy rằng: Thành phần left được float:left và có độ rộng 220px, như vậy nó được cố định về bên trái và tạo ra khoảng trống còn lại trong thẻ div mẹ là:

950 (độ rộng thẻ div bao quanh) – 220 (left) = 730px;

Như vậy đủ độ lớn để thành phần right (720px) di chuyển lên nằm song song với thành phần left và tạo thành 2 cột. Đương nhiên nó được cố định về bên phải vì có float:right.

Độ lớn của left và right = 220 + 720 = 940px, như vậy ta thấy còn dư 10px trong thẻ div bao quanh. Đó chính là khoảng cách 10px giữa left và right (như trên hình).

Khi sử dụng float, các thành phần bên dưới luôn luốn có xu hướng di chuyển lên trên. Và ở đây thì thành phần footer cũng vậy, nó tràn lên phía trên, và đó không phải là điều mà chúng ta mong muốn.

Do đó đây là lúc chúng ta cần sử dụng đến thuộc tính clear cho thành phần <div class=”clr”> nằm trước footer để ngăn cho footer không tràn lên trên.

CODE

.clr{clear: both;}

Và cuối cùng là CSS cho thành phần footer có khoảng cách 10px so với left và right, đó chính là margin-top của footer:

CODE

#footer{
    background(): green;
    margin-top: 10px;
    padding: 10px;
}

Thuộc tính min-height

Ở trên các bạn thấy mình có sử dụng thuộc tính min-height trong 2 thành phần left và right. Mục đích của việc này là để quy định chiều cao tối thiểu của một thành phần nào đó khi độ lớn về chiều cao của các thành phần bên trong nó chưa thực sự đủ lớn như mong muốn của ta. Nói đơn giản hơn, bây giờ trong các thành phần left và right chưa có nội dung gì cả, nhưng mình vẫn muốn nó có độ cao là 450px, lúc đó mình sẽ thêm thuộc tính min-height:450px. Khi độ cao của các thành phần bên trong nó vượt quá giá trị min-height, thì độ cao của một thành phần nào đó sẽ bằng tổng độ cao của các thành phần bên trong nó.

Chú ý: Thuộc tính này không hoạt động trong trình duyệt Internet Explorer.

KẾT LUẬN

Như vậy là ta đã dựng được một khung giao diện với thẻ div kết hợp với CSS, đây chỉ là một khung giao diện đơn giản để các bạn có được những khái niệm về cách thiết kế giao diện với div. Qua bài học này chúng ta đã biết được:

•    Hiểu về cách thiết kế 1 giao diện với div

•    Hiểu thêm về Margin và Padding.

•    Cách tính toán độ lớn của Box.

•    Biết cách sử dụng Float và Clear, min-heịght.

•    Dựng được giao diện đơn giản với div.

Rate this post
Chia sẻ
Từ khóa: php nâng cao

Mới nhất

Tại sao nên dùng thiết bị vệ sinh thông minh?

Bạn có từng khó chịu khi ngồi bồn cầu lạnh ngắt trong mùa đông hay…

4 năm trước

Thuê chung cư 2 phòng ngủ có phù hợp với gia đình trẻ không?

Bạn đang thắc mắc thuê chung cư 2 phòng ngủ có phù hợp với gia…

4 năm trước

TOP 9 website đăng tin mua bán nhà đất hiệu quả tại Ninh Thuận

Một trong những kinh nghiệm giúp việc mua bán nhà đất diễn ra hiệu quả,…

4 năm trước

Mua bộ bàn làm việc tại nhà ở Hà Nội cho người tuổi Ngọ

Khi chọn mua bộ bàn làm việc tại nhà, gia chủ tuổi Ngọ nên cân…

4 năm trước

Mua bàn làm việc nhân viên giá rẻ cho văn phòng 30m2

Hiện nay, chi phí để thuê mặt bằng công ty tại các thành phố lớn…

4 năm trước

Nuôi cá koi bằng thùng xốp có tốt không?

Hồ cá Koi bằng thùng xốp được khá nhiều người sử dụng để nuôi cá…

4 năm trước