2016-08-04 16 views
1

Hier ist mein Code:Warum ist die berechnete Höhe von DIV größer als ihr Inhalt (wie Svg), wenn ihre Höhe als "100%" angegeben ist?

<!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>

ich die berechnete Dimension von SVG bekommen als 1000 x 500, aber die berechnete Dimension von DIV ist 1264 X 504.

Breite von DIV - 1264px ist die Breite der Seite, wie es als 100% zur Verfügung gestellt wird, dh, verstanden, aber warum die Höhe 504px ist, während die SVG-Höhe 500px ist?

Vielen Dank im Voraus.

Antwort

2

Es ist, weil <svg> ein Inline-Element ist - Einstellung auf display: block; wird diese Effekte z. verursacht von einer Zeilenhöhe.

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>