2014-07-08 13 views
37

Dưới đây là một minh chứng của vấn đề (thử nghiệm trong Firefox và Chrome):Làm thế nào để thoát khỏi không gian thêm dưới đây svg trong div yếu tố

<div style="background-color: red;"><svg height="100px" width="100" style="background-color: blue;"></svg></div> 

http://jsfiddle.net/EXLSF/

Thông báo các phụ red không gian bên trong div bên dưới màu xanh svg.

Đã cố gắng thiết lập paddingmargin cả hai phần tử thành 0, nhưng không có may mắn.

+0

Dường như liên quan đến vấn đề tương tự với hình ảnh, ví dụ: http://stackoverflow.com/questions/7774814/remove-white-space-below-image. – Daniel

Trả lời

65

Bạn cần display: block; trên svg của bạn.

<svg style="display: block;"></svg> 

Điều này là do các yếu tố inline-block (như <svg><img>) ngồi trên cơ sở văn bản. Các không gian thêm bạn đang thấy là không gian còn lại để chứa con cháu nhân vật (đuôi trên 'y', 'g' vv).

Bạn cũng có thể sử dụng vertical-align:top nếu bạn cần để giữ cho nó inline hoặc inline-block

+0

Tuyệt vời. Vì vậy, tất cả các yếu tố nội tuyến thêm không gian màu trắng ở phía dưới? – clapas

+0

tuyệt vời, tôi không biết nó sẽ dễ dàng như thế! –

+0

'inline-block' không hoạt động, nhưng' block' đã làm! – zenw0lf

0

Hãy thử thêm height:100px để div và sử dụng một height="100%" trên svg:

<div style="background-color:red;height:100px"> 
    <svg height="100%" width="100" style="background-color:blue;"></svg> 
</div> 
+3

Cảm ơn nhận xét của bạn. Điều này làm việc tốt, nhưng trở nên khó khăn khi người ta không biết chiều cao của 'svg' trước. – Daniel

1

chỉ cần thêm chiều cao cho chính phần tử div

<div style="background-color: red;height:100px"><svg height="100px" width="100" style="background-color: blue;"></svg></div> 
2

Thay đổi display tài sản của svg là block.

4

svg là một yếu tố inline. inline yếu tố rời khỏi không gian trắng.

Giải pháp:

Thêm display:block-svg, hoặc làm cho chiều cao của div cha mẹ giống như svg.

DEMO here.

+0

Cảm ơn bạn đã giải thích. – Nahn

+0

@Nahn welcome :) – Hiral

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