下面是一个最小的HTML示例,在更改浏览器(Firefox 43)宽度时的行为如下:
如您所见,无论CSS中的高度/最大高度规格如何,表格td字段都会增加其高度,同时减小宽度.
我想要发生的是在这种情况下,td单元格的指定高度 – 以及相应的宽度 – 在浏览器宽度改变时保持不变,而改变的是底部滚动条.
有什么方法可以用CSS,甚至JS来实现这个目标吗?
针对@tgallimore的问题:
>你能给桌子一个固定的宽度吗? – 不,我希望根据内容调整宽度
>你知道你希望每个细胞保留多宽吗? – 不,我希望它有一个固定的宽度,然后如果它足够两行文本,这些应调整为最佳宽度(即每行有大约相同的文本量)
>这个宽度可以给每个细胞吗? – 否,单元格将具有不同的文本内容,如示例中所示
回应@Leothelion的帖子:我想指定2em的固定高度(或者说,2.5em),因为我希望它能够为最多两行文本留出足够的垂直空间.所以我想要实现的目标是:
*如果单元格中的文本很短(即一个单词),则表示没有换行符,文本单行,单元格高度为2.5em
*如果单元格中的文本很长(整个句子),那么我希望布局能够确定单元格高度为2.5em,它最多可以容纳两行文本;之后它会尝试打破文本,使得两行中的字符数量大致相同(所以现在我们有一个“段落”;最后它会将单元格的宽度设置为这个新断行的宽度“段”.
换句话说,我想要这个布局:
…无论我如何缩放浏览器宽度;如果浏览器宽度太小,则只调整水平滚动条.
示例HTML代码:
<html> <head> <Meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <script type="text/javascript" src="../jquery-1.12.3.min.js"></script> <style type="text/css"> .mytbl,.mytbl tr th,.mytbl tr td { border-style: solid; border-color: #000; border-spacing: 0; border-collapse: collapse; padding: 4px; border-width: 1px; font: 12px helvetica,arial,sans-serif; } .mytbl tr td { height: 2em; max-height: 2em; } .mtytblwrap { border-width: 1px; border-color: #000; padding: 4px; overflow: auto; overflow-y: hidden; } </style> <script type="text/javascript"> ondocready = function() { // placeholder - nothing for Now... } $(document).ready(ondocready); </script> </head> <body> <h1>Hello World!</h1> <div id="wrapper1" class="mtytblwrap"> <table id="table1" class="mytbl"> <thead> <tr> <th> Dendrologist </th> <th> Iciness </th> <th> Joyfuldistortion </th> <th> Suburbicarian </th> <th> Ecballium </th> <th> AbulicNonviolence </th> <th> GrowlerTheocracy </th> <th> Necessitattion </th> </tr> </thead> <tbody> <tr> <td> A1 </td> <td> Just testing some longer content here,so long that it might not fit on a single line </td> <td> Molybdenum </td> <td> D1 </td> <td> Scanty distensibility </td> <td> Arithmetical </td> <td> G1 </td> <td> Hypallelomorph </td> </tr> </tbody> </table> </div> </body> </html>
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。