css填充和尺寸

时间:2012-03-27 12:37:58

标签: html css padding

放置的常用方法,例如带背景的菜单选项卡如下:

<ul id="main-nav">
   <li><a href="url1.php">Menu 1</a></li>
   <li><a href="url2.php">Menu 2</a></li>
</ul>

然后用css

#main-nav li { float:left; margin-right:10px; list-style-type:none; }
#main-nav li a { display:block; padding:10px }

一切都很好,但是后来我决定为每个<li>使用图像,假设图像尺寸为200x200px,所以我添加以下内容:

#main-nav li a { 
   display:block; padding:10px;
   background:url(/img/tab-bg.png) transparent no-repeat; 
   width:200px; height:200px;
}

但由于内部链接的填充量为10px,我需要从锚点的宽度和高度减去20px,否则会导致li溢出。这是做这样事情的正确方法吗?我想如果以后我需要用更大的尺寸改变图像,我将始终需要记住将实际图像尺寸减去填充的2倍,是否有更简单的方法来实现这一点(无需减去每次都要迎合新的背景图片尺寸)?

1 个答案:

答案 0 :(得分:1)

使用box-sizing: border-box。然后宽度将包括填充和边框,而不是排除它。