CSS:内联元素伸展以填充容器的可用水平空间 - 代码日志

CSS:内联元素伸展以填充容器的可用水平空间

例如,我有一个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>
http://stackoverflow.com/questions/989859/css-inline-element-stretch-to-fill-available-horizontal-space-of-container

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:CSS:内联元素伸展以填充容器的可用水平空间