Tôi đang sử dụng YUI và cần có chiều rộng thực của phần tử. Chiều rộng của một phần tử có thể được xác định như sau.YUI - Nhận chiều rộng phần tử đúng?
width + border-left + border-right + padding-left + padding-right + margin-left + margin-right.
Dưới đây là những gì tôi đã đưa ra. Nó xuất hiện để được làm việc. Tôi đã tự hỏi nếu đây là cách tốt nhất để đi về việc xác định điều này hoặc là có một cách hiệu quả hơn?
YUI().use('node', function(Y) {
var node = Y.one('#nav');
var nodeWidth = trueElementWidth(node);
alert(nodeWidth);
});
function trueElementWidth(el) {
var width = 0;
var attributes = ['border-left', 'border-right', 'padding-left', 'padding-right', 'width', 'margin-right', 'margin-left'];
for(var i=0; i < attributes.length; i++) {
width = width + removePx(el.getComputedStyle(attributes[i]));
}
return width;
}
function removePx(el) {
el = el.toString();
length = el.length - 2;
elDimension = parseInt(el.substring(0, length));
return isNaN(elDimension) ? 0 : elDimension;
}
Trả lời nhanh: truy cập quircksmode.org, họ giải quyết vấn đề trình duyệt chéo có – Dan