css - max-height: 100% 不适用于 textarea

Posted

技术标签:

【中文标题】css - max-height: 100% 不适用于 textarea【英文标题】:css - max-height: 100% doesn't work on textarea 【发布时间】:2017-05-10 02:03:32 【问题描述】:

我有一个div,它由页眉、文本区域和页脚组成。页眉和页脚与其内容一样大,而 textarea 占据了剩余空间。 textarea 的 max-height 为 100% ,因为 textarea 的高度不应超过 100%。但是,如果您调整 textarea 的大小,则 textarea 会高于父级的 100%。如何预防?

代码:http://jsfiddle.net/FC7eY/1650/

总结:

所有元素的高度之和必须为 100% textarea-wrapper div 的高度应为totalHeight(100%) - headerHeight - footerHeight 页眉和页脚不能有固定的高度,它们应该与其内容一样大。 父/包装 div 的高度必须为 80%,宽度必须为 350 像素

【问题讨论】:

由于每个父母的身高都为 100%,因此您的内容将根据孩子的身高动态增长;在这种情况下,文本区域。它正在做你告诉它做的事情:) 您能否更清楚地解释一下您想要输出的确切程度 @Geeky 当然,我在我的问题中添加了摘要。我希望现在一切都清楚了。 【参考方案1】:

如果您想查看相同屏幕尺寸的内容,您可以使用 calc css 作为 textarea 的高度和宽度。并且您使用显示表格和表格行来查看任何屏幕尺寸的所有元素,那么您可以在teaxarea div中使用高度计算函数来获取高度并从中删除页眉和页脚高度 ** 检查更新Updated Fiddle 查看css部分

更新:现在第二个 div 将采用剩余的高度和宽度,文本区域不会水平溢出

html,
body,
* 
  margin: 0;
  padding: 0;


.wrap 
  width: 350px;
  height: 80%;
  display: table;
  border: 3px solid magenta;


.wrap > div 
  background: red;
  display: table-row;
    height: 0;


#textarea-wrapper 
  background: pink;
  height: auto;


#text 
  max-width: calc(350px - 3px);
  max-height:100%;
<div class="wrap">
 <div id="header">Header<br>Header<br>Header<br>Header<br>Header<br></div>
 <div id="textarea-wrapper">
   <textarea id="text"></textarea>
 </div>
 <div id="footer">Footer<br>Footer<br>Footer<br>Footer<br></div>
</div> 

【讨论】:

我的页眉和页脚没有固定高度。他们应该和他们的内容一样高。 然后在 textarea#text max-height: 100% 中尝试最大和最小宽度高度 100% ;最大宽度:100%; @UUioP 查看更新。也许它会帮助你。 :) @谢谢!如果您将其包装在另一个 div 中,这会起作用吗? @UUioP 然后 div 的类或 id 将替换为正文部分 [jsfiddle.net/as58601r/2]

以上是关于css - max-height: 100% 不适用于 textarea的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法只用 CSS 覆盖自动缩放图像?

css: scroll-table

高度 100% 不适用于固定页脚 div

背景尺寸:100% 不适用于 iPhone

css裁剪图像保存纵横比

如何水平调整图像大小(通过 CSS)以适合框?