【问题标题】:How to clear this properly in IE 7?如何在 IE 7 中正确清除它?
【发布时间】:2011-08-19 16:28:12
【问题描述】:

我有一个带有一系列 p 标签的 div 容器。每个 p 标签都会向左浮动。 我想要每行两个 p 标签,所以想想字段/值。

标题:一些标题
作者:一些作者

 <div id="container">
  <p class="field">Title</p><p>Some Title</p>
  <p class="field">Author</p><p>Some Author</p>
 </div>

如果我将“字段”类设置为 clear: both,我可以在除 IE 7 之外的大多数浏览器中获得所需的功能(不担心

标题:一些标题作者
某作​​者

一些想法:

  1. 我可以监控包含的 div 的宽度,这样只有两个 p 标签可以放在一条线上,但这似乎很脆弱。
  2. 我可以通过在每两个 p 标签后放置一个清除 div 来混淆标记。它会起作用,但会让我觉得内心很脏。

我该如何克服这个问题?

【问题讨论】:

  • 方案2解决了你的问题,好像没有什么让你觉得脏的东西,是结构元素,仅此而已。
  • 为我工作:jsfiddle.net/g9Bvb

标签: html css xhtml


【解决方案1】:

使用此模式(span 是可选的 - 如果需要,可用于附加样式)。列表比重新使用错误的标签更有意义。这是一个列表。 :)

<ul>
    <li><label>Title</label><span>Some Title</span></li>
     ...
</ul>

CSS:

ul, li {
    padding:0;
    margin:0;
    list-style-type:none
}  

li {
   clear:both
}

label {
   float:left;
   width:150px;
}

【讨论】:

  • 在这种情况下你不能不考虑花车吗?标签是内联元素,因此它们应该自动“浮动”在 span 的左侧。
  • 你需要这个来给 LABEL 一个固定的宽度来组成两列。如果不需要两列,则可以省略 FLOAT。
  • 要给标签一个固定的宽度,你不需要让它display: block;吗?
  • 哦,有趣,我猜浮动元素会自动将元素更改为块类型。 jsfiddle.net/nJJ8p/2
【解决方案2】:

http://jsfiddle.net/QUL9v/1/

使用 p 标签....

<div id="container">
    <p class="field">Title</p><p class="field">Some Title</p><div class="clear"></div>
    <p class="field">Author</p><p class="field">Some Author</p><div class="clear"></div>
</div>

用css:

.field {
    float: left;
}

.clear {
    clear: both;
}

这只是坚持使用 p 标签。就个人而言,这就是我将如何完成它(http://jsfiddle.net/QUL9v/3/):

<div id="container">
    <div class="field">Title</div>
    <div class="field">Some Title</div>
    <div class="clear"></div>
</div>
<div id="container">
    <div class="field">Author</div>
    <div class="field">Some Author</div>
    <div class="clear"></div>
</div>

我推荐这个的唯一原因是因为这更像是一个布局问题,我觉得使用 div 而不是 p 元素更自然。此外,无论您在 div 中放置什么(锚点、表单、表格等),它都会确保文本的位置。

您应该注意的另一件事是我使用 clear 作为最后一个兄弟而不是第一个(如您的示例中所示)。如果你正在清理前面;那么它可能是因为你的尾随元素是浮动的和内联的,你可能会在路上遇到错误,尤其是在 IE7 中。很多时候,浮动规则会传递给您从未打算或认为会传递给的元素。最后清除可确保不会发生这种情况。

【讨论】:

  • 谢谢戴夫。经过一番思考,清除 div 并没有那么糟糕。在某些情况下,我在一行中有两个字段/值,因此具有不中断每两个的灵活性是有帮助的。
猜你喜欢
  • 2018-03-13
  • 1970-01-01
  • 1970-01-01
  • 2019-07-25
  • 1970-01-01
  • 2018-02-21
  • 1970-01-01
  • 2021-05-08
  • 2014-09-08
相关资源
最近更新 更多