跨行内联块
时间:2020-03-05 18:45:02 来源:igfitidea点击:
我希望以下示例中的两个span标签彼此相邻显示,而不是在另一个下方显示。如果我将类span.right的宽度设置为49%,它们将彼此相邻显示。我无法弄清楚为什么将正确的跨度向下推,就像正确的跨度有一些不可见的填充/边距,使它占了50%以上。我正在尝试不使用html表来完成此操作。有任何想法吗?
<html> <head> <title>Test Page</title> <style type='text/css'> * { margin: 0; } html,body{ margin:0; padding:0; height:100%; width:100%; border:none; } div.header{ width:100%; height:80px; vertical-align:top; } span.left { height:80px; width:50%; display:inline-block; background-color:pink; } span.right { vertical-align:top; display:inline-block; text-align:right; height:80px; width:50%; background-color:red; } </style> </head> <body> <div class='header'> <span class='left'>Left Span 50% width</span> <span class='right'>Right Span 50% width</span> </div> </body> </html>
感谢解释。 float:left效果很好,在FF 3.1中具有预期的结果。不幸的是,在IE6中,右侧跨度呈现了50%的50%,实际上使宽度达到了浏览器窗口的25%。将其宽度设置为100%可以达到预期的结果,但是在FF 3.1(符合标准合规性模式)下会中断,我知道这一点。要使其在FF和IE 6中都能正常工作而又不求助于黑客攻击或者使用多个CSS工作表,这一直是一个挑战
解决方案
回答
float: left;
尝试将其添加到span.left
它将导致它向左浮动(如语法建议)。
我无论如何都不是CSS专家,所以请不要将此视为无可争辩的事实,但是我发现当某物漂浮时,它对它下面的东西的垂直位置没有影响。
如果将span.right浮动到右侧,然后在其下添加文本,我们应该会得到一些有趣的结果,要停止这些"有趣的结果",我们可以使用" clear:left / right / both",这将导致块具有清晰的样式在浮动到左/右/两者的任何东西之下W3Schools在此属性上也有一个页面。
欢迎来到Stackoverflow。
回答
我不喜欢这种骇客,但它似乎在Firefox和IE6中都能做到:
span.right { vertical-align:top; display:inline-block; text-align:right; height:80px; width:50%; *width:100%; background-color:red; }
注意" * width:100%",它似乎满足IE6的要求,但被Firefox忽略。