检索CSS值的百分比(在firefox中)
Retrieving percentage CSS values (in firefox)
我在firefox上检索确切的css属性值(在'%'中)有问题。
假设我们有这样一个非常简单的标记:
<div id="box">box</div>
和这个css:
#box{
width:200px;
height:200px;
left:10%;
position:absolute;
background:red;
}
和我想检索左侧位置(在'%'中)的js
使用mootools (demo -> http://jsfiddle.net/steweb/AWdzB/):
var left = $('box').getStyle('left');
或jQuery (demo -> http://jsfiddle.net/steweb/RaVyU/):
var left = $('#box').css('left');
或纯js (demo -> http://jsfiddle.net/steweb/tUAKA/):
)function getStyle(el,styleProp){ //from ppk's quirksmode
var x = document.getElementById(el);
if (x.currentStyle)
var y = x.currentStyle[styleProp];
else if (window.getComputedStyle)
var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
return y;
}
var left = getStyle('box','left');
但是如果你在firefox(8.0.1)上尝试它,你会看到结果是不正确的(应该是10%,但它是91px)。问题是:这个新版本的firefox有bug吗?有人知道这是不是已知的bug吗?我做错了什么吗?
谢谢:)
Update:我也在旧的firefox版本上尝试过,它不正确(它总是返回px值)..为了完整起见,它可以在IE
记录如下:
任何CSS属性的使用值是该属性在执行所有计算后的最终值。使用的值可以通过调用window.getComputedStyle来检索。尺寸(例如宽度,行高)都以像素为单位…等
似乎没有办法访问给定元素的"指定"css值,除非您确切地知道应用哪个css规则并使用document解析该规则。样式表或类似的界面
正确答案是我在bugzilla上提交的错误注释
https://bugzilla.mozilla.org/show_bug.cgi?id=707691 c7
要获得正确的%值(在firefox上也是如此),元素的(或它的父元素之一)display
应该设置为none
测试:http://jsfiddle.net/4RKsM/
不清楚的是:为什么在相同的浏览器/版本(见,firefox 7在XP/win7或Opera 11.5在mac osx/ubuntu),但在不同的操作系统,行为是不同的?
顺便说一句,@thg435发布(并在mdn上报告)的规范仍在不断变化。
据我所知,它从未显示百分比(我使用ff, opera和chrome)。所以我认为这不仅仅是火狐的问题。
然而,你可以手动计算它,但它只是接近定义的值,如果浏览器窗口很小。
parseInt($('#box').css('left'))/ $(window).width()*100;
在chrome上它取决于位置值的固定值和绝对值总是显示px而其他值输出的是输入的内容例如如果你输入10%的值它会输出10%如果你输入100px它会输出100px
- 为什么这在IE中的工作方式与在Firefox中不同
- JS可以在Chrome中工作,但不能在Firefox中工作
- createElement("a") - FireFox JavaScript
- 为什么javascript:void(0)在Firefox中不起作用
- Facebook登录按钮没有'不能在Firefox上工作
- jpm的默认Firefox路径没有'不起作用
- 重载JS'firefox中的对象原型
- Ajax调用在Firefox中不会自动响应
- 如果宽度是百分比,如何设置以px为单位的图像高度
- JS在firefox中无法正常工作
- firefox插件和dev/panel之间的通信
- IE/Chrome中未定义的函数,但Firefox中没有
- ascii输入键通过firefox中的javascript返回0
- 在firefox和chrome中的左侧显示iframe滚动条
- html5 drawImage适用于firefox,而不是chrome
- 使用javascript可以设置css动画的当前百分比
- angularjs$valid-on-dates在firefox中报告错误
- 您可以使用JavaScript和Firefox扩展来更改现有页面吗
- 检索CSS值的百分比(在firefox中)
- Chrome显示自适应图像和宽度的百分比正确,Firefox没有