【问题标题】:CSS transition table-row heightCSS 过渡表格行高
【发布时间】:2017-12-21 02:13:03
【问题描述】:

我有一个 CSS 表。所有行的高度相同,但是当用户单击其中一个时,所选行应占据整个表格高度,其余行应逐渐消失。我只需在所有其他行上设置display:none 就可以让它工作,但我想对转换做一些事情。

我尝试将max-height 设置为 100%,然后将其更改为 0,但它只会使所选行略大于其余行,而其余行则保持原位。我尝试将height 从 100% 更改为 0,但高度为 100%,顶行很大,其余的大约 15px 高。

本质上,我想在height:autoheight:0 之间转换,但这不起作用。它所做的只是在没有过渡的情况下来回捕捉。关于如何在表格行上进行这项工作的任何想法?

【问题讨论】:

  • 这可能需要一点 javascript。
  • 是的。这就是我更改属性的方式,但我希望让 css 来处理实际的动画/过渡。

标签: css css-transitions css-tables row-height


【解决方案1】:

所以快速谷歌搜索显示this

.our_content {
    /* Initially we don't want any height, and we want the contents to be hidden */
    max-height: 0;
    overflow: hidden;

    /* Set our transitions up. */
    -webkit-transition: max-height 0.8s;
    -moz-transition: max-height 0.8s;
    transition: max-height 0.8s;
}
.outside_box:hover .our_content {
    /* On hover, set the max-height to something large. In this case there's an obvious limit. */
    max-height: 200px;
}

您需要更改类并在单击 js 时应用。我很好奇你的动画需要多么优美。如果需要打磨,我建议使用淡入淡出和调整大小。

tr {
  max-height: 0;
  overflow: hidden;
  -webkit-transition: max-height 360ms;
}

tr.selected {
    -webkit-animation:
    grow 420ms ease-in-out,
    fadeIn 540ms ease-in;
}
tr.deslection {
  -webkit-animation:
    shrink 420ms ease-in-out,
    fadeOut fadeIn 540ms ease-out;
}

@-webkit-keyframes grow {
  0% {
    max-height: /*initial row height*/;
  }
  100% {
    max-height: /*new row height*/;
  }
}
@-webkit-keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@-webkit-keyframes shrink {
  0% {
    max-height: /*new row height*/;
  }
  100% {
    max-height: /*initial row height*/;
  }
}
@-webkit-keyframes fadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

听起来你明白用 js 添加和删除类,所以我不解释了。如果您需要其他帮助,请发布一些代码。祝你好运!

【讨论】:

  • 不幸的是,我认为这不适用于表格行或单元格 - 它们似乎表现得独特。我自己也在尝试,但还没有找到可行的解决方案。
  • 你为什么用桌子?这使用 div 更容易实现。你能发布你的问题和代码然后回复吗?
  • 我很欣赏这个提议,但目前我的任务只是贡献样式 - 无法控制项目中使用的标记 :( 如果不是世界末日然而,过渡高度 - 只是有点额外的眼睛糖果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-16
  • 1970-01-01
  • 2015-12-09
  • 2015-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多