我们可以在`<tr></tr>`之后使用嵌套表吗?
Posted
技术标签:
【中文标题】我们可以在`<tr></tr>`之后使用嵌套表吗?【英文标题】:Can we use nested table after the `<tr></tr>`? 【发布时间】:2019-01-13 23:53:37 【问题描述】:我在表格列表中显示来自数据库的记录。此外,我在每一行都有一个跟进按钮,如果任何用户点击跟进按钮,则会为特定用户打开一个包含详细信息的弹出窗口。
或任何其他想法来处理这个问题?
我尝试使用类似的东西
<table>
<thead><tr><th></th></tr></thead>
<tbody>
<tr><td></td></tr>
<div style="display:none">
<table>
<thead><tr><th></th></tr></thead>
<tbody>
<tr><td></td></tr>
</tbody>
</table>
</div>
</tbody>
</table>
完整代码
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<table border="1">
<thead>
<tr>>
<th>Name</th>
<th>Products</th>
<th>Qty</th>
<th>Order Id</th>
<th>Mobile </th>
<th>Shipping address</th>
</tr>
</thead>
<tbody>
<?php $n=1;
foreach ($cust_personal as $row)
$encryption_id=base64_encode($this->encryption->encrypt($row->o_id));//encrpt the id
?>
<tbody>
<tr>
<td><?php echo $n;?></td>
<td><?php echo $row->c_firstname;?> <?php echo $row->c_lastname;?></td>
<td><?php echo $row->o_product_brandname;?></td>
<td><?php echo $row->o_product_qty;?></td>
<td><?php echo $row->o_order_no;?></td>
<td><?php echo $row->c_mobileno;?></td>
<td><?php echo $row->c_s_address;?></td>
<td> <a href="javascript:void(0)" class="table_icon pending" onclick="approve(this)" data-id="<?=$row->o_id;?>"> <span>Pending</span></a>
<a href="<?php echo site_url('Customer_control/get_customer_view?key='.$encryption_id)?>" class="table_icon view">View</a>
<a href="javascript:void(0)" class="table_icon archive" onclick="followup(this)" data-id="<?=$row->o_id;?>">Followup</a>
</tr>
<div id="popup-<?=$row->o_id;?>" style="display: none;" class="class="view_popup_profile">
<div class="profile_content">
<div class="profile_header clearfix">
<table border="1">
<thead><th>sub</th></thead>
<tbody><tr><td>maths</td></tr></tbody>
</table>
</div></div>
</div>
<?php $n++; ?>
</tbody>
</table>
<script type="text/javascript">
function followup(obj)
var id = $(obj).data('id');
//console.log(id);
$("#popup-"+id).show();
</script>
</body>
</html>
这是我得到的输出。
为什么我需要一个嵌套表,因为当我添加以下代码并单击后续按钮时,我会全屏显示弹出窗口。
</tr>
<div id="popup-<?=$row->o_id;?>" style="display: none;">
<!--more details here-->
</div>
</tbody>
</table>
如果我在弹出窗口中添加了一个表格来显示以下列表,那么它就不起作用了。
</tr>
<div id="popup-<?=$row->o_id;?>" style="display: none;">
<table border="1">
<thead><th>sub</th></thead>
<tbody><tr><td>maths</td></tr></tbody>
</table>
</div>
</tbody>
</table>
css
.view_popup_profile
position: fixed; /* Stay in place */
z-index: 9; /* Sit on top */
left: 0;
top: 0;
width: 100%; /* Full width */
height: 100%; /* Full height */
overflow: auto; /* Enable scroll if needed */
background-color: rgb(0,0,0); /* Fallback color */
background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
-webkit-animation-name: fadeIn; /* Fade in the background */
-webkit-animation-duration: 0.4s;
animation-name: fadeIn;
animation-duration: 0.4s;
/* Modal Content */
.profile_content
position: fixed;
top: 25%;
background-color: #fefefe;
width: 100%;
-webkit-animation-name: slideIn;
-webkit-animation-duration: 0.5s;
animation-name: slideIn;
animation-duration: 0.5s;
max-width: 922px;
margin: auto;
left: 0;
right: 0;
box-shadow: 0 0 15px rgba(0,0,0,.3);
/* The Close Button */
.profile_header
padding: 1px 20px;
background-color: #fafafc;
color: white;
/* min-height: 58px; */
border-bottom: 1px solid #f7f7f7;
display: block;
width: 100%;
.profile_header:after
content: '';
width: 0;
height: 0;
border-left: 17px solid transparent;
border-right: 17px solid transparent;
border-top: 16px solid #f7f7f7;
position: absolute;
.profile_body
padding: 35px 50px;
.profile_footer
padding: 0;
background-color: #fdfdfe;
color: #858585;
pcolor: #000;
/* Add Animation */
@-webkit-keyframes slideIn
from
top: -500px;
opacity: 0
to
top:25%;
opacity: 1
@keyframes slideIn
from
top: -500px;
opacity: 0
to
top:25%;
opacity: 1
@-webkit-keyframes fadeIn
from
opacity: 0
to
opacity: 1
@keyframes fadeIn
from
opacity: 0
to
opacity: 1
【问题讨论】:
是的,您可以嵌套一个表格,但它必须位于其中一个表格单元格内,介于<td>
和 </td>
之间或介于 <th>
和 </th>
之间。这就是表格的工作方式:所有内容都需要在标题或数据单元格中。
@lurker,我尝试使用 您当然可以制作嵌套表格。在td
标记之前,让所有内容都像普通表格一样。在这里面,制作表格标签和所有东西。你所做的首先是糟糕的缩进(我在 JSFiddle 中整理过
这是表格单元格的样子:
<td>
<table>
<thead>
<th>sub</th>
</thead>
<tbody>
<tr>
<td>maths</td>
</tr>
</tbody>
</table>
</td>
您还可以使用具有相似结果的 colspan 和 rowspan,以防止被复杂的设计冲昏头脑。
<tr>
<td rowspan = 2>10</td>
<td> 10 </td>
</tr>
<tr>
<th>sub</th>
</tr>
<tr>
<td>math>
</tr>
【讨论】:
我很确定他们想要在这里有一些动态的东西。这实际上只是一个“HTML 101”示例。并且没有任何事情没有说(在 cmets 中)。我不会对此投反对票,但我当然也不会投赞成票; 诚实。 @FunkFortyNiner 我正在写这个答案,而另一个答案已经发布。另外,他问怎么做嵌套表,我回答了。 哦,我对那个马文没有意见。我只是感觉他们正在寻找动态解决方案,而不是静态解决方案。 @FunkFortyNiner 我还要补充一点,他们可以使用 col 和 row span 而不是嵌套表作为建议,但我必须先发布我的答案的第一部分。 如果你的意思是用户交互、数据、客户端和php,那么你是对的。我没有使用 PHP 的经验,所以我只是想给他一个大纲,说明他应该做什么。【参考方案2】:是的,您绝对可以在表格中添加表格,但请记住将它们添加到表格单元格中,即<td></td>
以下是参考链接,不要害怕尝试!
参考:https://www.yourhtmlsource.com/tables/nestingtables.html
(ps.如果您担心在单元格中创建额外的空格,您可以在 css 中修改单元格或嵌套表格的样式,例如调整边距或填充。
插件:
您可以尝试使用 jquery 从单击的链接中获取 data
并从链接中删除 onclick=followup(this)
将此添加到您的脚本中并尝试一下:
$(".archive").on('click',function()
var id = $(this).data('id');
$("#popup-"+id).show();
)
【讨论】:
是的,我在上传问题之前阅读了这篇文章。我试过 你想在表格单元格中实现什么?弹出模式还是嵌套表? 我为空间添加了样式 display:none 但这不是单元格,这是我必须在全屏上覆盖的弹出窗口。我在问题中添加了我需要一个弹出窗口。或者有没有其他方法可以处理这个问题? 那你为什么要把它们放在桌子上呢?只需将它们放在 HTML 的末尾即可。 @Mike,如果我在 HTML 的末尾添加,那么当我点击后续按钮时,它只会说最后一个 id 值以上是关于我们可以在`<tr></tr>`之后使用嵌套表吗?的主要内容,如果未能解决你的问题,请参考以下文章
使用 jquery 和 js 将 <td> 元素动态添加到 <tr> 元素中