我正在构建一个简单的CSS编辑器,我想让用户编辑一个元素的CSS属性或添加一个新的。
在将新的CSS属性应用于元素之前,我想检查该属性是否有效。
你知道一个简单的方法来检查CSS属性/值是否有效吗?
更新:
示例:
$('#some-element').css('margin','10px'); //this is valid and it will be applied
$('#some-element').css('margin','asds'); //this is not valid and it will not be applied
在应用属性之前,如何检查margin: asds;
是否无效?
6条答案
按热度按时间ryevplcw1#
我可能想到的快速解决方案是使用
CSS.supports
函数。也可以使用vanilla js。它是这样的:我认为没有必要生成一个helper函数,因为它非常简单。
ylamdve62#
你可以创建一个新的元素,并将你的CSS应用于它。你读取初始值,将你的CSS应用于这个元素,然后立即再次读取值。如果新值 * 不 * 等于初始值,你的CSS是有效的(因为它已经成功地应用于元素)。
Example fiddle
jhiyze9q3#
从Christoph的回答中,我得到了这样的答案:
这样使用:
8fsztsew4#
你可以读取任何元素的CSS属性,并检查结果是否被定义。大多数(所有?)CSS属性都有一个默认值。
zlwx9yxi5#
回答
你可以用我创建的这个函数
https://gist.github.com/dustinpoissant/7828a80d2899c57d92472b59675fc3fa
测试
nimxete26#
你可以使用普通的javascript和regex来检查css是否“有效”,你可以在w3schools找到更多关于javascript的regex实现。
还有一篇关于here的SO文章,讨论了如何创建一个查找CSS的正则表达式。