2016-08-04 2 views
1

Вот мой код:Почему вычисляемая высота DIV больше, чем ее содержимое (например, svg), когда высота указана как «100%»?

<!DOCTYPE html> 
 
<html> 
 

 
<body> 
 
    <div align="center" style="width:100%; height:100%; padding: 0px; margin: 0px;"> 
 
    <svg height="500" version="1.1" width="1000" xmlns="http://www.w3.org/2000/svg" id="raphael-paper-0" style="overflow: hidden; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -webkit-user-select: none; cursor: default; position: relative; background-color: rgb(255, 255, 255);"> 
 
     <circle cx="500" cy="250" r="100" stroke="green" stroke-width="4" fill="yellow" /> 
 
    </svg> 
 
    </div> 
 
</body> 
 

 
</html>

я вычисленный размер SVG в 1000 X 500, но вычисленный размер DIV является 1264 X 504.

Ширина DIV - 1264px - это ширина страницы, поскольку она предоставляется как 100%, т. Е. Понимается, но почему высота 504px, тогда как высота SVG составляет 500 пикселей?

Спасибо заранее.

ответ

2

Это потому, что <svg> является встроенным элементом - установка его на display: block; удалит эти эффекты, например. вызванных высотой линии.

svg { 
 
    display: block; 
 
}
<!DOCTYPE html> 
 
<html> 
 

 
<body> 
 
    <div align="center" style="width:100%; height:100%; padding: 0px; margin: 0px;"> 
 
    <svg height="500" version="1.1" width="1000" xmlns="http://www.w3.org/2000/svg" id="raphael-paper-0" style="overflow: hidden; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -webkit-user-select: none; cursor: default; position: relative; background-color: rgb(255, 255, 255);"> 
 
     <circle cx="500" cy="250" r="100" stroke="green" stroke-width="4" fill="yellow" /> 
 
    </svg> 
 
    </div> 
 
</body> 
 

 
</html>

Смежные вопросы