- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
好的,所以我开始了一项古老的任务,即创建一个具有可滚动主体和固定头部的表格,并且我已经编写了对我来说应该有效的内容。在我进入这个问题之前,这是我的代码,以及一个 jsfiddle例子。
HTML:
<table class="table-scrollable" id="test">
<thead>
<tr>
<th>Heading One</th>
<th>Heading Two</th>
<th>Heading Three</th>
</tr>
</thead>
<tbody>
<tr>
<td>One</td>
<td>Two (and some extra long content to make the columns off)</td>
<td>Three</td>
</tr>
<tr>
<td>One</td>
<td>Two</td>
<td>Three</td>
</tr>
<tr>
<td>One</td>
<td>Two</td>
<td>Three</td>
</tr>
<tr>
<td>One</td>
<td>Two</td>
<td>Three</td>
</tr>
<tr>
<td>One</td>
<td>Two</td>
<td>Three</td>
</tr>
<tr>
<td>One</td>
<td>Two</td>
<td>Three</td>
</tr>
<tr>
<td>One</td>
<td>Two</td>
<td>Three</td>
</tr>
<tr>
<td>One</td>
<td>Two</td>
<td>Three</td>
</tr>
</tbody>
</table>
Javascript(使用 JQuery)
$('table.table-scrollable').each(function () {
$(this).before($('<div></div>').prop('class', $(this).prop('class')).prop('id', 'div_' + $(this).prop('id')));
var newDiv = $('#div_' + $(this).prop('id'));
newDiv.append($('<div></div>').prop('class', 'table-head'));
newDiv.append($('<div></div>').prop('class', 'table-body'));
newDiv.append($('<div></div>').prop('class', 'table-foot'));
newDiv.children('div.table-head').append($('<table></table>').prop('class', $(this).prop('class')).append($('<thead></thead>').html($(this).children('thead').html())).append($('<tbody></tbody>').html($(this).children('tbody').html())));
newDiv.children('div.table-body').append($('<table></table>').prop('class', $(this).prop('class')).append($('<tbody></tbody>').html($(this).children('tbody').html())));
$(this).remove();
// Now we need to set the widths of each cell in the header
var HeaderItems = newDiv.find('thead tr th');
var widths = new Array();
HeaderItems.each(function (i, element) {
// First, get the necessary width percentages
widths[i] = (($(element).width() / $(element).parent().width()) * 100) + '%';
});
var css = "";
for (var i = 0; i < widths.length; i++) {
HeaderItems.eq(i).css('width', widths[i]);
}
newDiv.children('div.table-head').find('tbody').remove();
CalculateScrollingBodyWidths(newDiv);
$(window).resize(function () {
CalculateScrollingBodyWidths(newDiv);
});
});
function CalculateScrollingBodyWidths(divTable) {
var styleId = divTable.prop('id') + '_style';
var style = $('<style></style>').prop('id', styleId);
var Headers = divTable.children('div.table-head').find('th');
var css = "";
var lastElementWidth = "";
Headers.each(function (i, element) {
css += 'div#' + divTable.prop('id') + ' div.table-body table tbody tr td:nth-child(' + (i + 1) + ') { width: ' + $(element).width() + 'px; }\n';
lastElementWidth = $(element).width();
});
var pixelDiff = divTable.width() - divTable.children('div.table-body').find('tr').eq(0).width();
css += 'div#' + divTable.prop('id') + ' div.table-body table tbody tr td:last-child { width: ' + (lastElementWidth - pixelDiff) + 'px; }\n';
style.html(css);
$('head style#' + styleId).remove();
$('head').append(style);
}
还有一点 CSS:
div.table-scrollable div.table-body {
max-height: 100px;
overflow: auto;
}
这是它在我的实际元素中的样子的图像,您可以从中更容易地看到问题:
我不知道为什么这不起作用。尽管我明确设置了单元格的宽度,但其他一些东西正在覆盖我告诉它要做的事情。
我是否需要将单元格上的显示样式设置为其他样式?
最佳答案
我想通了!
我表格中的所有单元格都有填充,这以某种方式偏离了我手动设置的宽度,即使所有单元格的填充都相同 (8px)。
当我删除填充时,单元格对齐,但它们看起来不太好,所以我通过在表格中每个单元格的开头和结尾添加一个空格来模拟填充。
更好的解决方案可能是在每列之间和末尾添加一个新列,但我现在已经可以接受了。
关于javascript - 与手动设置单元格宽度不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22029539/
我已经尝试在我的 CSS 中添加一个元素来删除每三个 div 的 margin-right。不过,似乎只是出于某种原因影响了第 3 次和第 7 次。需要它在第 3、6、9 等日工作... CSS .s
如何使 div/input 闪烁或“脉冲”?例如,假设表单字段输入了无效值? 最佳答案 使用 CSS3 类似 on this page ,您可以将脉冲效果添加到名为 error 的类中: @-webk
我目前正在尝试构建一个简单的 wireframe来自 lattice 的情节包,但由沿 y 轴的数百个点组成。这导致绘图被线框网格淹没,您看到的只是一个黑色块。我知道我可以用 col=FALSE 完全
在知道 parent>div CSS 选择器在 IE 中无法识别后,我重新编码我的 CSS 样式,例如: div#bodyMain div#paneLeft>div{/*styles here*/}
我有两个 div,一个在另一个里面。当我将鼠标悬停 到最外面的那个时,我想改变它的颜色,没问题。但是,当我将鼠标悬停 到内部时,我只想更改它的颜色。这可能吗?换句话说,当 将鼠标悬停到内部 div 上
我需要展示这样的东西 有人可以帮忙吗?我可以实现以下输出 我正在使用以下代码:: GridView.builder( scrollDirection: Axis.vertical,
当 Bottom Sheet 像 Android 键盘一样打开时,是否有任何方法可以手动上推布局( ScrollView 或回收器 View 或整个 Activity )?或者你可以说我想以 Bott
我有以下代码,用于使用纯 HTML 和 CSS 显示翻转。当您将鼠标悬停在文本上时,它会更改左右图像。 在我测试的所有浏览器中都运行良好,Safari 4 除外。据我收集的信息,Safari 4 支持
我构建了某种 CMS,但在使用 TinyMCE 和 Bootstrap 时遇到了一些问题。 我有一个页面,其中概述了一个 div,如果用户单击该 div,他们可以从模态中选择图像。该图像被插入到一个
出于某种原因,当我设置一个过渡时,当我的鼠标悬停在一个元素上时,背景会改变颜色,它只适用于一个元素,但它们都共享同一个类?任何帮助我的 CSS .outer_ad { position:rel
好吧,这真的很愚蠢。我不知道 Android Studio 中的调试监视框架发生了什么。我有 1.5.1 的工作室。 是否有一些来自 intellij 的 secret 知识来展示它。 最佳答案 与以
我有这个标记: some code > 我正在尝试获取此布局: 注意:上一个和下一个按钮靠近#player 我正在尝试这样: .nextBtn{
网站:http://avuedesigns.com/index 首页有 6 个菜单项。我希望每件元素在您经过时都有自己的颜色。 这是当您将鼠标悬停在 div 上时将所有内容更改为白色的行 li#hom
我需要在 index.php 文件中显示它,但没有任何效果。我所有的文章都没有正确定位。我将其用作代码: 最佳答案 您可以首先检查您
我是一名优秀的程序员,十分优秀!