gpt4 book ai didi

css - 通过 JavaScript 动态设置 CSS3

转载 作者:太空宇宙 更新时间:2023-11-04 14:53:28 26 4
gpt4 key购买 nike

我想通过 JavaScript 将 column-count 应用于无序列表,因为我事先不知道我需要多少列。

我执行了以下操作,这在 Chrome 和 IE10 中有效,但在 FireFox 和 Opera 中无效。

var ul= document.getElementById('multi-columns');
ul.style['-moz-column-count'] = 4;
ul.style['-webkit-column-count'] = 4;
ul.style['column-count'] = 4;

我没有在 Safari 中测试过它,但我敢打赌它确实可以在 Chrome 中运行。

为什么这在 FireFox 和 Opera 中不起作用?什么是解决方法?

最佳答案

您必须缩短前缀名称并删除连字符。使用驼峰式大小写,除非它有前缀 - 那么第一个字符也必须大写:

var ul= document.getElementById('multi-columns');
ul.style['MozColumnCount'] = 4;
ul.style['WebkitColumnCount'] = 4;
ul.style['columnCount'] = 4;

ul.style.MozColumnCount = 4;
ul.style.WebkitColumnCount = 4;
ul.style.columnCount = 4;

您可以使用如下函数对此进行归纳:

function getSupportedProp(proparray){
var root=document.documentElement //reference root element of document
for (var i=0; i<proparray.length; i++){ //loop through possible properties
if (proparray[i] in root.style){ //if property exists on element (value will be string, empty string if not set)
return proparray[i] //return that string
}
}
}

//SAMPLE USAGE
var boxshadowprop = getSupportedProp(['boxShadow', 'MozBoxShadow', 'WebkitBoxShadow']) //get appropriate CSS3 box-shadow property
document.getElementById("mydiv").style[boxshadowprop]="5px 5px 1px #818181" //set CSS shadow for "mydiv"

关于css - 通过 JavaScript 动态设置 CSS3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17182591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com