chênh lệch giữa chiều cao css: 100% so với chiều cao: tự động


167

Tôi đã được hỏi một câu hỏi trong một cuộc phỏng vấn rằng "sự khác biệt giữa css height:100%và là height:autogì?"

Có ai có thể giải thích?

Câu trả lời:


236

height: 100% cho phần tử 100% chiều cao của thùng chứa mẹ của nó.

height: auto có nghĩa là chiều cao phần tử sẽ phụ thuộc vào chiều cao của con cái nó.

Hãy xem xét các ví dụ sau:

chiều cao: 100%

<div style="height: 50px">
    <div id="innerDiv" style="height: 100%">
    </div>
</div>

#innerDiv sắp có height: 50px

chiều cao: tự động

<div style="height: 50px">
    <div id="innerDiv" style="height: auto">
          <div id="evenInner" style="height: 10px">
          </div>
    </div>
</div>

#innerDiv sắp có height: 10px


5
Tôi nghĩ rằng trong trường hợp 'height: auto #innerDiv sẽ được 10px + the size it needs for its own content- hãy xem jsfiddle
Sinh ra ToCode

@M Biến Mishra: Thiết kế đáp ứng tốt nhất là gì? Đặt chiều cao của phần tử con hoặc phần tử container và để cho phần tử kia lấy được chiều cao của nó?
John Strood

@Djack, tất cả phụ thuộc vào giao diện, cảm nhận và hành vi bạn mong đợi từ thiết kế của bạn trên các màn hình khác nhau và do đó bạn viết css của mình. Không có quy tắc toàn cầu chung chung như setting the height of the child element or the container element. Bạn có thể làm bất cứ điều gì bạn có, để đạt được thiết kế của bạn, miễn là bạn tuân theo sự nhất quán nhất định, tránh trùng lặp, giảm công việc lại, nhóm các bố cục chung. Nói tóm lại, phải có một hệ thống / mẫu cho công việc của bạn, để dễ đọc và thay đổi, và tất nhiên thực tế là nó sẽ hoạt động
Manish Mishra

2
Tôi nghĩ rằng một cách suy nghĩ tốt về tự động là bạn đang 'không đặt cược' - nó giống như không được thiết lập.
niico

1
Tôi đã sửa đổi câu đố mà BornToCode đã chia sẻ ở trên, để làm cho nó rõ ràng hơn autokhiến cho phần tử phát triển để chứa các nội dung của nó, VÀ nội dung của nó. Ngược lại, giá trị Chiều cao cố định không tăng (hoặc hiển thị) nội dung không thể vừa với chiều cao được khai báo. jsfiddle.net/m3f8y6xr/1 Câu trả lời này, tôi tin rằng, không đủ từ ngữ để làm cho nó buồn cười rằng phần tử sẽ phát triển để bao gồm tất cả nội dung, cho dù đó là văn bản của chính nó, hoặc nội dung của một đứa trẻ. Tất nhiên có thể lập luận rằng văn bản của chính nó cũng là một đứa trẻ. Điều này cung cấp xác nhận trực quan của hành vi.
SherylHohman

5

Một chiều cao của 100% cho là, có lẽ, chiều cao của bạn cửa sổ bên trong của trình duyệt , bởi vì đó là chiều cao của mẹ , trang. Một autochiều cao sẽ là chiều cao tối thiểu của cần thiết để chứa .


3
Điều này không nhất thiết đúng nếu phần tử cha là một phần có chiều cao xác định không vừa với kích thước cửa sổ của trình duyệt
goonerify

1

Mặc định là height: autotrong trình duyệt, nhưng height: X%Xác định chiều cao theo tỷ lệ phần trăm của khối chứa.


0

height: 100% hoạt động nếu container cha có thuộc tính chiều cao được chỉ định khác, nó sẽ không hoạt động

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.