使用 CSS 使列表居中
Centering a list using CSS
我在将导航栏居中时遇到问题,我能看到问题,但我找不到真正的修复方法。抱歉,我是 CSS.
的新手
如您所见,列表的前面多了一个块。
我四处寻找修复方法,但如果不使用我想避免的绝对定位,我似乎无法使其适合。
这是一个 jsfiddle 页面,向您展示我的意思 - https://jsfiddle.net/h4ay0voj/2/
HTML代码:
<header>
<h1>Header</h1>
<ul class="menu">
<a class="active" href="">
<li class="selected">Link1</li>
</a>
<a href="">
<li>Link2</li>
</a>
<a href="">
<li>Link3</li>
</a>
<a href="">
<li>Link4</li>
</a>
<a href="">
<li>Link5</li>
</a>
</ul>
</header>
CSS代码:
header{
width:80%;
overflow: hidden;
color:#ffffff;
margin-bottom:1%;
background: #292E37;
}
header a:link {text-decoration:none;color:#ffffff;}
header a:visited{color:#ffffff;}
header a:hover{color:#292E37;}
header a.active{color:#4db8ff;font-weight:bold;cursor:default}
header h1{text-align: center;}
ul.menu{
width:40%;
text-align:center;
text-decoration:none;
color: #000000;
margin-left: auto;
margin-right: auto;
}
ul.menu li{
display: inline;
padding: 1%;
transition: background 0.2s;
padding-bottom:2.25%;
}
ul.menu li:hover{
background:#a7afbe;
transition: 0.3s ease;
border-bottom: 3px solid #4db8ff;
}
任何帮助将不胜感激:)
提前致谢!
不确定其他浏览器,但对于 Chrome,您可以看到正在应用 -webkit-padding-start: 40px;
。
您可以像这样将元素的填充设置为 0:
https://jsfiddle.net/byj0ye8g/
或者,解决此类问题的最佳方法是使用 CSS 重置,如下所示:http://meyerweb.com/eric/tools/css/reset/
此外,将锚标记放在列表项标记内,而不是围绕它们。
您用于导航栏的宽度太小导致导航栏 "crunching-up"。我已将 UL class 菜单的宽度增加到 60%。我更新了 JSFiddle 页面,所以你可以看看它是否正确。
正确代码如下:
ul.menu{
width:60%;
text-align:center;
text-decoration:none;
color: #000000;
margin-left: auto;
margin-right: auto;
}
我在将导航栏居中时遇到问题,我能看到问题,但我找不到真正的修复方法。抱歉,我是 CSS.
的新手如您所见,列表的前面多了一个块。 我四处寻找修复方法,但如果不使用我想避免的绝对定位,我似乎无法使其适合。
这是一个 jsfiddle 页面,向您展示我的意思 - https://jsfiddle.net/h4ay0voj/2/
HTML代码:
<header>
<h1>Header</h1>
<ul class="menu">
<a class="active" href="">
<li class="selected">Link1</li>
</a>
<a href="">
<li>Link2</li>
</a>
<a href="">
<li>Link3</li>
</a>
<a href="">
<li>Link4</li>
</a>
<a href="">
<li>Link5</li>
</a>
</ul>
</header>
CSS代码:
header{
width:80%;
overflow: hidden;
color:#ffffff;
margin-bottom:1%;
background: #292E37;
}
header a:link {text-decoration:none;color:#ffffff;}
header a:visited{color:#ffffff;}
header a:hover{color:#292E37;}
header a.active{color:#4db8ff;font-weight:bold;cursor:default}
header h1{text-align: center;}
ul.menu{
width:40%;
text-align:center;
text-decoration:none;
color: #000000;
margin-left: auto;
margin-right: auto;
}
ul.menu li{
display: inline;
padding: 1%;
transition: background 0.2s;
padding-bottom:2.25%;
}
ul.menu li:hover{
background:#a7afbe;
transition: 0.3s ease;
border-bottom: 3px solid #4db8ff;
}
任何帮助将不胜感激:) 提前致谢!
不确定其他浏览器,但对于 Chrome,您可以看到正在应用 -webkit-padding-start: 40px;
。
您可以像这样将元素的填充设置为 0:
https://jsfiddle.net/byj0ye8g/
或者,解决此类问题的最佳方法是使用 CSS 重置,如下所示:http://meyerweb.com/eric/tools/css/reset/
此外,将锚标记放在列表项标记内,而不是围绕它们。
您用于导航栏的宽度太小导致导航栏 "crunching-up"。我已将 UL class 菜单的宽度增加到 60%。我更新了 JSFiddle 页面,所以你可以看看它是否正确。
正确代码如下:
ul.menu{
width:60%;
text-align:center;
text-decoration:none;
color: #000000;
margin-left: auto;
margin-right: auto;
}