html - LI 元素内填充

标签 html css padding

我无法让 padding 属性在我的 <li> 中工作标签。

这是我的 CSS:

.menu li{
   height:50px;
   display: inline;
   padding:10px 15px 18px 15px;
   border-style: solid;
   border-width: 0px 2px;
   -moz-border-image: url(../img/menuborder.png) 0 2 stretch repeat;
   -webkit-border-image: url(../img/menuborder.png) 0 2 stretch repeat;
   -o-border-image: url(../img/menuborder.png) 0 2 stretch repeat;
   border-image: url(../img/menuborder.png) 0 2 stretch repeat;
   border-right:0;
}

.menu a{
   color:#fff;
   text-decoration: none;
   padding-top:10px;
} 

这是我的 .HTML:

   <ul class="menu">
        <li><a href="#">Dashboard</a></li>
        <li><a href="#">Incentives</a></li>
        <li><a href="#">Forum</a></li>
        <li><a href="#">Forum</a></li>
        <li class="last"><a href="#">Help</a></li>
    </ul>

然而,padding-top 似乎并没有影响 a 和 li 标签内的文本。

我做错了什么?

谢谢。

最佳答案

您可能需要将填充应用于 a 元素。并且您需要使它成为顶部/底部填充的 block 级元素:

.menu a { 
    color: #fff;
    display: inline-block;
    text-decoration: none;
    padding: 10px 15px 18px 15px;
} 

注意:inline-block 仅部分支持 IE7 及以下版本。如果以上没有按预期工作,您可以使用 display:block;float:left

同样重要的是要提到这里的基本问题是 CSS 中 li 上的 display:inline,以及 a 标签默认是 inline。您不能将顶部/底部填充应用到 inline 元素。

关于html - LI 元素内填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13019695/

相关文章:

html - 获取显示 :flex to behave like display:inline-block

css - :before, :填充之后

html - 为什么 break 标签显示在 span 类中?

html - 在 Iframe 中嵌入 ppt 文件

html - Bootstrap 3 - 填充网格列的链接按钮

javascript - Flot 轴标签在 Canvas 中的位置

html - CSS - 使子 div 具有与父 div 相同的填充

javascript - 当输入有焦点时保持 Div 的可见性

php - jQuery 选项卡的问题

css - :focus with Adjacent selector won't work on IE7