【问题标题】:css outline always on first table row on chromecss 轮廓总是在 chrome 的第一行
【发布时间】:2012-08-11 18:47:12
【问题描述】:

在谷歌浏览器上,当你在表格行上有大纲时,你只能在第一行得到它

所以使用这个 css:

tr { 
      outline:1px solid red; 
   }

你只会在第一行看到大纲,如果你在 chrome 中打开这个链接,你会看到:

http://jsbin.com/enupey/27/edit

有人知道任何解决方法/解决方法吗?

谢谢

【问题讨论】:

标签: html css google-chrome webkit


【解决方案1】:

虽然这似乎是一个错误,但在谷歌上搜索了一下,我找到了一个有效的解决方案,作为 this question 的一部分

添加:

display: block;

似乎有效:

tr
{
  outline:1px solid red;
  display: block;
}

编辑结果可见here


我稍微摆弄了一下 CSS,然后想出了这个:

td
{
  border-top:1px solid red;
  border-bottom:1px solid red;
  bottom-padding:-1px;
}

table
{
  border-left:2px solid red;
  border-right:2px solid red;
  border-top:1px solid red;
  border-bottom:1px solid red;
  bottom-padding:-1px;
}

这样合适吗?

警告:我只在 Mac 版 Google Chrome 上进行了测试。

【讨论】:

  • 确实有效,但它破坏了表格布局(如果您有表格标签的宽度,请注意)
  • 已编辑答案。主要区别在于我使用了边框而不是轮廓。
  • 添加 display:block 就足够了,因为我测试了
【解决方案2】:

table tag has a rules attribute 允许您定义边框在表格中的“规则”位置。但请注意:

所有主流浏览器都支持规则属性。

注意:IE 9 之前的版本不支持 rules 属性。

注意:Chrome 和 Safari 显示此属性不正确:他们添加 除了内部边界之外,受影响的外部边界。

将其与 frame attribute 和原始问题中的 CSS 相结合,可以在每一行上提供盒装轮廓:

<table rules="rows" frame="box">

这个修改可以看JSBinhere

(在 Mac Chrome 上测试)

(我已将此作为单独的答案添加,因为我之前的答案集中在 CSS 上,这个解决方案,仅使用 HTML 似乎足以区分答案)

【讨论】:

  • 根据table page on MDNrules 属性已被弃用。另见w3fools.com
  • 第一页也说不要使用 标签,但问题是它。
  • 如页面所述,不鼓励使用TABLE 标记进行布局。在语义 HTML 理论中,表格的目的是显示表格数据(数字、数字),因此使用它们是非常好的/鼓励的。该问题没有明确说明目的是否用于表格数据, rules 属性仍被弃用。
  • -1 用于引用 w3schools(不过实际上不会投反对票)
  • 我没有意识到 w3s 被认为是不可靠的。 MDN 是所有浏览器更可靠的来源吗?
【解决方案3】:

由于某些原因,这不是一个完美的答案,但我把它作为一个选项扔在那里......在TABLE 元素上设置border-collapse: collapse;,并在每一行的TD 和@987654325 周围设置边框样式@元素。最终输出见this JSBin。因为它依赖于border-collapse,所以如果没有IE6/7 中的附加cellspacing HTML 属性,它将无法工作。如果您要单独勾勒每一行,它也可能不会产生您正在寻找的相同效果。该解决方案还取决于:first-child:last-child 伪选择器的使用,而IE8 不支持:last-child。这可以通过在某些元素上添加“first”和“last”作为类来解决,但这并不理想。

【讨论】:

    【解决方案4】:

    使用display: block,您可以:

    HTML:

    <table>
      <tr>
        <td>ads</td>
        <td>azx</td>
        <td>bbb</td>
      </tr>
      <tr class='sel'>
        <td>ads</td>
        <td>azx</td>
        <td>bbb</td>
      </tr>
      <tr>
        <td>ads</td>
        <td>azx</td>
        <td>bbb</td>
      </tr>
    </table>
    

    CSS:

    tr
    {
    display: block;
    }
    
    tr.sel
    {
      outline: 1px solid red;
    }
    

    输出是:http://jsbin.com/enupey/79/edit

    【讨论】:

      【解决方案5】:

      这正如here 演示的那样有效,我相信没有任何重大副作用:

      tr
      {
        display: table-row-group;
        outline:1px solid red;
      }
      

      【讨论】:

        【解决方案6】:

        您可以使用如下代码。

        表格的HTML代码是

        <table rules='none'>
        
        </table>
        

        并使用

        更改 css
        tr.sel
        {
          border:1px solid red;
        }
        

        它将在任何浏览器中渲染中间原始边框。

        【讨论】:

          【解决方案7】:

          解决您的问题:将您的 CSS 更改为。

          tr
          {
            outline:1px solid red;
            display:inherit;
          }
          

            tr
             {
               outline:1px solid red;
               display:block;
             }
          

          如果您是concerned with table layout,那么您必须通过将margin 设置为某个负值来对抗空格。看这里:

          http://css-tricks.com/fighting-the-space-between-inline-block-elements/

          已经报告了一个错误后续链接:http://code.google.com/p/chromium/issues/detail?id=81373&q=outline&colspec=ID%20Pri%20Mstone%20ReleaseBlock%20OS%20Area%20Feature%20Status%20Owner%20Summary

          【讨论】:

          • display:inherit or block 破坏布局
          【解决方案8】:

          是的,这是一个错误

          尝试用边框代替轮廓,并给出表格样式border-collapse:collapse

          html 没有变化,现在是 css

          tr.sel
          {
            border:1px solid red; 
          
          }
          table{
            border-collapse:collapse;
          }
          

          演示

          fiddle , jsbin

          【讨论】:

          • 如果我已经使用边框了,我想在它周围画出轮廓
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-09-11
          • 2022-01-19
          • 2022-01-16
          • 1970-01-01
          • 1970-01-01
          • 2010-11-24
          相关资源
          最近更新 更多