- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
另一位 Web 开发人员希望卡住最左边的列并允许滚动表格。他找到了这段代码并将其实现到他客户的网站中。该代码完成其工作并按预期工作。
但是,他添加了一些 @media 查询,以使表格的响应速度更快。当这样做时,它搞砸了 table 。它使左列与表格的其余部分不对齐。
@media screen and (max-width: 699px) and (min-width: 520px) {
.exportTable th{
min-width: 170px !important;
}
.exportTable td{
min-width:170px !important;
max-width:170px !important;
}
}
所以我在 window.resize() 中添加了函数调用。
$(document).ready(function () {
app_handle_listing_horisontal_scroll($('#exportTable-listing'));
app_handle_listing_horisontal_scroll($('#exportTable-listing2'));
$(window).resize(function() {
app_handle_listing_horisontal_scroll($('#exportTable-listing'));
app_handle_listing_horisontal_scroll($('#exportTable-listing2'));
});
});
设置高度时会出现问题:
$(this).css('height', current_row_height);
和宽度/边距:
$(this).css('position','absolute')
.css('margin-left','-'+table_collumns_margin[index]+'px')
.css('width',table_collumns_width[index])
这是一个fiddle .
只需捕获窗口并来回调整大小,表格单元格的高度/宽度就会呈指数级增长,从而导致严重的问题。
This fiddle演示当您点击 @media 查询时,左列将如何错位。 (查看此 fiddle 时,重要的是要命中@media 查询。)
如何解决这些问题?
最佳答案
在我看来,在等式中添加 javascript 会使它变得过于复杂。我相信你想要的只用 CSS 就可以完成。
这是如何工作的,如果浏览器的最大宽度为 500px,则删除粘性列。如果没有,则显示粘性列。
除非您需要支持 IE 9 之前的浏览器,否则请尝试使用此尺寸:
https://jsfiddle.net/BmLpV/284/
CSS:
.zui-table {
border: none;
border-right: solid 1px #DDEFEF;
border-collapse: separate;
border-spacing: 0;
font: normal 13px Arial, sans-serif;
}
.zui-table thead th {
background-color: #DDEFEF;
border: none;
color: #336B6B;
padding: 10px;
text-align: left;
text-shadow: 1px 1px 1px #fff;
white-space: nowrap;
}
.zui-table tbody td {
border-bottom: solid 1px #DDEFEF;
color: #333;
padding: 10px;
text-shadow: 1px 1px 1px #fff;
white-space: nowrap;
}
.zui-wrapper {
position: relative;
}
.zui-scroller {
margin-left: 141px;
overflow-x: scroll;
overflow-y: visible;
padding-bottom: 5px;
width: 300px;
}
.zui-table .zui-sticky-col {
border-left: solid 1px #DDEFEF;
border-right: solid 1px #DDEFEF;
left: 0;
position: absolute;
top: auto;
width: 120px;
}
@media (max-width: 500px) {
.zui-table .zui-sticky-col {
border-left: solid 1px #DDEFEF;
border-right: solid 1px #DDEFEF;
position: relative;
top: auto;
width: auto;
}
.zui-scroller {
margin-left: 0;
}
}
HTML:
<div class="zui-wrapper">
<div class="zui-scroller">
<table class="zui-table">
<thead>
<tr>
<th class="zui-sticky-col">Name</th>
<th>Number</th>
<th>Position</th>
<th>Height</th>
<th>Born</th>
<th>Salary</th>
<th>Prior to NBA/Country</th>
</tr>
</thead>
<tbody>
<tr>
<td class="zui-sticky-col">DeMarcus Cousins</td>
<td>15</td>
<td>C</td>
<td>6'11"</td>
<td>08-13-1990</td>
<td>$4,917,000</td>
<td>Kentucky/USA</td>
</tr>
<tr>
<td class="zui-sticky-col">Isaiah Thomas</td>
<td>22</td>
<td>PG</td>
<td>5'9"</td>
<td>02-07-1989</td>
<td>$473,604</td>
<td>Washington/USA</td>
</tr>
<tr>
<td class="zui-sticky-col">Ben McLemore</td>
<td>16</td>
<td>SG</td>
<td>6'5"</td>
<td>02-11-1993</td>
<td>$2,895,960</td>
<td>Kansas/USA</td>
</tr>
<tr>
<td class="zui-sticky-col">Marcus Thornton</td>
<td>23</td>
<td>SG</td>
<td>6'4"</td>
<td>05-05-1987</td>
<td>$7,000,000</td>
<td>Louisiana State/USA</td>
</tr>
<tr>
<td class="zui-sticky-col">Jason Thompson</td>
<td>34</td>
<td>PF</td>
<td>6'11"</td>
<td>06-21-1986</td>
<td>$3,001,000</td>
<td>Rider/USA</td>
</tr>
</tbody>
</table>
</div>
</div>
编辑:要支持动态高度,您可以执行以下操作:
$(function(){
$('.zui-table tr').each(function(i, row) {
var height = $('.zui-sticky-col').eq(i).outerHeight() - $('.zui-sticky-col').eq(i).height();
$('.zui-sticky-col').eq(i).height($(row).height() - height);
});
})
为了获得更好的性能,您只能访问该元素一次:
$(function(){
$('.zui-table tr').each(function(i, row) {
var el = $('.zui-sticky-col').eq(i);
var height = el.outerHeight() - el.height();
el.height($(row).height() - height);
});
})
关于javascript - 设置表格单元格高度和宽度时,.outerHeight 和 .outerWidth 呈指数增长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38843893/
是否可以获取.outerHeight();的十进制值 现在它返回一个四舍五入的值。 $(window).resize(function() { var div_height_2 = $(".h
更新 fiddle :http://jsfiddle.net/KG3H8/4/ 我用 jquery 扩展了我的 .content 的高度,它有一个基于 % 的填充。 如果我删除填充,它会完美地工作。
我在首次加载具有 outerHeight 的页面时遇到问题。 outerHeight() 返回的值是 27 的倍数。 jQuery $('.entries').each(function(r) {
给定 我想计算父级的高度(包括边距)。我找不到合适的方法。 console.log($('#parent').outerHeight()); //= 14 console.lo
我有一个容器元素,它是它的子元素的布局容器,我必须根据一些属性来安排子元素。 我需要简单的方法来设置元素的 outerHeight,比如, $(e).setOuterHeight(200); jQue
我试图找出元素的外部高度(包括填充),但它似乎不起作用。 总是得到0,是不是元素被隐藏了? 该元素包含在具有“自动”高度的绝对定位元素内,但我认为这不是问题,因为该元素是相对的... 最佳答案 隐藏元
如何向 outerHeight() 函数添加额外的像素? 所以我们有一个变量,它获取 .pg-sect `s outerHeight: var $section = $('.pg-sect').out
根据 JQuery docs outerHeight(true) 函数返回元素的总高度,包括填充边框和边距。我遇到了一个案例,这个 promise 似乎被打破了。这是一个 repro . 这是 htm
我正在尝试通过从窗口大小中减去页眉和页脚值并在文档加载时将内容设置为此值来动态设置网页内容的高度。 每个函数参数都接受一个元素id,以获取元素高度;不包括内容参数。 function setH(he
我正在尝试获取我网站上顶部导航栏的 outerHeight 以进行一些计算,它在加载/重新加载网页时完美运行。但是,当我将 Chrome 开发人员工具中的屏幕方向更改为横向时,它会返回错误的高度。我的
该函数正在将日志打印为- console.log("top:"+$(token_list).outerHeight()); 我希望返回参数值,这样我就可以像这样添加 css 高度: dropdown
我正在尝试在我刚刚通过 .append() 附加到 html 的元素上运行 .outerHeight() 函数 $("#someid").append("something"); var h = $(
我在 jquery 中实现可变页脚脚本时遇到问题。(但是 in JSFiddle 奇怪的是我没有遇到任何问题)。 代码:索引.htm
当 CSS 高度设置为 Auto 时,如何获取充满文本的 div 对象的完整高度? 我尝试了 OuterHeight,它仍然不是 div 对象的完整高度。 JSFiddle:https://jsfid
如果我在 CSS 中编写以下代码: html body { height: 100% } height指window.innerHeight。 有没有办法只使用 CSS 来引用 wind
另一位 Web 开发人员希望卡住最左边的列并允许滚动表格。他找到了这段代码并将其实现到他客户的网站中。该代码完成其工作并按预期工作。 但是,他添加了一些 @media 查询,以使表格的响应速度更快。当
所以我有一个脚本可以均衡 x 轴上其他元素的高度。该脚本工作得很好......但只有当我使用 jQuery 1.8.3+ 时。该问题似乎是由于 outerHeight() 函数造成的。 我尝试找出 1
我正在尝试编写一个小的 jQuery 插件,它将根据 div 的高度垂直居中, 基本上在我的 css 中我有 top: 50%,但由于高度是可变的我需要计算它。 这个的 HTML 看起来像 Multi
我想将一个 div 的 outerheight() 值与另一个 div 的 padding-top 值相加。这是我的功能 var headerHeight = $('header').oute
也许这是一个菜鸟问题,但是...... 我有一个网站,我希望页脚始终出现在同一位置。假设我的用户都使用 >= IE8、Chrome 和 Firefox,我认为这只是获取 Window.outerHei
我是一名优秀的程序员,十分优秀!