【问题标题】:Is it possible to get the value of a dom element's specific css attribute from the external stylesheet and not the computed one? [duplicate]是否可以从外部样式表而不是计算的样式表中获取 dom 元素的特定 css 属性的值? [复制]
【发布时间】:2013-10-27 18:50:51
【问题描述】:

jquery .css 方法不适用于此。 是否有替代方法可以在 css 表中获取实际值,例如百分比等...? 这是一个示例,表明 .css 不适用于此: 外部CSS:

margin-left: 10%;

JS代码:

var Marginleft = $(domElem).css('margin-left');
alert(Marginleft);

这会返回一个像素值。我想得到百分比,是否可以不将css作为字符串输入?

【问题讨论】:

  • 看看这是否可以为您指明正确的方向:stackoverflow.com/a/4926651/961695
  • 您需要this 之类的东西吗?虽然链接后面的 sn-p 实际上是在更改样式表中的值,但您可以进一步开发它以仅读取值。
  • 可以复杂化,为什么要简单化?只需向您的节点添加一个类 ispercentage,边距为 10% 或任何您想调用的名称,然后与 .hasClass('ispercentage') 核对 ...

标签: javascript jquery html css


【解决方案1】:

试试这个(仅限 Webkit:Chrome、Opera、Safari)

var Marginleft = window.getMatchedCSSRules(domElem)[0].style["margin-left"]
alert(Marginleft);

此示例将从第一个分配的类中读取“margin-left”样式属性到 dom 元素。如果您有多个类 - 您可能需要遍历数组才能获得您所测试的类。

演示:http://jsfiddle.net/rkT5Q/

对于 Gecko 替代品,请查看 https://gist.github.com/ydaniv/3033012

https://stackoverflow.com/a/4926651/961695 上的一个可能的跨浏览器

【讨论】:

  • 我以为这只适用于 webkit。
  • 是的。将更新我的答案
  • 谢谢,我去看看那些帖子
【解决方案2】:

我认为没有内置功能。我不确定您所说的“将 css 作为字符串输入”是什么意思,但您可以轻松计算出百分比。

var percent = (parseFloat(Marginleft)/parseFloat($(domElem).parent().css('width')) * 100) + '%';
alert(percent);

【讨论】:

  • 不幸的是,这种获取百分比的方式对我来说毫无用处,因为我的应用需要知道属性是否在 css 样式表中具有百分比值,而不是当前百分比...跨度>
猜你喜欢
  • 1970-01-01
  • 2017-12-30
  • 2011-10-01
  • 2011-11-02
  • 1970-01-01
  • 2020-04-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多