<table>中的Flex CSS属性在IE和Firefox上不起作用

Werasquez

我正在寻找一种解决方案,如何使Flex属性table在所有三种浏览器(IE,Firefox和Chrome)上的组件上均可工作

下面的代码只适用于Chrome(虽然-ms--webkit-添加前缀):

table {
  background-color: white;
}
.child {
  padding: 5px;
  margin: 5px;
  background-color: #eee;
  border: 3px solid;
}
.container {
  padding: 2px;
  background-color: yellow;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-align-content: center;
  -ms-flex-line-pack: center;
  align-content: center;
  -webkit-align-items: stretch;
  -ms-flex-align: stretch;
  align-items: stretch;
}
.child.one {
  color: green;
  -webkit-order: 1;
  -ms-flex-order: 1;
  order: 1;
}
.child.two {
  color: purple;
  -webkit-order: 2;
  -ms-flex-order: 2;
  order: 2;
  flex-shrink: 0;
}
.child.three {
  color: red;
  -webkit-order: 3;
  -ms-flex-order: 3;
  order: 3;
}
<table style="width:100%">
  <tbody>
    <tr class="container">
      <td class="child one" align="left">
        One
      </td>
      <td class="child two" align="center">
        Two.
        <br>Lorem ipsum
        <br>dolor sit amet
        <br>This is a bit longer line
      </td>
      <td class="child three" align="right">
        Three
      </td>
    </tr>
  </tbody>
</table>

请查看小提琴中的代码:http : //jsfiddle.net/ax961ys1/

隐藏的爱好

这似乎是由于每个.child元素都是display: table-cell;默认设置(预计这些元素确实是表单元格!)。

在Chrome中,当您使用flexbox模型时.container.child元素会自动转换为display: block;使flexbox正常工作元素

Chrome计算值

在Firefox和IE中,.child元素保留为display: table-cell;

Firefox计算值

CSS Flexible Box Layout Module的最新W3C草案指出:

弹性项目的显示值被块化:如果生成弹性容器的元素的流入子项的指定显示为内联级别的值,它将计算为其等效的块级别。(有关此类显示值转换的详细信息,请参见CSS2.1§9.7[CSS21]和CSS Display [CSS3-DISPLAY]。)

