我有几个关于浮动元素对齐的问题,我正在尝试制作里面有几个元素的表格单元格。就像文本输入然后下拉一样,当用户调整浏览器窗口大小时,只有文本输入应该调整大小。在这里,我是如何做到的:
<table style="width: 100%;">
<tr style="vertical-align: bottom;">
<td style="white-space: nowrap; width: 20%;">
<div><span style="float: right; display: block;">
<select style="display:show;width:60px">
<option selected="" value="1">1</option>
<option value="2">2</option>
</select>
</span> <span style="display: block; overflow: hidden; padding-right: 2px;">
<input type="text" value="100.0" style="width:100%; text-align:right"/>
</span></div>
</td>
</tr>
</table>
但浮动元素看起来有点高于非浮动。
当我有链接时,我还有另一种情况,然后输入文本字段,然后是下拉菜单或另一个链接,同样,输入字段应该是唯一可调整大小的元素。
这是代码
<table style="width: 100%;">
<tr style="vertical-align: bottom;">
<td style="white-space:nowrap; width: 30%;">
<span style="display: block; float: left; padding-top: 3px;">
<a href="return false;"><img width="14" height="14" src=""/>
</a>
</span>
<span style="float: right; display: block; padding-top: 5px;">
<a href="return false;"> ?</a>
</span>
<span style="display: block; overflow: hidden; padding-right: 2px;">
<input value=""style="width: 100%;">
</span>
</td>
</tr>
</table>
在这种情况下,非浮动元素高于其他元素:
基本上,我需要以某种方式垂直对齐第一个示例中的浮动元素,因此它的底部将与非浮动元素的底部相同,而在第二个示例中我需要以某种方式对齐非浮动元素的底部,所以它会与浮动元素相同。
我试图让它在 7、8、9、10 中工作。
添加填充可以解决问题,但是在 Firefox 和 chrome 中看起来会很丑。
编辑:
或者至少告诉我为什么不能这样做。
编辑2:
或者如果问题出在表格标签上?所以我需要使用不同的东西(divs)。整个结构就是一个表格,唯一的区别就是cell里面有一些select之类的,所以这里用table是很自然的。但是,好吧,如果问题出在表上,我会尝试用 div 重新创建它。
编辑3:
即使我删除了表格,样本 1 中的右浮动元素也会更高一些。我试图用填充和绝对定位替换浮动,但它仍然更高。
编辑4:
对于示例 1,如果我设置display: none
为左元素,则浮动元素垂直位置变为正常。
*** UPDATE: Sorry that was my mistake to put bounty on this question, i've already solved my problem.***