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>

猜你在找的CSS相关文章