2016-04-05 137 views
0

我在懸停的底部邊框上添加了額外的填充。有沒有辦法擺脫額外的填充?邊框上的額外填充

我曾嘗試:

#nav a:hover, #nav a:focus { 
    border-bottom: solid 3px #000; 
    padding: 0; 
} 

但是,使菜單項舉動,因爲原來的填充正在從它刪除。

HTML:

<nav id="nav"> 
    <div class="menu-main-container"> 
    <ul id="menu-main" class="menu"> 
     <li id="menu-item-47" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-33 current_page_item menu-item-47"><a href="/">Home</a></li> 
     <li id="menu-item-43" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-43"><a href="/contact/">Contact</a></li> 
    </ul> 
    </div> 
</nav> 

CSS:

#nav { 
    max-height: 100px; 
    overflow: hidden; 
} 
#nav ul { 
    margin: 0 0 30px 0; 
    text-align: center; 
} 
#nav ul { 
    margin: 0 0 30px 0; 
    text-align: center; 
} 
#nav li { 
    font: 400 18px/13px 'Open Sans', sans-serif; 
    display: inline-block; 
    text-transform: uppercase; 
} 
#nav a { 
    padding: 0 16px; 
    color: #343434; 
    font-weight: bold; 
} 
#nav a:hover, #nav a:focus { 
    border-bottom: solid 3px #000; 
} 

JSFiddle

+0

儘量把'#nav一個{行高:0; border-bottom:0px;}' – mmativ

+0

或檢查這一個,https://jsfiddle.net/ygewjby9/3/ – mmativ

+0

@mmativ不起作用,因爲邊界上還有額外的填充仍然 – user4756836

回答

1

發生這種情況,因爲邊境被添加在填充層中css box model,過程大概首先和最內側填充,然後邊框,然後邊距。爲了解決這個問題,你需要做到以下幾點:

取而代之的是:

#nav li { 
    font: 400 18px/13px 'Open Sans', sans-serif; 
    display: inline-block; 
    text-transform: uppercase; 
} 
#nav a { 
    padding: 0 16px; 
    color: #343434; 
    font-weight: bold; 
} 

這樣做:

#nav li { 
    padding: 0 16px; /* added here*/ 
    font: 400 18px/13px 'Open Sans', sans-serif; 
    display: inline-block; 
    text-transform: uppercase; 
} 
#nav a { 
    /*padding: 0 16px;*/ /* removed from here*/ 
    color: #343434; 
    font-weight: bold; 
} 

JSFiddle