gpt4 book ai didi

javascript - 带有 colspan 的 html 表格单元格周围的奇怪边框?

转载 作者:太空宇宙 更新时间:2023-11-03 21:13:24 25 4
gpt4 key购买 nike

我的问题类似于THIS问题,但我无法在表格中使用 div 而不是 colspans。

这似乎是一个只出现在 chrome 中的问题,但我需要找到解决方法。

我的用例与下面的用例非常相似。请注意 3.3 的顶部边框如何跨越两列,这显然是不正确的。在我的用例中,用户能够更改要合并的单元格,因此我无法为特定单元格设置边框。

如何将单元格的边框设置为限制在自己的单元格内,而不是与 colspan 大于 1 的普通单元格共享?

HTML

<div style="padding: 10px">
<table>
<tr>
<td>1.1</td>
<td>1.2</td>
<td>1.3</td>
<td>1.4</td>
<td>1.5</td>
</tr>
<tr>
<td>2.1</td>
<td>2.2</td>
<td colspan="2">2.3</td>
<td>2.5</td>
</tr>
<tr>
<td>3.1</td>
<td>3.2</td>
<td>3.3</td>
<td>3.4</td>
<td>3.5</td>
</tr>
<tr>
<td>4.1</td>
<td>4.2</td>
<td>4.3</td>
<td>4.4</td>
<td>4.5</td>
</tr>
<tr>
<td>5.1</td>
<td>5.2</td>
<td>5.3</td>
<td>5.4</td>
<td>5.5</td>
</tr>
</table>
</div>

CSS

table {
table-layout: fixed;
border-spacing: 0;
border-collapse: collapse;
}

td {
border: 1px solid lightgrey;
height: 60px;
width: 60px;
text-align: center;
vertical-align: middle;
}

td.active {
border: 1px solid blue;
}

td.brdr-b-hide {
border-bottom: none;
}
td.brdr-r-hide {
border-right: none;
}

JavaScript

var fnActivate = function(target) {
target.addClass('active');

if(!target.is(':first-child')) {
target.prev().addClass('brdr-r-hide')
}

var tr = target.closest('tr');
if(!tr.is(':first-child')) {
var prevTr = tr.prev();
$('td', prevTr).eq($('td', tr).index(target)).addClass('brdr-b-hide');

}
};

var fnDeactivate = function(target) {
target.removeClass('active');

if(!target.is(':first-child')) {
target.prev().removeClass('brdr-r-hide')
}

var tr = target.closest('tr');
if(!tr.is(':first-child')) {
var prevTr = tr.prev();
$('td', prevTr).eq($('td', tr).index(target)).removeClass('brdr-b-hide');

}
}

$('table').on('click', 'td', function(e){
var target = $(e.currentTarget);

if(e.ctrlKey && target.hasClass('active')){
fnDeactivate(target);
} else if(e.ctrlKey) {
fnActivate(target);
} else {
fnDeactivate($('table td.active'));
fnActivate(target);
}

});

代码:Plunkr

最佳答案

问题已通过使用修复:

table {
border-collapse: separate;
}

代码:Plunkr

前端有点不同,因为每个单元格现在都有自己的 1px 边框,但目前这是一个很好的解决方法。

关于javascript - 带有 colspan 的 html 表格单元格周围的奇怪边框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44419845/

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