19

Margin và Padding trong CSS

by PT on 02/04/2011, Lượt xem: 22.733

Trong bài Box Model trong CSS mình cũng có giới thiệu qua về Margin và Padding, bài viết này chúng ta sẽ tìm hiểu kỹ hơn và cách viết tắt đối với margin và padding.

1. Margin

Khi ta khai báo thuộc tính Margin (canh lề) cho một thành phần nào đó, thì nó sẽ tạo ra một khoảng cách giữa thành phần đó với các thành phần xung quanh nó (top, right, bottom và left). Tạo ra sự phân chia giữa các thành phần trong trang web được thể hiện rõ ràng hơn.

Giá trị của margin

  • auto: tự động canh đều 2 bên left và right, thường được sử dụng để canh giữa màn hình cho toàn bộ trang web.
  • Kích thước (pixels, pt, em . . .)
  • % kích thước của thành phần chứa nó.

Cách khai báo margin

Ví dụ bên dưới sẽ khai báo margin (top, right, left, bottom) cho thành phần <p> có class=”first”

p.first{
   margin-top:10px;
   margin-right:10px;
   margin-bottom:15px;
   margin-left:15px;
}
<p class="first">
    Đoạn văn bản này cách phía trên 10px, bên trái 15px, bên phải 10px; phía dưới 15px, không có padding
</p>

Kết quả

Đoạn văn bản này cách phía trên 10px, bên trái 15px, bên phải 10px; phía dưới 15px, không có padding

2. Padding

Padding là phần nằm giữa phần hiển thị nội dung và đường viền (border). Khi một thành phần được khai báo padding thì sẽ tạo ra một khoảng trống với dường viền giúp nội dung dễ nhìn hơn.
Giá trị của padding

  • Kích thước (pixels, pt, em . . .)
  • % kích thước của thành phần chứa nó.

Cách khai báo padding

Ví dụ sau khai báo padding cho thành phần <p> có class=”two”

p.two{
   padding-top:2px;
   padding-right: 3px;
   padding-bottom:4px;
   padding-left:5px
}

Đoạn văn bản này có padding-top:5px, padding-bottom:5px, padding-right: 5px, padding-left:5px và không có margin.

Ta thấy giữa đoạn văn bản và đường viền có một khoảng cách là 5px nên dễ nhìn hơn đoạn văn bản thứ nhất, không có padding.

3. Cách viết tắt đối với Margin và Padding

ở các ví dụ trên ta nhận thấy, margin và padding được khai báo cho từng cạnh (top, right, bottom, left) riêng biệt. Để đơn giản hơn chúng ta gộp chung tất cả các cạnh lại, đây chính là cách viết tắt đối với margin và padding.
Giả sử bây giờ ta viết margin cho thành phần p, chúng ta có thể viết đầy đủ như sau:

p{ margin-top: 10px; margin-right: 10px; margin-left: 15px; margin-bottom: 15px}

Nhưng để đơn giản hơn chúng ta có thể viết như sau:

p{ margin: 10px 10px 15px 15px}

Thứ tự của các cạnh ở cách viết này tuân theo chiều kim đồng hồ bắt dầu từ : top – right – bottom – left.
Tuy nhiên chúng ta có thể không cần phải viết đầy đủ giá trị cho bốn cạnh mà có thể viết 3, hoặc 2, hay thậm chí chỉ một giá trị. Nếu một trong 4 giá trị bị thiếu, thì nó sẽ lấy giá trị của cạnh đối diện.
Ví dụ

p{ margin: 10px 10px 7px}

ở ví dụ này ta thấy bị thiếu một giá trị của cạnh bên trái, do đó nó sẽ lấy giá trị của cạnh bên phải, do đó có giá trị là 10px.

p{ margin: 10px 5px}

ở ví dụ này ta thấy thiếu cạnh bên trái và cạnh dưới, do đó cạnh dưới sẽ lấy giá trị của cạnh trên (10px), cạnh bên trái sẽ lấy giá trị của cạnh bên phải (5px).
Trong trường hợp chỉ có một giá trị được khai báo:

p{ margin: 5px}

Thì tất cả các cạnh đều có margin là 5px.
Cách viết tắt cho padding cũng tương tự đối với margin.

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

{ 17 comments… read them below or add one }

Ewebvn yusheng 22/06/2011 02:22:15 at 02:22

Hi.. Mình đang học web..bài viết bạn rất hữu ích, rất dễ hiểu..cám ơn bạn nhiều nha.. Cho mình hỏi..để thiết kế 1 trang web thì cần học bao lâu vậy…

Reply

Ewebvn hai 17/09/2011 01:58:14 at 13:58

Thiết kế 1 trang Web có lẽ cần 5s, còn thiết kế 1 trang Web chuyên nghiệp có lẽ cần 5 năm. ^^

Reply

Ewebvn toan 06/07/2011 04:25:59 at 16:25

Thank bạn vì bài viết rất hay

Reply

Ewebvn chuong 27/08/2011 01:38:52 at 13:38

Thanks nha, Bài viết hay lắm

Reply

Ewebvn Happypham 08/10/2011 09:25:55 at 09:25

Cảm ơn bạn vì bài viết rất hữu ích và dễ hiểu. Mog rằng sẽ có nhiều bài viết như vậy nữa.

Reply

Ewebvn viendaxanh_jonny 17/10/2011 04:39:27 at 16:39

cảm ơn bạn vì bài viết :)

Reply

Ewebvn btk 18/10/2011 11:15:36 at 11:15

thank u

Reply

Ewebvn phương nam 18/10/2011 08:12:40 at 20:12

Thanks. Rất hay

Reply

Ewebvn Cao Huu Tu 03/03/2012 09:34:13 at 21:34

Bài viết rất hay

Reply

Ewebvn Nhat Tan 13/04/2012 06:55:35 at 18:55

Cám ơn bạn , người mới học chỉ cần những bài như vầy , thông tin hữu ích và dễ hiểu . I love it !!

Reply

Ewebvn Wind_sdc 17/05/2012 02:11:37 at 14:11

Bài viết rất rõ ràng. Blog mình edit lại temp đc củng nhờ kiến thức này của bạn .
Thanks!

Reply

Ewebvn hoangdesign 13/06/2012 06:05:35 at 06:05

Cám ơn bạn vì bài viết rất dễ hiểu
Thanks !

Reply

Ewebvn manhcuong 31/08/2012 04:53:47 at 16:53

Bài viết quá tuyệt vời…cám ơn ewebvn rất nhiều

Reply

Ewebvn Thang 24/09/2012 04:44:04 at 16:44

Mình đã gỡ rối được vấn đề cũng nhờ bài viết này. Cám ơn bạn nha

Reply

Ewebvn Lão Còi 05/11/2012 12:34:13 at 00:34

Hôm nay mới phân biệt được cái này. Cảm ơn eweb rất nhiều.

Reply

Ewebvn Mai văn toàn 28/12/2012 09:14:44 at 09:14

Anh ơi anh cho em hỏi là bây giờ em muốn căn cho một khung ra chính giữa cho tất cả các size màn hình, cả trên, duới, trái, phải thì phải làm thế nào ạ.tại vì em chỉ biết căn trái, phải thì dùng giá trị auto cho thẻ Margin.
Cảm ơn anh nhiều.

Reply

Ewebvn Tài liệu học tập 29/04/2013 09:48:58 at 09:48

cảm ơn bạn bây giờ mình đã hiểu

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

{ 2 trackbacks }