我有一个包含15行的列表。我想将所有行居中到中心-15行居中。
我尝试使用text-align: center
,但是没有用。所有其他问题都涉及将所有列表项排成一行,因此这对我没有帮助。
li {
list-style: none;
text-align: center;
}
h1 {
text-align: center;
}
button {
display: block;
margin-right: auto;
margin-left: auto;
}
<h1>title for perspective</h1>
<button>button for perspective</button>
<ul class="tl">
<li>test list1</li>
<li>test list2</li>
<li>test list3</li>
<li>test list4</li>
<li>test list5</li>
<li>test list6</li>
<li>test list7</li>
<li>test list8</li>
<li>test list9</li>
<li>test list10</li>
<li>test list11</li>
<li>test list12</li>
<li>test list13</li>
<li>test list14</li>
<li>test list15</li>
</ul>
如您所见,列表实际上并没有与中心对齐:它在右边有些偏离。
如何将其更改为真正居中?
答案 0 :(得分:1)
答案 1 :(得分:1)
<ul>
上的边距和填充来自浏览器添加到元素的默认样式。例如,如果您打开Chrome的DevTools并检查<ul>
元素,您将看到这样的样式。 用户代理样式表是指浏览器的默认样式。由于浏览器默认具有1em
和16px
,因此font-size: 16px
的页边空白变为padding-left:40px
。
由于浏览器之间的默认样式并不相同,一种常见的技术是使用重置样式表(如Eric Meyer's Reset CSS或Nicolas Gallagher's normalize.css)来减少这些浏览器的不一致。
在这种情况下,您需要删除padding-left
以使元素保持水平对齐。
li {
list-style: none;
text-align: center;
}
h1 {
text-align: center;
}
button {
display: block;
margin-right: auto;
margin-left: auto;
}
/*newly added*/
ul.tl{
padding-left:0;
}
<h1>title for perspective</h1>
<button>button for perspective</button>
<ul class="tl">
<li>test list1</li>
<li>test list2</li>
<li>test list3</li>
<li>test list4</li>
<li>test list5</li>
<li>test list6</li>
<li>test list7</li>
<li>test list8</li>
<li>test list9</li>
<li>test list10</li>
<li>test list11</li>
<li>test list12</li>
<li>test list13</li>
<li>test list14</li>
<li>test list15</li>
</ul>
答案 2 :(得分:1)
答案 3 :(得分:0)
问题是UL标签上的左空白。向左填充:0;应该非常确定。
答案 4 :(得分:0)
UL元素的左填充为20px。如果删除,列表将居中。