5

Độ lớn thực sự của Box

by PT on 03/04/2011, Lượt xem: 6.738

Ở bài viết về Box Model trong CSS, mình đã giới thiệu với các bạn về các thành phần của Box Model, nhưng đó chỉ là những khái niệm cơ bản. Bài viết này chúng ta sẽ cùng tìm hiểu về độ lớn thực sực sự của Box (ta có thể gọi là các tính toán trong Box model). Vậy:

  1. Tại sao phải tính toán độ lớn của Box?
  2. Cách tính độ lớn của Box như thế nào?

Trong thiết kế giao diện chúng ta luôn phải biết được thành phần bên trái rộng bao nhiêu px hay bao nhiêu %, rồi header, footer, right. . . Lúc đó chúng ta phải biết được độ lớn của các thành phần này để bố trí chúng cho hợp lý.

Khi chúng ta khai báo thuộc tính width và height của một thành phần nào đó trong CSS. Thì đó là độ lớn của vùng hiển thị dữ liệu (content area – là phần nằm trong cùng trong mô hình Box Model) chứ không phải độ lớn của Box. Chúng ta hãy cùng đi trả lời câu hỏi thứ 2 để biết được độ lớn của Box (độ lớn thực sự).

Giả sử chúng ta có một thành phần <div id=”mybox”> và khai báo CSS cho thành phần này như sau:

#mybox{
    width: 150px;
    height: 100px;
    padding:10px;
    border: 5px solid black;
    margin:10px
}

Thì Box này có độ lớn: rộng 200px và cao 150px.

Tại sao không phải là 150x100px như ta đã khai báo width và height. Như đã nói thì đây chỉ là độ lớn của vùng hiển thị dữ liệu mà thôi. Chúng ta đã biết mô hình Box Model gồm có padding, border, margin và vùng hiển thị dữ liệu. Do đó độ lớn của Box phải là tổng các giá trị này.

Như vậy thì ví dụ trên được tính toán như sau:

150px (width)
+ 20px (left + right padding)
+ 10px (left + right border)
+ 20px (left + right margin)
= 200px (chiều rộng)

Tương tự thế ta tính được chiều cao là 150px.

Công thức chung để tính độ lớn của Box như sau:

  • Rộng = width + left padding + right padding + left border + right border + left margin + right margin
  • Cao = height + top padding + bottom padding + top border + bottom border + top margin + bottom margin

KẾT LUẬN

Vậy là chúng ta đã trả lời được 2 câu hỏi đã đưa ra, qua bài này chúng ta đã biết được:

  • Cách tính toán độ lớn của Box (độ lớn thực sự của một thành phần nào đó).
  • Thuộc tính width và height trong CSS.
Nếu bạn thấy bài viết hữu ích, hãy nhấn +1 và các liên kết chia sẻ để website ngày càng phát triển hơn. Xin cám ơn bạn!
Hoc thiet ke web Peter Tran là một Coder, công việc hiện tại của anh ấy là phát triển ứng dụng web với PHP, thời gian rảnh anh ấy thường viết Blog chia sẻ những kiến thức về lập trình và phát triển website. Hãy xem trang cá nhân của anh ấy trên FacebookTwitter

Bài liên quan

{ 5 comments… read them below or add one }

Ewebvn Trung 21/04/2011 10:41:54 at 22:41

Phần này ko fải Browser nào cũng hiểu là như thế :D . Với trình duyệt hiện đại test thì tất cả đều hiểu là như thế. Nhưng với IE 6 thì nó sẽ hiểu khác đấy bác ah. Mà giờ quán nét toàn sài IE6

Reply

Ewebvn nguyen dat 19/09/2011 06:09:53 at 18:09

voi voi IE6 phai lam sao bay gio cac ban.Minh cung gap loi do nhung chua fix duoc tren IE 6, thang IE kho chiu qua.Mong duoc su chi giao

Reply

Ewebvn Peter Tran 19/09/2011 10:46:21 at 22:46

Bạn có thể xem bài viết này để giải quyết vấn đề: http://www.ewebvn.com/khac-phuc-loi-double-margin-ie-6.html
Thân!

Reply

Ewebvn Hieu 21/07/2012 10:15:27 at 22:15

Đối với IE các thuộc tính của box ví dụ như: margin, padding… thì khi khai báo trong CSS ta sử dụng cú pháp _margin: value px;

Reply

Ewebvn Tran Anh 20/11/2012 10:31:17 at 22:31

Hi anh ơi em làm như ví dụ của anh nhưng em thêm 1 cột ở giữa nữa với code HTML:

<html>
<head>
<title>Vidu</title>
&ltlink rel = “stylesheet” type = “text/css” href = “style.css”/>
&lt/head>
<body>
<div id=&quotmainWap&quot>
<div id=&quotheader&quot>
<h1>Header</h1>
</div>
<div id=&quotleft&quot>
Noi dung cot trai…
</div>
<div id = &quotcenter&quot>
Noi dung cot giua…
</div>
<div id=&quotright&quot>
Noi dung cot phai…
</div>
<div class=&quotclr&quot></div>
<div id=&quotfooter&quot>
Noi dung footer…
</div>
</div>
</body>
</html>

và code CSS:

*{ margin: 0; padding: 0 }
#mainWap {width: 950px;
margin: 0 auto;}
#header {background: green;
margin-bottom: 10px;
padding: 10px}
#left {float: left;
width: 100px;
background-color: #00FF00;
padding: 10px;
min-height: 450px}
#center {float: left;
width: 600px;
background-color: yellow;
padding: 10px;
min-height: 450px}
#right {float: right;
width: 170px;
padding: 10px;
background-color: #FF00FF;
min-height: 450px}
.clr{clear: both}
#footer {background: green;
margin-top: 10px;
padding: 10px}

Nhưng sao của em cái cột ở giữa nó dính liền với cột bên trái còn khoảng cách giữa 2 cột trái với cột phải cách cột giữa mỗi bên 10px thì nó lại cách cột phải quá xa. Em đã theo cách tinh độ lớn của Box mà không được. Anh giúp em với !

Reply

Leave a Comment

AUTO[F9] TELEX VNI VIQR

Đặt code trong cặp thẻ [code] code của bạn [/code]

Những thắc mắc về lỗi code, ..., vui lòng gửi kèm demo