【问题标题】:Remove indentation from an unordered HTML list从无序列的 HTML 列表中删除缩进
【发布时间】:2015-06-13 11:19:29
【问题描述】:

div.content 包含 ul.searchlist 和两个 lis(带有 白色背景的区域)在左侧没有完全对齐,因为它有一些额外的间距(带有 红色背景),我不知道是什么导致它出现以及如何删除它。

插图:

HTML:

<div id="body-content">
   <h1>Title of</h1>
   <div class="content">
      <p style="margin:0;">Subtitle</p> 
      <ul class="searchlist">
         <li>
            <img src="" title="result" width="110px"/>
            <a href="#">This is a post for  testing CSS</a>
         </li>
         <li>
            <img src="" title="result" width="110px"/>
            <a href="#">This is a post for  testing CSS</a>
         </li>
      </ul>
   </div>
</div>

CSS:

#body-content{ float:left; width:700px;background:yellow; }
.content .searchlist{ float:left; width:700px; list-style:none; margin:15px 0 0 0; background:red; }
.content .searchlist li{ padding:10px; float:left; width:688px; background:#fcfcfc; margin-bottom:6px; }
.content .searchlist li img{ float:left; margin-right:10px; }
.content .searchlist li a{ font:bold 18px Arial, Helvetica, sans-serif; color:#666; }

JSFiddle

【问题讨论】:

    标签: html css alignment html-lists spacing


    【解决方案1】:

    ul 中删除默认padding-left(此缩进确保标记不会被推到列表之外)和从li 中自定义padding 应该可以工作:

    .content ul.searchlist { padding-left : 0; }
    .content ul.searchlist li { padding : 10px 0; }
    

    JSFiddle

    【讨论】:

    • 感谢您的回答,但它不起作用!即使在您的示例中,它似乎也不起作用!
    • 尝试使用他的 CSS,而不是添加 CSS。 @OzzC 查看我的答案。 UL 已经有样式了。
    • 感谢您的帮助,它是正确的,所以我需要接受答案,但在我的示例中它仍然无法正常工作!我的
        现在在左边,但它不像卡在你的jsfiddle!真的不明白我哪里错了!
    • @OzzC :它完全向左浮动:jsfiddle.net/TM3zP/8。我添加了body{margin:0} 属性。或者 body-content 父元素可能具有 marginpadding 属性,所以我在您的示例中看不到它们。
    • 非常感谢您的帮助和关注!它现在工作了:)
    【解决方案2】:

    我认为您应该在其他代码之前重置默认样式表。这是最佳实践。例如下面:

    html, body, div, span, applet, object, iframe,
    h1, h2, h3, h4, h5, h6, p, blockquote, pre,
    a, abbr, acronym, address, big, cite, code,
    del, dfn, em, img, ins, kbd, q, s, samp,
    small, strike, strong, sub, sup, tt, var,
    b, u, i, center,
    dl, dt, dd, ol, ul, li,
    fieldset, form, label, legend,
    table, caption, tbody, tfoot, thead, tr, th, td,
    article, aside, canvas, details, embed, 
    figure, figcaption, footer, header, hgroup, 
    menu, nav, output, ruby, section, summary,
    time, mark, audio, video {
        margin: 0;
        padding: 0;
        border: 0;
        font-size: 100%;
        font: inherit;
        vertical-align: baseline;
    }
    /* HTML5 reset for older browsers */
    article, aside, details, figcaption, figure, 
    footer, header, hgroup, menu, nav, section {
        display: block;
    }
    body {
        line-height: 1;
    }
    ol, ul {
        list-style: none;
    }
    blockquote, q {
        quotes: none;
    }
    blockquote:before, blockquote:after,
    q:before, q:after {
        content: '';
        content: none;
    }
    table {
        border-collapse: collapse;
        border-spacing: 0;
    }
    

    【讨论】:

    • 您可以使用* { margin: 0; padding: 0; } 而不是列出元素...这也会导致其他任何依赖默认行为的问题。
    • 我们可以使用 * { margin: 0; padding: 0 } 也是,但我建议使用长代码。大多数开发人员都使用那个。
    • 我实际上从未见过有人这样使用它。如果您打算花时间列出标签,您不妨将这些修复添加到该标签的样式中。如果您要默认这么多,请在开发开始时将它们全部默认并在 CSS 中重新建立它们的样式。 * { } 也将在大多数浏览器中读取。就个人而言,我只是不使用重置,因为您可以为自定义站点执行每个元素。您不应该为其他人对您网站的更改如此简单地编写代码。以 Facebook 为例。
    【解决方案3】:

    您正在寻找 list-style-type: 而不是 list-style:,然后您需要将其设置为 marginpadding0,或者 w/p>

    .content .searchlist {
        float: left;
        width: 700px;
        list-style-type: none;
        margin: 0;
        padding: 0;
        background: red;
    }
    

    JSFiddle Example

    【讨论】:

      【解决方案4】:

      opera next、chrome、safari 和 webkit 似乎都在左侧添加了40px of padding

      来源:

      ul, menu, dir {
        display: block;
        list-style-type: disc;
        -webkit-margin-before: 1em;
        -webkit-margin-after: 1em;
        -webkit-margin-start: 0px;
        -webkit-margin-end: 0px;
        -webkit-padding-start: 40px;
      }
      

      修复:

      #body-content > div > ul {padding-left:0;}
      

      【讨论】:

      • 尝试使用他的 CSS,而不是添加 CSS。它有助于学习过程。
      • 公平点 WASqsquatch,我希望有一些简单的方法来提高这些人对内置开发人员工具的认识,这将使他们的生活更容易知道 ctrl+shift+i 做了什么。
      • 是的,我总是right click -&gt; inspect elementctrl+shift+i,如果不仅仅是为了窥探网站的酷炫功能。
      【解决方案5】:

      试试这个:

      .content .searchList {
         padding-left: 0px;
      }
      

      ul 元素默认以padding 开头。

      【讨论】:

      • 尝试使用他的 CSS,而不是添加 CSS。它有助于学习过程。
      • 编辑为 OP 如何在其 CSS 中定位元素。
      【解决方案6】:

      padding 设置为0

      .content .searchlist {
         background: none repeat scroll 0 0 #FF0000;
         float: left;
         list-style: none outside none;
         margin: 15px 0 0;
         width: 700px;
         padding: 0;
      }
      

      【讨论】:

        猜你喜欢
        • 2012-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多