我只需要该表即可在最新版本的Google Chrome浏览器中工作(因此,无需担心跨浏览器解决方案,例如IE的较早版本等)。
我正在寻找冻结第一行并没有成功的解决方案。如果我在此CSS relative
中排除单词position: fixed relative;
,则标题行会彼此堆叠。不确定滚动时如何使标题保持在屏幕顶部。
表格代码
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$( "#status_report .measure[data-bg='1']").css('background', 'red');
$( "#status_report .measure[data-bg='2']").css('background', 'grey');
$( "#status_report .measure[data-bg='3']").css('background', 'yellow');
$( "#status_report .measure[data-bg='4']").css('background', 'green');
});
</script>
<style type="text/css">
th{
position: fixed relative;
background:#111;
color:#fff;
padding: 2px;
}
td
{
background:#ddd;
max-width: 200px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
padding: 2px;
}
</style>
</head>
<body>
<table id="status_report">
<tr>
<th>field1</th>
<th>field2</th>
<th>field3</th>
</tr>
<tr>
<?php foreach( $data as $row ) : ?>
<tr>
<td><?php echo $row['field1']; ?></td>
<td class = "measure" data-bg="<?php echo $row['field2']; ?>"><?php echo $row['field2']; ?></td>
<td class = "measure" data-bg="<?php echo $row['field3']; ?>"><?php echo $row['field3']; ?></td>
</tr>
<? endforeach;
$dbh = null; ?>
</table>
</body>
</html>
最佳答案
position: fixed relative
是无效的CSS。当您将某物设置为fixed
时,其位置为“重置”,例如,该对象将不会停留在“应该位于的位置”,而是相对于文档的,因此您需要使用top
设置其位置。 ,left
等。
这就是它们堆叠的原因。
Read more about positioning。