【问题标题】:Why is my table not displaying with a border?为什么我的表格没有显示边框?
【发布时间】:2013-04-24 03:16:08
【问题描述】:

我修改了我的 Site.css 文件,它被 _SiteLayout.cshtml 引用,试图给表格内容一个边框:

table {
    border-collapse: collapse;
    border-spacing: 0;
    margin-top: 0.75em;

    /* added below 4/23/2013 and commented out: border: 0 none; */
    border-color: #600;
    border-width: 0 0 1px 1px;
    border-style: solid;
}

. . .

td {
    padding: 0.25em 2em 0.25em 0em;

    /* added below 4/23/2013 and commented out: border: 0 none;*/
    border-color: #600;
    border-width: 1px 1px 0 0;
    border-style: solid;
    margin: 0;
    padding: 4px;
    background-color: #FFC;
}

我的表格没有边框,但是...为什么不呢?

更新

好的,现在,在尝试为表格添加边框之后,突然间 jQuery 不再工作了。所以这是独家新闻:

_SiteLayout.cshtml 引用 .css 文件:

<link href="~/Content/Site.css" rel="stylesheet" type="text/css" />

在我现在拥有的那个文件中:

table {
    border-collapse: collapse;
    border-spacing: 0;
    margin-top: 0.75em;

    /* added below 4/23/2013 and commented out: border: 0 none; 
    border-color: #600;
    border-width: 0 0 2px 2px;
    border-style: solid;*/
    border: 1px solid #600;
}

td {
    padding: 0.25em 2em 0.25em 0em;

    border:1px solid #600;
    margin: 0;
    padding: 4px;
    background-color: #FFC;
}

(省略号表示 table 和 td 之间还有其他标签,省略以避免混淆)

我的整个 Default.cshtml 是:

@{
    Layout = "~/_PlatypusLayout.cshtml";
    Page.Title = "Home Page";
}
        <input type="submit" id="submit" value="Get SSCSSETUP.XML" />
        <div id="Platypus_Setup">
        </div>
        <input type="submit" id="submit2" value="Get PlatypusSETUP_000002.XML" />
        <div id="Platypus_Setup2">
        </div>
        <input type="submit" id="submit3" value="Get PlatypusSETUP_000003.XML" />
        <div id="Platypus_Setup3">
        </div>
<script>
    $(document).ready(function () {
        $('#submit').click(function () {
            $.ajax({
                type: "GET",
                url: "DuckbillSETUP.XML",
                dataType: "xml",
                success: function (PlatypusSetupRec) {
                    var Platypussetup = "<table><thead><th>Platypus Number</th><th>Platypus Name</th></thead>";
                    $(PlatypusSetupRec).find('Platypus').each(function () {
                        var PlatypusNum = $(this).find('PlatypusNumber').text();
                        var PlatypusName = $(this).find('PlatypusName').text();
                        Platypussetup += "<tr>";
                        Platypussetup += "<td>" + PlatypusNum + "</td>";
                        Platypussetup += "<td>" + PlatypusName + "</td>";
                        Platypussetup += "</tr>";
                    });
                    Platypussetup += "</table>";
                    $('#Platypus_Setup').append(Platypussetup);
                },
                error: function (xhr) {
                    alert(xhr.status);
                }
            });
            return false;
        });
    });
</script>

表格在单击第一个按钮时显示,但是更改 Site.css 或因为我在 Chrome 中按 Ctrl+R 现在导致单击处理程序失聪或脱钩或否则以某种方式出现故障...

【问题讨论】:

  • . . . 实际上是您的 CSS 文件的一部分吗?您的代码似乎按原样工作:tinker.io/13ca8
  • 它正在工作,请参阅here,正如@cimmanon 所说,. . . 可能是问题所在。
  • 奇怪的是现在我将 1px 更改为 2px(不太想要 10),但是在按下 Ctrl+R (Chrome) 之后,按钮单击事件/jQuery 代码甚至都不起作用显然 - 现在 nothing 正在显示...
  • @ClayShannon 检查您的控制台日志中是否存在 js 错误。
  • @Fallup:你的意思是在 Firebug 中?我在 VS2012 中没有看到这样的工具。

标签: html css asp.net-webpages


【解决方案1】:

如果 table 和 td 样式定义之间的 3 个点也出现在您的代码中,则可能是原因。

【讨论】:

  • 不,那些省略号只是表示两个标签之间还有其他东西。
  • @ClayShannon 但边界工作正常,否则jsFiddle 所以问题出在其他地方。
  • 啊哈!我已经通过 NuGet 更新了我的 jQuery 和 jQuery-UI,虽然我的 Scripts 文件夹中的 .js 文件已经更新,但 _SiteLayout.cshtml 中的引用仍然引用了已被替换的旧库。我觉得很奇怪:(1) 没有生成错误消息,或者至少没有生成警告,(2) 当我“NuGot”最新的 jQuery 和 jQuery-UI 时,_SiteLayout.cshtlm 中的旧引用没有更新.因此,在更新了这些参考资料后,现在一切正常。
【解决方案2】:

"ReferenceError: $未定义[Break On This Error]...

这表明您的脚本不知道$ 是什么。有两个可能的问题:

  1. 您没有导入 jQuery(不太可能)
  2. 您在实际脚本之后导入了 jQuery.js

检查文件的导入顺序:首先是 jQuery,然后是脚本。

【讨论】:

  • 看到我上面的评论后你的线索;实际上,我的项目中包含一个版本,_SiteLayout.cshtml 中引用了另一个版本。
  • @ClayShannon 哦,确实很棘手。无论如何,很高兴我能帮上点忙。
【解决方案3】:

试着改成这样写:

边框:1px 实心 #600;

【讨论】:

    【解决方案4】:

    试试border:1px solid #600;,而不是你目前拥有的。

    【讨论】:

      【解决方案5】:

      这是JSFiddle

      HTML:

      <table>
      <tr><td>Test</td></tr>
      <tr><td>Test</td></tr>
      <tr><td>Test</td><td>Test 2</td></tr>
      </table>
      

      CSS:

      table {
          border-collapse: collapse;
          border-spacing: 0;
          margin-top: 0.75em;
          border: 1px solid #600;
      }
      
      td {
          padding: 0.25em 2em 0.25em 0em;
          border: 1px solid #600;
          margin: 0;
          padding: 4px;
          background-color: #FFC;
      }
      

      【讨论】:

      • 实际上 OPs 当前的解决方案也可以看到jsFiddle。正如其他人提到的那样,唯一可能的问题可能是...
      • 当我删除 . . .它奏效了。我还以为是省略号!
      猜你喜欢
      • 1970-01-01
      • 2015-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多