2010-10-29 16 views
15

yếu tố inline-block không có văn bản làm cho khác nhau

<div style="background-color:red"> 
 
    <div style="display:inline-block;background-color:green;height:20px;width:20px;"></div> 
 
</div> 
 
<div style="background-color:yellow"> 
 
    <div style="display:inline-block;background-color:green;height:20px;width:20px;">hi</div> 
 
</div>

Khi render trong FF hoặc Chrome chiều cao của div đỏ là 26px, trong khi chiều cao của div vàng là 20px. Làm thế nào tôi có thể làm cho div màu đỏ render giống như div màu vàng, nhưng không có nó chứa bất kỳ văn bản nào?

Trả lời

34

chỉ là một suy nghĩ:

miễn là không có văn bản trong div, nó đối xử như một inline-hình ảnh (hay cái gì khác), và do đó, nó vertical-align được thiết lập để 'cơ sở' (hoặc văn bản dưới cùng hoặc bất kỳ thứ gì) thay vì 'dưới cùng'.

giải pháp:

để sửa đó, thiết lập vertical-align: bottom; trên div bên trong của bạn. có hoàn toàn không cần phải đặt một không gian hoặc yếu tố vô hình vào nó, giống như những người khác đề cập (nhưng đó sẽ là một (xấu xí) giải pháp, quá)

+0

Aha! Điều đó giải quyết vấn đề một cách độc đáo. Cảm ơn! –

+0

Niềm vui của tôi! nếu đây là câu trả lời bạn đang tìm kiếm, nó sẽ là tốt đẹp để chấp nhận nó bằng cách đánh dấu tick-đánh dấu bên trái (bạn nên luôn luôn chấp nhận một câu trả lời nó trả lời câu hỏi của bạn) – oezi

+3

Yeeha !! Tôi ghét CSS cho các vấn đề như thế này, nhưng tôi yêu SO cho những người như bạn – NaturalBornCamper

1

Làm thế nào để đặt một không gian rộng bằng không (&#8203;) trong nút "trống"?

0

Thật đáng tiếc, nhưng bạn có thể thêm &nbsp; vào div trống.

inline-block là loại hiển thị vui nhộn và không có nội dung vì các thuộc tính khác như font-sizeline-height thực sự có thể tăng yếu tố cao hơn 20px.

0

Nếu bạn muốn có một chiều cao cụ thể, sử dụng

min-height: 1em; 

Sử dụng không gian của một số loại là một chiều cao khác nhau trong một số trường hợp.

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