[]HTMLDivElement 中contextWidth计算有问题

HTMLDivElement 设置一个css文本后调用contextWidth获取实际宽度是0
/**
* @private
* @param out
*/
override public function _addToLayout(out:Vector.<ILayout>):void {
layout();
//!_style.absolute && out.push(this);
}
这个重写有问题,会导致计算实际宽高信息的时候多次执行layout()导致最后结果是0.我将这个重写方法注释掉就能正常获取了
已邀请:

cuixueying

赞同来自:

不支持标签嵌套的方式,你改成以下代码是可以正常的
var div:HTMLDivElement = new HTMLDivElement();
var str:String = "<span style='font:48px;color:#ffffff;'>白色文本</span>";
div.innerHTML = str;
trace(div.contextWidth);
可以把你div的样式,给span赋值上,得到同样的效果!

luuren

赞同来自:

var div:HTMLDivElement = new HTMLDivElement();
var str:String = "<div style='text-align:center;width:700px'><span style='font:48px;color:#ffffff;'>白色文本</span></div>";
div.innerHTML = str;
trace(div.contextWidth);
 
理论上结果应该是700,实际上获得的是0

要回复问题请先

商务合作
商务合作