gpt4 book ai didi

php - 在 tbody 内具有垂直滚动的程式化 HTML 表格

转载 作者:搜寻专家 更新时间:2023-10-31 22:01:43 25 4
gpt4 key购买 nike

今天我试验了 HTML 表格并从 MySQL 数据库中填充它们。我的代码很好地满足了我的需要,表格看起来像这样:

http://codepen.io/anon/pen/ogYRwj

但是,在将它实际集成到我的网站时,我遇到了一个主要问题。我使用 include 语句来显示我的表格以及我的菜单以在我的所有网页之间交换。表格显示如下:

what the actual heck!?

所以我试验了 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)上的元素,但它有效:

enter image description here

当我使用 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-heightoverflow在 wrapper 上 <div>使它可滚动。当它滚动时,<thead>会坚持到顶部。

不可否认,这是一种“廉价技巧”,因为正如您在下面看到的那样,滚动条从 <table> 的顶部开始。 , 不是 <tbody> 的顶部.它既快速又简单,一旦浏览器支持稳定下来应该会更相关。

screenshot of table with sticky thead and scrollbars

关于php - 在 tbody 内具有垂直滚动的程式化 HTML 表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27839228/

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