今天我试验了 HTML 表格并从 MySQL 数据库中填充它们。我的代码很好地满足了我的需要,表格看起来像这样:
http://codepen.io/anon/pen/ogYRwj
但是,在将它实际集成到我的网站时,我遇到了一个主要问题。我使用 include 语句来显示我的表格以及我的菜单以在我的所有网页之间交换。表格显示如下:
所以我试验了 tbody.td
的宽度元素,我最终更改了这段代码:
thead th,tbody td {
width: 20%;
float: left;
border-right: 1px solid black;
}
为此:
tbody td{
width: 10%;
float: left;
border-right: 1px solid black;
}
thead th {
width: 20%;
float: left;
border-right: 1px solid black;
}
不知何故,它真的奏效了!但是 thead.th
之间的线条元素没有与 tbody.td
的行对齐其他设备(例如我的 android)上的元素,但它有效:
当我使用 PHP 语句 include /path/to/file.php
包含它时,该代码有效, 但现在如果我尝试直接查看/path/to/file.php 它看起来真的很奇怪,类似于上面的第一张图片!
现在我想不通第一个版本有什么问题,如何在Android等其他设备上正常显示?
请拯救 CSS 和 PHP 向导!
(编辑:
HTML output与本地几乎相同,除了 使用 MySQL 数据库的结果。
表格被放入一个 PHP 文件中,我在其中使用
链接到 CSS 文件
<link rel="stylesheet" type="text/css" href="path/to/style.css">
- 我有一个主要的 PHP 文件 (index.php),我使用名为 getPage 的函数将包含 HTML 表 (logs.php) 的 PHP 文件包含在其中。
这是 index.php 的代码:
<?php
require_once(dirname(__FILE__) . '/functions/functions.php');
getPage('includes','home');
?>
<html>
<head>
<title>Fågelmatare</title>
</head>
<body>
<h3>Fågelmatare</h3>
<hr />
<a href="?page=home">Home</a> |
<a href="?page=logs">Logs</a> |
<a href="?page=videos">Videos</a> |
<a href="?page=about">About</a>
<hr />
<?php
if(!isset($_GET['page'])){
getPage('includes','home');
}else{
getPage('includes',$_GET['page'], 'home');
}
//switch($_GET['page']{
?>
</body>
</html>
我点击 <a href="?page=logs">Logs</a>
显示我的表格的超链接(在 logs.php 中)。
在 functions.php 中
<?php
function getPage($dir, $filename, $default = false){
$root = $_SERVER['DOCUMENT_ROOT'];
$path = $root . '/' . $dir;
if(is_dir($path)){
if(file_exists($path . '/' . $filename . '.php')){
include $path . '/' . $filename . '.php';
return true;
}
if(file_exists($path . '/' . $filename . '.html')){
include $path . '/' . $filename . '.html';
return true;
}
if($default){
if(file_exists($path . '/' . $default . '.php')){
include $path . '/' . $default . '.php';
return true;
}
if(file_exists($path . '/' . $default . '.html')){
include $path . '/' . $default . '.html';
return true;
}
}
}
return false;
}
?>
这是 logs.php 的源代码
- 我使用 nginx 作为我的网络服务器,在 Raspberry Pi 上运行。
)
最佳答案
我有另一种方法,尽管跨浏览器支持仍然不是很好。它使用 position:sticky,因此您需要在 Safari 中进行测试或为 position:sticky 启用实验性标志。
这是实验: http://codepen.io/jpdevries/pen/vLVbpQ?editors=1100
这个想法是你包装 <table>
在<div>
, 设置 <div>
至 position:relative
然后简单地设置 <thead>
至 position:sticky;top:0;
.
然后您可以设置 max-height
和 overflow
在 wrapper 上 <div>
使它可滚动。当它滚动时,<thead>
会坚持到顶部。
不可否认,这是一种“廉价技巧”,因为正如您在下面看到的那样,滚动条从 <table>
的顶部开始。 , 不是 <tbody>
的顶部.它既快速又简单,一旦浏览器支持稳定下来应该会更相关。
关于php - 在 tbody 内具有垂直滚动的程式化 HTML 表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27839228/