2008-09-19 43 views
24

Vì vậy, sự sụp đổ lề cơ bản xảy ra khi bạn không đặt bất kỳ lề hoặc đệm hoặc đường viền nào thành phần tử div đã cho?Thu gọn CSS Thu gọn

Trả lời

73

số Khi bạn có hai lề dọc liền kề, càng lớn của hai được sử dụng và người kia bị bỏ qua. Ví dụ, nếu bạn có hai phần tử hiển thị khối, A, tiếp theo là B bên dưới nó, và A có lề dưới của 3em, trong khi B có lề trên của 2em, thì khoảng cách giữa chúng sẽ là 3em.

Nếu bạn đặt đường viền hoặc đệm, điều này sẽ ngăn không cho sự sụp đổ xảy ra. Trong ví dụ trên, khoảng cách giữa hai phần tử sẽ là 5em.

Nếu bạn không đặt bất kỳ lề nào, thì sẽ không có bất kỳ lề nào bị thu gọn. Nó không có gì để làm với loại phần tử được sử dụng - nó có thể áp dụng cho tất cả các loại phần tử, không chỉ các phần tử <div>.

Đọc the CSS 2.1 specification để biết thêm chi tiết.

+6

Sẽ upvote câu trả lời, được cung cấp một vài thay đổi: 1. Trong ví dụ '3em/2em', bạn có thể muốn sử dụng các đơn vị tuyệt đối thay thế; trong trường hợp này, 2em/có thể/lớn hơn 3em 2. "Nếu bạn đặt đường viền hoặc đệm ..." - điều này chỉ đúng trong một số trường hợp nhất định, không phải trong tiêu chuẩn 'A tiếp theo B' –

+0

3. "Nếu bạn không đặt bất kỳ ..." thông thường đúng cho DIV nhưng việc thu hẹp margin S W ảnh hưởng đến hầu hết các phần tử theo mặc định –

+7

+1 - câu trả lời hay. Ngoài ra, việc thu hẹp ký quỹ không xảy ra khi các phần tử được thả nổi, được định vị hoàn toàn hoặc khối nội tuyến. Thông tin khác: http://reference.sitepoint.com/css/collapsingmargins –

4

"biểu thức lề thu hẹp có nghĩa là lề liền kề (không có nội dung, vùng đệm hoặc khu vực biên giới không trống) của hai hoặc nhiều ô (có thể cạnh nhau hoặc lồng nhau) kết hợp để tạo thành một lề duy nhất. "

Nguồn: Box Model - 8.3.1 Collapsing margins

Các vấn đề liên quan