【问题标题】:Height of table needs to be same height as panel桌子的高度需要与面板的高度相同
【发布时间】:2010-10-21 12:47:22
【问题描述】:

在 IE8 和 Firefox 中我都遇到以下情况:

我有一个高度为 30 像素的面板,在这个面板中我有一个高度为 30 像素的单行表。当它显示在浏览器窗口上时,表格没有填满面板的高度(顶部和底部显示了少量面板。我该如何纠正这个问题,以便表格占据表格的整个高度?

标题栏CSS:

table.masterHeader
{
    background-color:transparent;
    border-collapse:collapse;
    height:30px;
    margin-left:auto;
    margin-right:auto;
    margin-top:0;
    margin-bottom:0;
    padding:0;
    display:block;
    width:820px;
    }

标题面板 CSS:

.HeaderPanel
        {
            background-color:#0079d0;
            height:30px;
            margin-left:auto;
            margin-right:auto;
            margin-bottom:0px;
            margin-top:0px;
            padding:0;
            width:820px;
            }

空格 CSS:

div.Spacer
{
    background-color:transparent;
    height:30px;
    }

主面板 CSS:

.MainPanel
{
    background-color:#6699cc;
    height:700px;
    margin-left:auto;
    margin-right:auto;
    width:820px;
    }

HTML 代码:

<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</asp:ToolkitScriptManager>
<div class="Page">
    <asp:Panel ID="HeaderPanel" CssClass="HeaderPanel" runat="server">
        <table class="masterHeader" cellspacing="0" cellpadding="0">
            <tr>
                <td class="Account"></td>
                <td class="Name"></td>
                <td class="Spacer"></td>
                <td class="CompanyName"></td>
                <td class="Logout"></td>
            </tr>
        </table>
    </asp:Panel>
    <asp:RoundedCornersExtender ID="HeaderPanelRounded" TargetControlID="HeaderPanel" runat="server" Radius="3" Corners="Bottom"></asp:RoundedCornersExtender>
    <div class="Spacer">&nbsp;</div>
    <asp:Panel ID="MainPanel" runat="server" CssClass="MainPanel">
        <div class="main">
            <asp:ContentPlaceHolder ID="MainContent" runat="server"/>
        </div>
    </asp:Panel>
</div>
<asp:RoundedCornersExtender ID="rceMainPanel" runat="server" TargetControlID="MainPanel" Radius="3">
</asp:RoundedCornersExtender>

【问题讨论】:

  • 那不是你的 HTML 代码。在输出生成的 HTML 之前,需要在服务器端进行处理。在查看页面时做一个查看源代码以获得真正的 HTML。我认为 asp:panel 总是被 div 替换,但它可能会显示服务器端标记没有的内容。

标签: html html-table panel


【解决方案1】:

您是否曾在 Firebug 之类的工具中查看过页面,您可以在其中查看每个 DOM 元素,查看属性(如边距、填充等)。这样您就可以准确地看到额外间距的来源,以及每个元素应用了哪些样式属性。

【讨论】:

  • 是的,我有,但我似乎找不到问题所在。我在顶部面板(有问题的面板)和主面板之间确实有一个垫片,该垫片渗入顶部面板大约 4-5 个像素。
  • 好的,我已将其添加到我的原始帖子中
  • 哦,这只是一段sn-p代码,完整的html标签集就在那里
  • 是的,事情就是这样
  • 好吧,我/我在这里有点抓不住稻草,但我会首先移除所有“超重行李”——RoundedCornersExtender、间隔 div 等等。如果只有您的面板并且它包含表格,它可以正常工作,然后一次添加一个东西,直到它中断。
【解决方案2】:

将单元格间距设置为 0

<table cellspacing="0">
   <tr>
      <td></td>
   </tr>
</table>

【讨论】:

  • 我完全忘记了单元格间距,但是,这个想法不起作用
  • 如何重置表格的边距和填充,即 table{margin:0;填充:0;}
【解决方案3】:

您尚未发布代码(HTML 或 CSS)或说明您在哪些浏览器中看到此内容,因此很难确定。一些建议:

  • 确保表格的边距为零
  • 确保面板没有任何填充
  • 确保单元格间距为零
  • 确保其他元素没有阻塞表格
  • 确保您的 css 样式没有在某处被覆盖

如果您还没有,您应该为 Firefox 安装 Firebug 插件 https://addons.mozilla.org/en-US/firefox/addon/1843/。这使得检查应用的 DOM 和 CSS 样式变得非常容易。

【讨论】:

  • 好的,我补充说我正在使用 IE8 和 Firefox 并在两者中体验它
  • 我不知道asp,是不是真正发送到浏览器的html?鉴于所有服务器标签,我想不会。所以发布实际发送给客户端的 html,或者更好的是,发布到页面的链接。
【解决方案4】:

因为 ASP:Panel 将面板分解为 div 标签,并且带有圆角,所以它为面板添加了另一个 1px 边框,该边框是在放置表格之后放置的。为了解决这个问题,表格必须放在一个 div 标签内,并将 div 浮动到面板上方。

【讨论】:

    【解决方案5】:

    我注意到您没有对表格边框做任何事情。这可能是您看到的差距吗?如果您的边框出于任何原因有任何宽度,那么它们可能会显示可能会给您带来问题的效果。

    根据我假设您输出的 HTML 最简单的形式,我做了一个快速的 jsfiddle 概念证明。我不熟悉 RoundedCornersExtender 控件,我怀疑它正在修改主 div 的 HTML。

    http://jsfiddle.net/tAgp3/1/

    您可以看到这种简化的形式有效,但我认为圆角正在尝试通过嵌入额外的带背景的 DIV 来做一些讨厌的技巧来做圆角。这些可能是导致您的额外填充的原因。

    我再次询问您是否可以将输出的 实际 html 发布到浏览器,以便我们查看是否是这种情况。

    【讨论】:

    • 其实边框设置为折叠背景色是透明的
    • 哎呀。我误读了,将编辑答案。尽管如此,你实际上并没有明确地摆脱你的边界。 Border-collapse 只选择你的边框模型,它不会将它们折叠成空。
    猜你喜欢
    • 2016-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 2019-02-27
    • 1970-01-01
    • 1970-01-01
    • 2022-11-04
    相关资源
    最近更新 更多