Tôi đang cố gắng tạo hình chữ nhật SVG xung quanh văn bản SVG. Khi tôi muốn sử dụng .width()
hoặc .height()
trên văn bản SVG, Chrome sẽ trả về những gì tôi mong đợi nhưng Firefox thì không. Đây là liên kết đến jsfiddle bản demo tôi đã tạo.Chiều rộng và chiều cao của JQuery không hoạt động trên svg trong firefox
$(document).ready(function(){
var $rect = $(document.createElementNS('http://www.w3.org/2000/svg', 'rect'));
var x = 50;
var y = 50;
var fontSize = 10;
$rect.attr({
'x' : x,
'y' : y,
'stroke' : 'black',
'stroke-width' : 1,
'fill' : 'white'
});
$rect.appendTo($("#svgArea"));
var $svgText = $(document.createElementNS('http://www.w3.org/2000/svg', 'text'));
$svgText.attr({
'x': x,
'y': y,
'font-family' : 'verdana',
'font-weight': 'bold',
'font-size' : fontSize
});
var node = document.createTextNode("Lorem Ipsum");
$svgText.append(node);
$svgText.appendTo($("#svgArea"));
var textWidth = $svgText.width();
var textHeight = $svgText.height();
$rect.attr({
'x': x,
'y': y - textHeight + 3,
'width' : textWidth + 2,
'height': textHeight
});
});
html
<svg height="200px" width="200px" id="svgArea">
</svg>
css
#svgArea{
border: 1px solid black;
}
jQuery được thiết kế để làm việc với chỉ các phần tử HTML. Chỉ một số chức năng giới hạn của nó sẽ hoạt động trên các phần tử SVG. –