假设我有文本框、下拉列表和提交按钮。它们都是内联元素。这意味着应该忽略“正式”的边距、填充、宽度和高度属性(实际上并非如此)。如果我要以正确的方式将高度设置为按钮,我会编写类似 display:block 的内容,然后定义高度。但是考虑到块级元素会意外扩展自身,所以我最好将其宽度设置为某个固定值。问题是我不知道它的宽度,因为它可以在按钮的文本上动态定义。
另一种情况:我希望通过<ul>
和创建一个菜单<li>
。我想让它水平对齐,一些项目向左分组,一些向右拉伸。<ul>
和都是<li>
块级元素。因为我希望我的菜单占据所有可用的水平空间,然后使用项目高度并将菜单项推到两侧,所以块模式对我来说很好。我将使用 float:left 和 float:right 来完成任务。但是再次使用应该为菜单元素设置宽度,因为它们是块元素。我不知道它们的宽度,因为项目的文本可能会有所不同。但似乎一切都被渲染得很好。
我没有注意到两个内联元素都被强制渲染为块元素而不被浮动或宽度设置,或者列表项示例有任何问题。无论当前版本是什么,它都可以在 IE7、FF3、Opera 9 和 Safari 中正常工作。问题仍然存在:我是否应该担心这些 inline-to-block 元素或真正的块元素浮动但没有设置宽度,或者只是让所有内容保持原样?我是否遗漏了某些东西,或者它只是您根本不应该期望得到正确的那些东西之一?