2013-09-27 5 views
6
<body style="width:1000px;height:1000px;"> 
    <div id="d" style="display:inline-block;"> 
     <svg id="s" xmlns="http://www.w3.org/2000/svg" version="1.1" width="200px" height="200px"> 
      <rect width="200px" height="200px" style="fill:rgb(0,0,255);"/> 
     </svg> 
    </div> 
</body> 

var div = document.getElementById('d'); 
var rect = div.getBoundingClientRect(); 

alert(rect.width); //200 
alert(rect.height); //205 (in safari), 204.5 in other browsers 

var svg = document.getElementById('s'); 
var rect = svg.getBBox(); 

alert(rect.width); //200 
alert(rect.height); //200 

Я пытаюсь получить ширину и высоту родительского div. По какой-то причине getBoudingClientRect дает мне неправильное значение высоты (205 или 204,5). Ширина правильная, но высота отключена. Есть идеи?getBoundingClientRect, неверное значение высоты для встроенного SVG

http://jsfiddle.net/jTvaF/5/

+0

Высота правильная, высота изображения 204,5. – Stijn

+0

он должен быть 200px – user2800679

+3

Возможный дубликат [имеется пробел 4px под элементами холста/видео/аудио в HTML5] (http://stackoverflow.com/questions/8600393/there-is-a-4px-gap-below- canvas-video-audio-elements-in-html5) – Stijn

ответ

3

Дайте SVG свойство отображения: блок; и он должен начать корректно выводить.

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