当前位置: 首页 > 面试题库 >

检索百分比CSS值(在Firefox中)

公孙辰龙
2023-03-14
问题内容

我在firefox上检索确切的css属性值(以“%”表示)时遇到问题。

假设我们有一个非常简单的标记:

<div id="box">box</div>

和这个CSS:

#box{
    width:200px;
    height:200px;
    left:10%;
    position:absolute;
    background:red;
}

而且 我想 通过js 检索左侧位置 (在“%”中)

使用mootools很容易(演示->
http://jsfiddle.net/steweb/AWdzB/):

var left = $('box').getStyle('left');

或jQuery(演示->
http://jsfiddle.net/steweb/RaVyU/):

var left = $('#box').css('left');

或通过普通js(演示->
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是否存在错误?有谁知道这是否是已知的错误?难道我做错了什么?

谢谢 :)

更新 :我也在较旧的firefox版本上尝试过,它是不正确的(它总是返回px值)。为了完整性,它在IE上可以正常工作


问题答案:

正确答案是对我在bugzilla上提交的错误的评论

为了获得正确的%值(也在firefox上),display应将元素(或其父元素之一)设置为none

不清楚的是:为什么在相同的浏览器/版本上(请参阅XP / win7上的firefox 7或mac osx / ubuntu上的Opera
11.5)却在不同的操作系统上,行为不同?

顺便说一句,@ thg435发布的规范(并在mdn上进行了报道)仍在不断变化。



 类似资料:
  • 问题内容: 假设规则如下: 有没有办法以某种方式获得“ 65%”的回报,而不是像素值? 谢谢。 编辑: 不幸的是,在我的情况下,使用DOM方法是不可靠的,因为我有一个导入其他样式表的样式表,因此 cssRules 参数最终以 null 或 未定义的 值结尾。 但是,这种方法在大多数直接的情况下都可以使用(一个样式表,文档的 head 标记内的多个单独的样式表声明)。 问题答案: 恐怕没有内置的方法

  • 问题内容: 我使用CSS已经有很多年了,我一直都是个“百分百”的人,因为我总是使用百分比而不是像素来定义高度和宽度(例如,在设置边距,填充等,在这种情况下,我使用像素)。 我会做这样的事情: 但是我经常看到这样的例子: 我的问题是:将一个 整体 与另一个 整体 相比有什么好处? 问题答案: 行动网页。%为此。因为它将(显然)调整为适合。 但是,当您想要固定宽度(例如,要以某种方式显示的文本文章)时

  • 问题内容: 我试图在CSS 中将a设置为一定的百分比高度,但它的大小与其中的内容相同。但是,当我删除HTML 5 时,它可以工作,并按需要占用整个页面。我希望页面进行验证,那我该怎么办? 我在上有此CSS ,其ID为: 问题答案: 我正在尝试在CSS中将div设置为某个百分比高度 百分比是多少? 要设置百分比高度,其父元素(*)必须具有明确的高度。这是不言而喻的,如果您将height保留为,则该块

  • 我正在使用Elasticsearch 1.7.3为分析报告积累数据。 我有一个保存文档的索引,其中每个文档都有一个名为“duration”(请求花费了多少毫秒)的数字字段和一个名为“component”的字符串字段。可能有许多文档具有相同的组件名称。 例如。 我想生成一份报告,说明每个组件: 此组件的所有“持续时间”字段的总和。 此总数占所有文档总持续时间的百分比。在我的例子中 每个组件的文档占总

  • 问题内容: 我正在尝试使用带有百分比的height属性,但是它不起作用。我想使用百分比,因此在任何分辨率下看起来都不错。 我该如何运作? 问题答案: 当您使用宽度或高度时,您应该问的第一个问题是什么?因此,您还需要对父元素应用高度,因此,假设您的父元素位于body标签内,则需要在CSS中使用此元素 所以,现在你的元素是的 注意:另外,当您处理定位的元素时,您可能会遇到一种情况,即您的高度不会超过当

  • 我有一个带有四个标签的图表: 使用plugin,我想用以下代码显示每个饼图中的百分比值: 我得到的是所有饼片的100%价值,而不是各自的百分比。这是JSFIDLE(https://jsfiddle.net/kingBethal/a1Lvn4eb/7/)