【问题标题】:padding is different for 2 lists with the same amount of items with and same class name对于具有相同数量和相同类名的项目的 2 个列表,填充不同
【发布时间】:2015-10-08 20:09:11
【问题描述】:

我创建了 2 个列表并使用 JS 将项目插入其中。它们都共享相同的类名,但是当我设置填充时,列表项有不同的结果。 这是我的代码https://jsfiddle.net/ums1ptL9/1/

HTML

  <main>
    <section class="section" id="top">
        <h4>Contacts</h4>
    </section>

     <section class="section" id="mid">
         <ul id="contacts"></ul>
         <ul id="contactinfo"></ul>
    </section>

    <section class="section" id="bottom">
        <select id="dropdown">
            <option value="email">Email</option>
            <option value="number">Phone Number</option>
        </select>
    </section>
</main>

JS

   $('#contacts').append('<li class="itemname" id="'+i+'"><a href="#">' + contactarray[i].name + '</a></li>');
   $('#contactinfo').append('<li class="itemname">' + contactarray[i][$('#dropdown').val()] + '</li>');

CSS

  .itemname {
    padding: 11% 0 11% 0;
    border: 1px solid rgb(19, 19, 19);
}

请查看 fiddle 获取完整代码

【问题讨论】:

    标签: javascript html css padding


    【解决方案1】:

    padding-toppadding-bottom 的百分比基于包含块级元素的宽度:https://developer.mozilla.org/en-US/docs/Web/CSS/padding-top

    因此,由于没有在contacts 和contactInfo 上设置相等的显式宽度,并且每个列表中的内容具有不同的自然宽度,因此填充具有不同的计算值。

    【讨论】:

    • 因此,您最好使用另一个相对单位,例如em。像padding: 1em 0; 这样的东西看起来是对的。
    • 同意。特别是如果两个列表的字体大小相同。
    猜你喜欢
    • 2018-01-24
    • 1970-01-01
    • 2012-07-19
    • 2020-03-20
    • 2013-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-14
    相关资源
    最近更新 更多