代码之家  ›  专栏  ›  技术社区  ›  dr. squid

HTML:如何在HTML表内添加删除链接,但仍在表外可见

  •  1
  • dr. squid  · 技术社区  · 16 年前

    我有一个HTML表格,上面有一些表格数据。

    问题是我设计了一个在表外部(在表的左侧)的删除和编辑可视化链接,只有当用户悬停在表行上时,该链接才可见。

    如何在不破坏默认表布局的情况下添加这些链接?

    当前的问题是,我需要创建一个保持删除和编辑链接的链接,当表结构不可见时,这会使表结构混乱。

    那么,有没有一种方法可以将容器添加到不是TD的表中(需要遵循表行结构)?或者你知道一些做类似事情的例子吗?

    谢谢Hing是我在表外部(在表的左侧)设计了一个删除和编辑可视化链接,只有当用户悬停在表行上时才可见。

    如何在不破坏默认表布局的情况下添加这些链接?

    当前的问题是,我需要创建一个保持删除和编辑链接,当它们不可见时,这会破坏表结构。

    那么,有没有一种方法可以将容器添加到不是TD的表中(需要遵循表行结构)?或者你知道一些做类似事情的例子吗? Edit table

    谢谢

    3 回复  |  直到 16 年前
        1
  •  2
  •   David Thomas    16 年前

    有点复杂,但有个演示 JS Bin 来演示我的方法。我不完全确定 -webkit-border-radius 支持我使用的符号(我在支持 border-radius ,所以可能值得检查。

    顺便说一下,由于我所采用的方法(主要是为了避免手动添加类)可能是一个“干净”的设计,有一些接近出血边缘的CSS选择器,例如 tbody tr:nth-child(odd) td:first-child :nth-child(odd)

    body
    {
        background-color: #39f;
    }
    thead tr th,
     tbody tr td
    {
        background-color: #fff;
        border-collapse: collapse;
        color: #000;
        height: 2em;
        margin: 0;
        padding: 0.5em;
        vertical-align: center;
        width: auto;
    }
    tbody tr:nth-child(odd) td
    {
        background-color: #ffa;
    }
    th
    {
        font-weight: bold;
    }
    tr th:first-child,
     tr td:first-child,
     tbody tr:nth-child(odd) td:first-child
    {
        background-color: transparent;
        border-radius: 1em 0 0 1em;
        color: transparent;
        moz-border-radius: 1em 0 0 1em;
        padding: 0.5em 0 0.5em 0.5em;
        webkit-border-radius: 1em 0 0 1em;
    }
    tr:hover td:first-child,
     tbody tr:nth-child(odd):hover td:first-child
    {
        background-color: #fff;
        color: #000;
    }
    tbody tr:nth-child(odd):hover td:first-child
    {
        background-color: #ffa;
        color: #000;
    }
    

      <table cellspacing="0">
        <thead>
          <tr>
            <th></th>
            <th>visible</th>
            <th>visible</th>
            <th>visible</th>
            <th>visible</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>X</td>
            <td>visible</td>
            <td>visible</td>
            <td>visible</td>
            <td>visible</td>
          </tr>
          <tr>
            <td>X</td>
            <td>visible</td>
            <td>visible</td>
            <td>visible</td>
            <td>visible</td>
          </tr>
          <tr>
            <td>X</td>
            <td>visible</td>
            <td>visible</td>
            <td>visible</td>
            <td>visible</td>
          </tr>
        </tbody>
      </table>
    

    JS Bin


      body {
        background-color: #39f;
      }
      th {
        font-weight: bold;
        border-bottom: 2px solid #000;
      }
      th.title {
        border-bottom: 1px solid #000;
      }
        th.hidden {
          border: 0 none transparent;
        }
    thead tr th,
    tbody tr td {
        width: auto;
        height: 2em;
        vertical-align: center;
        background-color: #fff;
        color: #000;
        padding: 0.5em;
        margin: 0;
        border-collapse: collapse;
      }
    

        #preferred thead tr th:first-child {
          border: 0 none transparent; 
        }
      #preferred tbody tr:nth-child(odd) td {
        background-color: #ffa;
      }
      #preferred tr th:first-child,
      #preferred tr td:first-child,
      #preferred tbody tr:nth-child(odd) td:first-child {
        color: transparent;
        background-color: transparent;
        padding: 0.5em 0 0.5em 0.5em;
        -webkit-border-top-left-radius: 1em;
        -webkit-border-bottom-left-radius: 1em;
        -moz-border-radius: 1em 0 0 1em;
        border-radius: 1em 0 0 1em;
      }
    
      #preferred tr:hover td:first-child,
      #preferred tbody tr:nth-child(odd):hover td:first-child  {
        color: #000;
        background-color: #fff;
      }
      #preferred tbody tr:nth-child(odd):hover td:first-child  {
        color: #000;
        background-color: #ffa;
      }
    

      <table cellspacing="0" id="preferred">
        <thead>
          <tr>
            <th></th>
            <th class="title" colspan="4">id="preferred"</th>
          </tr>
          <tr>
            <th></th>
            <th>visible</th>
            <th>visible</th>
            <th>visible</th>
            <th>visible</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>X</td>
            <td>visible</td>
            <td>visible</td>
            <td>visible</td>
            <td>visible</td>
          </tr>
          <tr>
            <td>X</td>
            <td>visible</td>
            <td>visible</td>
            <td>visible</td>
            <td>visible</td>
          </tr>
          <tr>
            <td>X</td>
            <td>visible</td>
            <td>visible</td>
            <td>visible</td>
            <td>visible</td>
          </tr>
        </tbody>
      </table>
    

        #ieMaybe {
          background-color: #39f;
        }
      #ieMaybe th,
      #ieMaybe td {
        background-color: #fff;
      }
      #ieMaybe th.hidden,
      #ieMaybe td.hidden {
        color: #39f;
        background-color: transparent;
        padding: 0.5em 0 0.5em 0.5em;
        -webkit-border-top-left-radius: 1em;
        -webkit-border-bottom-left-radius: 1em;
        -moz-border-radius: 1em 0 0 1em;
        border-radius: 1em 0 0 1em;
      }
    
      #ieMaybe tr:hover td.hidden,
      #ieMaybe tr td.hidden:hover {
        color: #000;
        background-color: #fff;
      }
    

      <table cellspacing="0" id="ieMaybe">
        <thead>
          <tr>
            <th class="hidden"></th>
            <th class="title" colspan="4">id="ieMaybe"</th>
          </tr>
          <tr>
            <th class="hidden"></th>
            <th>visible</th>
            <th>visible</th>
            <th>visible</th>
            <th>visible</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td class="hidden">X</td>
            <td>visible</td>
            <td>visible</td>
            <td>visible</td>
            <td>visible</td>
          </tr>
          <tr>
            <td class="hidden">X</td>
            <td>visible</td>
            <td>visible</td>
            <td>visible</td>
            <td>visible</td>
          </tr>
          <tr>
            <td class="hidden">X</td>
            <td>visible</td>
            <td>visible</td>
            <td>visible</td>
            <td>visible</td>
          </tr>
        </tbody>
      </table>
    

    <!DOCTYPE html>

        2
  •  1
  •   Moin Zaman    16 年前

        3
  •  1
  •   pleasedontbelong    16 年前