【问题标题】:Ordered List margin problems (some with IE7)有序列表边距问题(一些与 IE7 相关)
【发布时间】:2013-12-24 07:59:35
【问题描述】:
  1. 我正在尝试创建一个 OL,它与上面的标题文本保持在同一边距线上; 将 margin-left 和 padding-left 设置为 0px 使其离我的 DIV 太远了(不知道为什么), 所以我将它们都设置为 11px;但是在 IE7(使用 IE10 控制台)上,向左偏移大约 3px。

  2. 另一个问题是我在这里找不到减少每个数字和文本之间内边距的解决方案。

这是我的代码:

<div id="container">
 <div id="left">
  <div id="marg">
  <p class="title">Title</p>
 <ol class="list">
   <li>aaa</li>
    <li>aaa<br>
        aaa<br>
        aaa
   </li>
 <li>aaa</li>
 </ol>
</div>
</div>
<br style="clear: left;" />
</div>

CSS:

#container {
    border: 1px solid #DCD7D4;
    width: 740px;
    min-height: 680px;
    position: relative;
    margin-left: auto;
    margin-right: auto;

}

#marg {
    margin: 10px;
}
.list {
    font-size: 15px;
    color: #000000;
    font-weight: normal;
    line-height: 21px;
    margin-top:0px;
    margin-bottom:8px;
    margin-left: 0px;
    padding-left: 11px;     
}

.title {
    font-family: tahoma,arial;
    font-size: 22px;
    color: #E25424;
    letter-spacing: 0em;
}

谢谢

【问题讨论】:

  • 听起来您可能想将列表本身的list-style-position 更改为inside。否则,请注意数字在元素的外部,因此margin: 0; padding: 0 会将这些数字放在容器之外。
  • 我刚刚尝试将其添加到代码中,但是第 2 行中的第二个和第三个“aaa”没有对齐,它们与项目符号而不是文本的其余部分对齐。所以我需要一个完整的解决方案...

标签: html css


【解决方案1】:

我想你的两个问题都可以通过为每个 li 元素设置样式来解决。

你只需要给他们padding-left,这将是你的文本与数字的距离。

要将所有 OL 推到左侧,请使用向左填充,margin:0 到所有 OL

【讨论】:

  • 我刚刚尝试了 li 的样式,但在它们上留下的填充只能增加空间;关于 OL,零边距仍然可以将其排除在 div 之外...
  • 在 div 之外,因为这是 OL 元素的默认设置,将数字放在 OL 之外,也是他的父元素。您需要根据需要从 DIV 中填充 OL 填充。和 LI 的 Padding 作为你想要的从文本到数字的空间你使用重置 CSS 吗? meyerweb.com/eric/tools/css/reset这可以解决你这样的问题。
  • 我没有使用 CSS 重置,我只是尝试过但没有帮助...我不太了解您的其余建议,我尝试在任何地方修改填充,到目前为止没有任何帮助:/
【解决方案2】:

我会说问题出在您的 html 结构上。您不必在列表中使用 &lt;br&gt; 元素。您还需要某种重置来抵消各种默认浏览器样式。

HTML

<div>
   <h1>Title</h1>
     <ol>
       <li>aaa</li>
       <li>aaa
        <ul>
         <li>aaa</li>
         <li>aaa</li>
        </ul>
       </li>
      <li>aaa</li>
      <li>aaa</li>
     </ol>
 </div>

CSS

ol{
list-style-position: inside;
    margin: 0;
    padding: 0;
    margin-left: .5em;
}
ul{
    list-style-type: none;
    margin: 0; 
    padding: 0;
}
ol li{
    margin:0;
    padding:0;
}
ul > li{
    margin-left: 1em;
}

这是一个小提琴http://jsfiddle.net/Fxx2j/

【讨论】:

  • 谢谢,但关于项目符号和文本之间的边距 - 这确实适用于 chrome、ff 和 ie7,但不适用于 ie8-10,它们仍然呈现很大的常规间隙;关于额外的“aaa”,它们不是列表中的项目,有一个
    ,因为它基本上是一个很大的段落,太大而不能放在一行中;我仍然尝试过您的方法,但浏览器之间的第二个和第三个“aaa”存在对齐差异。
  • 您使用的是哪个重置?我建议规范化,因为它会消除浏览器之间的差异。
猜你喜欢
  • 2011-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-27
  • 1970-01-01
相关资源
最近更新 更多