【发布时间】:2012-11-10 05:40:41
【问题描述】:
我早些时候向question 询问了一种使用JavaScript 和`CSS 突出显示表格的方法。我很难确保表格的边框看起来正常。
例如,在我的表格边框中,我将边距设置为0。当悬停在一列上时,增加的边框大小会导致整个表格稍微“跳跃”。为了防止这种情况发生,我尝试调整表格单元格的大小,但这并没有什么不同。
我在这里用 JSFiddle 说明问题:http://jsfiddle.net/grNr8/6/。在这些图片中有点难以看到,但希望小提琴能说明问题。
我的CSS 如下:
table, td {
background-color: white;
border: 0px solid white;
border-collapse: collapse;
}
高亮列时,选择像素粗细为2 的边框。我尝试使用$('td').css({height: '29px'});(与26 - 29 不同)更改单元格大小,但它不会改变效果。我用来突出显示的Javascript 主要基于对我之前问题的回答:
$('td').hover(function() {
var t = parseInt($(this).index()) + 1;
$('td:nth-child(' + t + ')').first().addClass('highlightedTop');
$('td:nth-child(' + t + ')').addClass('highlighted')
$('td:nth-child(' + t + ')').last().removeClass('highlighted').addClass('x');
$('td').css({
height: '39px'
});
if (t > 1) {
var t1 = t - 1;
$('td:nth-child(' + t1 + ')').addClass('highlightedPrev');
$('td:nth-child(' + t1 + ')').last().removeClass('highlightedPrev');
}
}, function() {
var t = parseInt($(this).index()) + 1;
$('td:nth-child(' + t + ')').removeClass('highlighted ');
$('td:nth-child(' + t + ')').first().removeClass('highlightedTop');
$('td:nth-child(' + t + ')').last().removeClass('highlightedBottom');
$('td:nth-child(' + t + ')').last().removeClass('x');
if (t > 1) {
var t1 = t - 1;
$('td:nth-child(' + t1 + ')').removeClass('highlightedPrev');
}
});
是否可以调整单元格的大小以便更流畅地查看,或者我应该使用不同的方法?我已经尝试过使用1px 的白色边框厚度,但我最终会在角落处出现奇怪的连接,而在四肢处出现不对称的边框。
【问题讨论】:
-
是否使用
outline选项?不利的一面是所有 4 个边都必须应用笔画,但有利的一面是它不会像边框那样影响元素的宽度。 -
是的 - 可能是(我不知道)。可以和桌子一起使用吗?
-
几乎适用于任何东西。
标签: javascript html css html-table hover