相关疑难解决方法(0)

在jQuery中获取CSS规则的百分比值

假设规则如下:

.largeField {
    width: 65%;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法以某种方式获得'65%',而不是像素值?

谢谢.

编辑:不幸的是,在我的情况下使用DOM方法是不可靠的,因为我有一个导入其他样式表的样式表,因此cssRules参数以null未定义的值结束.

但是,这种方法适用于大多数简单的情况(一个样式表,文档标记内的多个单独的样式表声明).

css jquery

97
推荐指数
7
解决办法
8万
查看次数

如何在纯JavaScript中获取css属性值

我想以百分比形式获得元素的宽度.我使用以下函数来获取样式,但它以像素为单位给出值.这里变量样式可以是任何css属性,如宽度,高度等.

this.getStyle = function(style) {
    var elementStyle = window.getComputedStyle(that.element);
    var value = elementName.getPropertyValue(style);
    return value;
}
Run Code Online (Sandbox Code Playgroud)

html javascript css

10
推荐指数
1
解决办法
2万
查看次数

使用jQuery或RegEx获取样式表中编写的CSS值

我在看CSS3 calc(),我想知道是否可以使用jQuery(或RegEx)从输入字符串中减去一个值.

例如:

div {
  width: calc(100% - 50px);
}
Run Code Online (Sandbox Code Playgroud)

我想要得到的百分比值(100%)和像素值(50px),我需要知道它是什么,然后(px,em,pt,%).

所以基本上:

  • 后得到的值calc(和前一个分隔符(+,-,*,/)
  • 在分离器之后和之前得到一个值 )
  • 请注意,可能会有比一个更多的值! calc(100% - 20px - 0.8em)

编辑: Spudley谈论解析整个CSS样式表,但这可能会导致开销.因为这个项目为它赫克,开销允许的,所以你可以去失控,做任何你想做到这一点!

谢谢.

css regex jquery css3

7
推荐指数
1
解决办法
4138
查看次数

使用Jquery返回CSS高度,未计算,但已声明

我想,这可能是在以前版本的jQuery的默认值,但是当我打电话.css("height").height(),它返回计算的高度,这是不是我want-我只想要一个高度值,如果它是在CSS文件中明确声明对于那个元素.

就好像它没有被宣布在任何地方一样,也许它可能会'auto'像顶部和左边那样返回...

例如,我的CSS看起来像这样:

.element{
    margin-left:5px;
    color:red;
}
Run Code Online (Sandbox Code Playgroud)

.css("margin-left")返回"5px",同时.css("height")返回,20即使它没有专门设置...

谢谢

html css jquery

7
推荐指数
1
解决办法
3246
查看次数

是否可以让Chrome返回CSS“ content”属性的原始值?

考虑以下JavaScript,CSS和HTML代码:

console.log(getComputedStyle(document.querySelector('p'), '::after').getPropertyValue('content'));
Run Code Online (Sandbox Code Playgroud)
p::after {
    content: "Hello" attr(data-after);
}
Run Code Online (Sandbox Code Playgroud)
<p data-after=" World"></p>
Run Code Online (Sandbox Code Playgroud)

Firefox和IE11都返回CSS:中定义的原始值"Hello" attr(data-after),这就是我所需要的。

但是Chrome返回"Hello World",解析后的值。

当我使用Chrome DevTools检查元素时,可以在“样式”面板中看到它显示以下信息:

p::after {
    content: "Hello" attr(data-after);
}
Run Code Online (Sandbox Code Playgroud)

因此,看起来Chrome仍然有能力知道原始值。

是否有任何JavaScript解决方案可以使Chrome返回Firefox和IE11这样的CSS定义的原始值?只要可以在JavaScript中使用,即使Chrome独有的方法也很好。


情况说明

在回答成员关于原因的问题时,情况如下:

我正在尝试speak: never在伪元素上为CSS创建一个“ polyfill” 。目前,任何浏览器均不支持该speak属性

屏幕阅读器可以读取CSS伪元素,目前无法从屏幕阅读器中轻松隐藏它们。解决该问题的常用方法是使用HTML代码(例如)<span aria-hidden="true">...</span>代替方便的CSS伪元素和speak: never,而我认为这种方法既不方便又令人失望。

因此,此polyfill主要与Web可访问性有关。

这种polyfill的工作方式将要求CSS开发人员编写一些额外的CSS代码作为指标,例如attr(speak-never)

p::after {
    content: "please make me inaudible" attr(speak-never);
    }
Run Code Online (Sandbox Code Playgroud)

然后在JavaScript中,polyfill循环浏览页面上的每个元素,并检查其伪元素::before::afterCSS content属性的值是否包含attr(speak-never)。如果找到指示字符串,则填充工具固定伪元素(通过添加自定义元素<before aria-hidden="true">...</before><after aria-hidden="true">...</after>编程)。

现在的问题是Chrome无法attr(speak-never)以JavaScript 返回上述内容。尽管polyfill也可以通过要求CSS开发人员添加其他指标(例如 …

javascript css google-chrome pseudo-element

7
推荐指数
1
解决办法
96
查看次数

javascript:用单位获取css prop值

我的代码是这样的:

#image_1 {
   position: absolute;
   top: 3vw;  
}
Run Code Online (Sandbox Code Playgroud)

我的尝试:http: //jsfiddle.net/z8k6t3fb/1/

我想要'3vw'

可能吗 ?

javascript css

5
推荐指数
1
解决办法
282
查看次数

如何使用 vanilla JS 在 CSS 中确定元素的高度或宽度是否设置为 100% 或 `auto`?

如何使用 vanilla JS 和跨浏览器解决方案确定元素的 CSS 宽度/高度是否设置为“自动”或“100%”?

使用 style 属性,只返回设置的内嵌样式。

document.querySelector("#foo").style.height
Returns: ""

Run Code Online (Sandbox Code Playgroud)

使用 getComputedStyle 给出一个单位值。

getComputedStyle(document.querySelector("#foo")).height
Returns: "334.641px"
Run Code Online (Sandbox Code Playgroud)

我正在寻求的结果将返回元素上设置的值

Return "auto"
or 
Return "80%"
Run Code Online (Sandbox Code Playgroud)

2011 年有一篇关于浏览样式表的旧帖子,但从那时起浏览器有了显着的发展。当然,目前一定有更好的方法吗?

例如,Chrome 的计算属性检查器将在计算出的 px 值下方列出样式属性(如果属性是通过 CSS 设置的,则会有一个小下拉箭头)。它通过以下答案中的 calculateStyleMap()实现这一点,但并非所有浏览器都实现了它。

width: 385px;
100%.  .w-full  tailwinds.css:6366
Run Code Online (Sandbox Code Playgroud)

javascript css jquery google-chrome-devtools

5
推荐指数
1
解决办法
498
查看次数