这个问题可能是重复或愚蠢的。我读过与此类似的问题,但不是这个问题。
假设我有两个动态生成的li
,其类别为.someclass
和.someclass2
,并且两者都有不同的宽度需要在页面加载时计算。
那么,有没有办法将计算出的宽度设置为一次类,而不是每次设置宽度生成新的 我们可以使用css执行此操作,如果已知宽度 每次发生追加时都应用宽度 应用宽度 - 有没有办法只执行一次? 如果有更多元素并经常发生,会有什么性能差异会怎么样?li
? / p>
.someclass { width: 20px;} .someclass2 { width: 50px;}
,那么每当新元素生成时,css都会应用于它们。$('#somediv').click(somefunction);
function somefunction() {
$('#somediv').append('<li class="someclass"><li class="someclass2"></li></li>');
$('.someclass').css('width', $(document).width() - 112); //every time
$('.someclass2').css('width', $(document).width() - 250); //every time
}
$('.someclass').css('width', $(document).width() - 112); //once, but it will not work
$('.someclass2').css('width', $(document).width() - 250); //once, but it will not work
$('#somediv').click(somefunction);
function somefunction() {
$('#somediv').append('<li class="someclass"><li class="someclass2"></li></li>');
}
答案 0 :(得分:0)
我们可以使用cssText
创建JS
,因此我们可以为每个css
类设置自定义值。
然后创建一个style
元素并将其内容设置为等于预定义 cssText
var cssText = '.someClass {width:' + (window.innerWidth - 100) + 'px;} .someClass2 {width:' + (window.innerWidth - 200) + 'px; }',
head = document.head,
style = document.createElement('style');
if (style.styleSheet){
style.styleSheet.cssText = cssText;
} else {
style.appendChild(document.createTextNode(cssText));
}
head.appendChild(style);
现在你需要做的就是:
css
个样式