Flex项目(https://drafts.c​​sswg.org/css-flexbox-1/#flex-items

这表明应该将flex项目更改为其等效的块级(如果它还不是块级元素)。

草案更进一步指出:

display的某些值通常会触发在原始框周围创建匿名框。如果这样的盒子是弹性物品,则首先将其封闭,因此不会发生匿名盒子的创建。例如,两个具有display:table-cell的连续flex项目将变为两个单独的display:block flex项目,而不是被包装到单个匿名表中。

Flex项目(https://drafts.c​​sswg.org/css-flexbox-1/#flex-items

在这种情况下,Chrome似乎正在这样做,而IE和Firefox却没有。匿名表的存在和.child元素未被阻塞的事实似乎是该行为的原因。

要在Chrome,IE和Firefox中获得相同的结果:

  • 添加display: block;.child
  • 为了确保.child元素在IE中正确包装,请添加display: block;tabletbody

table {
  background-color: white;
  display: block; /*Required for wrap to work correctly in IE*/
}
tbody {
  display: block; /*Required for wrap to work correctly in IE*/
}
.child {
  padding: 5px;
  margin: 5px;
  background-color: #eee;
  border: 3px solid;
  display: block;
}
.container {
  padding: 2px;
  background-color: yellow;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-align-content: center;
  -ms-flex-line-pack: center;
  align-content: center;
  -webkit-align-items: stretch;
  -ms-flex-align: stretch;
  align-items: stretch;
}
.child.one {
  color: green;
  -webkit-order: 1;
  -ms-flex-order: 1;
  order: 1;
}
.child.two {
  color: purple;
  -webkit-order: 2;
  -ms-flex-order: 2;
  order: 2;
  flex-shrink: 0;
}
.child.three {
  color: red;
  -webkit-order: 3;
  -ms-flex-order: 3;
  order: 3;
}
<table style="width:100%">
  <tbody>
    <tr class="container">
      <td class="child one" align="left">
        One
      </td>
      <td class="child two" align="center">
        Two.
        <br>Lorem ipsum
        <br>dolor sit amet
        <br>This is a bit longer line
      </td>
      <td class="child three" align="right">
        Three
      </td>
    </tr>
  </tbody>
</table>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

隐藏的溢出在Firefox上不起作用,但在IE和chrome中起作用

来自分类Dev

CSS代码在Firefox和IE中不起作用

来自分类Dev

高度:表格单元中的100%在Firefox和IE上不起作用

来自分类Dev

css 背景属性在 chrome 和 firefox 中不起作用

来自分类Dev

CSS3中的翻转和旋转功能在Firefox上不起作用

来自分类Dev

IE CSS不起作用,但在Firefox中起作用

来自分类Dev

Display Flex在IE中不起作用

来自分类Dev

使用flexbox时,溢出属性在IE Edge和Firefox中不起作用

来自分类Dev

使用flexbox时,溢出属性在IE Edge和Firefox中不起作用

来自分类Dev

flex 在 Firefox 53 中不起作用

来自分类Dev

为什么 css 在 Firefox 和 Chrome 中按预期工作时在 IE 中不起作用?

来自分类Dev

文本溢出省略号和flex在Firefox上不起作用

来自分类Dev

Javascript下载在Firefox和IE中不起作用

来自分类Dev

document.execCommand在Firefox和IE中不起作用

来自分类Dev

剪切路径在Firefox和IE中不起作用

来自分类Dev

Javascript在Firefox和IE / Edge中不起作用

来自分类Dev

Date.parse()在IE和FireFox中不起作用

来自分类Dev

scrollTop在Firefox和IE中不起作用

来自分类Dev

align =“ center”在Firefox和IE中不起作用

来自分类Dev

我正在使用div通过CSS background-image属性显示横幅图像,它在IE11和Firefox 27.01中不起作用

来自分类Dev

Rect x和y属性在Firefox中不起作用

来自分类Dev

CSS Flex布局在某些iPad上不起作用

来自分类Dev

CSS动画在IE和Edge中不起作用

来自分类Dev

CSS在Chrome / Firefox中不起作用(渲染)但在IE10 / Edge中起作用

来自分类Dev

CSS动画在Firefox和IE上不起作用

来自分类Dev

Python IIS在FireFox中不起作用,但在IE和Chrome中起作用

来自分类Dev

为什么在Firefox和Chrome上工作时,此CSS代码在IE 10中不起作用

来自分类Dev

Flex流在IE11中不起作用

来自分类Dev

display:table&display:table-cell在IE9中不起作用

Related 相关文章

  1. 1

    隐藏的溢出在Firefox上不起作用,但在IE和chrome中起作用

  2. 2

    CSS代码在Firefox和IE中不起作用

  3. 3

    高度:表格单元中的100%在Firefox和IE上不起作用

  4. 4

    css 背景属性在 chrome 和 firefox 中不起作用

  5. 5

    CSS3中的翻转和旋转功能在Firefox上不起作用

  6. 6

    IE CSS不起作用,但在Firefox中起作用

  7. 7

    Display Flex在IE中不起作用

  8. 8

    使用flexbox时,溢出属性在IE Edge和Firefox中不起作用

  9. 9

    使用flexbox时,溢出属性在IE Edge和Firefox中不起作用

  10. 10

    flex 在 Firefox 53 中不起作用

  11. 11

    为什么 css 在 Firefox 和 Chrome 中按预期工作时在 IE 中不起作用?

  12. 12

    文本溢出省略号和flex在Firefox上不起作用

  13. 13

    Javascript下载在Firefox和IE中不起作用

  14. 14

    document.execCommand在Firefox和IE中不起作用

  15. 15

    剪切路径在Firefox和IE中不起作用

  16. 16

    Javascript在Firefox和IE / Edge中不起作用

  17. 17

    Date.parse()在IE和FireFox中不起作用

  18. 18

    scrollTop在Firefox和IE中不起作用

  19. 19

    align =“ center”在Firefox和IE中不起作用

  20. 20

    我正在使用div通过CSS background-image属性显示横幅图像,它在IE11和Firefox 27.01中不起作用

  21. 21

    Rect x和y属性在Firefox中不起作用

  22. 22

    CSS Flex布局在某些iPad上不起作用

  23. 23

    CSS动画在IE和Edge中不起作用

  24. 24

    CSS在Chrome / Firefox中不起作用(渲染)但在IE10 / Edge中起作用

  25. 25

    CSS动画在Firefox和IE上不起作用

  26. 26

    Python IIS在FireFox中不起作用,但在IE和Chrome中起作用

  27. 27

    为什么在Firefox和Chrome上工作时,此CSS代码在IE 10中不起作用

  28. 28

    Flex流在IE11中不起作用

  29. 29

    display:table&display:table-cell在IE9中不起作用

热门标签

归档