例如,我有一个200px的div包含三个按钮,文本只是最小的,所以按钮不填补可用的水平空间。是否有可能..
>使最后一个按钮伸展占用所有剩余的空间?
>第一个按钮伸展来填补剩下的空间,推动最后两个按钮?
>中间的按钮伸展来填补剩下的空间,推动最后一个按钮?
解决方法
我已经意识到,真正的问题是按钮不会拉伸,直到你给他们一个明确的宽度(即宽度:100%)。您仍然需要表格单元格,以将100%限制为“将适合”的模型。您可以在每个按钮上设置33%,但如果您的按钮被动态添加(除非您计算服务器上的百分比),则不会起作用。
方法1(不起作用):按钮不扩展以适合行(即,显示:表格单元格似乎被忽略)。
<div style="display:table;width:200px"> <div style="display:table-row"> <button style="display:table-cell">1</button> <button style="display:table-cell">2</button> <button style="display:table-cell">3</button> </div> </div>
对于IE8之前的IE,您需要提供一个真正的表格或像IE8-js这样的兼容性脚本。基本概念很简单:
<!--[if ie lt 8]> <script><!--pseudo-code,not real js--> for (el in getElementsByTagName('button')) { if el.style.find('display:table-cell') { el.innerHTML = '<td><button>'+el.innerHTML+'</button></td>' } } </script> <![endif]-->
方法2(作品):嗯..无论什么原因,显示:表格单元格样式在按钮元素上不起作用。我能够做一些额外的标记。
<div style="display:table;width:500px;"> <div style="display:table-row"> <div style="display:table-cell"> <button style="width:100%">1938274</button> </div> <div style="display:table-cell"> <button style="width:100%">2</button> </div> <div style="display:table-cell"> <button style="width:100%">3</button> </div> </div> </div>
我承认它不漂亮,但它将确保所有的水平空间都被填满。它可以通过使用像this demo这样的类放在一起来清理一下。不过,当结合IE的缺点这可能是一个我会说忽略纯粹主义者只是使用一个表的情况:
<style>table button {width:100%}</style> <table style="width:500px;"> <tr> <td><button>1938274</button> <td> <button>2</button> <td> <button>3</button> </tr> </table>