是否可以保存所有“当前”应用于元素的CSS,然后重新应用它?我正在研究一个粘贴表标题,当我更改position:fixed
时,它会丢失所有应用的样式。我目前保存列宽并重新应用于表头:
$('#tableHeader').css({
position:'fixed',
width:$('#tablePanel').width(),
top:$('#top').height(),
});
$('.column1Value').width(col1Width);
$('#col1').width(col1Width);
$('.column2Value').width(col2Width);
$('#col2').width(col2Width);
$('.column3Value').width(col3Width);
$('#col3').width(col3Width);
$('.column4Value').width(col4Width);
$('#col4').width(col4Width);
$('.column5Value').width(col5Width);
$('#col5').width(col5Width);
$('.column6Value').width(col6Width);
$('#col6').width(col6Width);
$('.column7Value').width(col7Width);
$('#col7').width(col7Width);
这使得列的大小正确并且排列紧密,但是从某些地方应用了额外的填充或边距我无法完全弄清楚(可能是bootstrap),这使得标题和列不对齐。我希望有类似的东西:
var savedCSS = $('#table').css();
并将其检索为$('#table').css(savedCSS)
答案 0 :(得分:1)
您可以逐个保存您感兴趣的各个样式,然后使用您提到的jQuery("selector").css("styleName")
方法重新应用它们,但我不会想到那里'一个简单的方法一次完成所有这些。这不是不可能的,但是一旦元素处于新的位置,它就不会非常有效,并且可能实际上不会给你想要的结果。
讨论之后,我们发现尺寸问题并非真正归因于样式,而是由于width
正在计算的元素。
当元素正常放置在页面流中时,它会使用其最近定位的父级宽度,然后取下边距以查找子内容的宽度。
从页面流中删除元素时,其宽度将独立于父级。因此,要使两者匹配,请记录父级的宽度而不是元素本身,并设置宽度以匹配父级,而不是尝试维持元素的宽度。