Происходит то, что ваш position: absolute
выводит <a>
из потока (именно поэтому 1799 перемещается туда, где он был), а сам 1699 выталкивается за пределы экрана, потому что ваш min-height: 100%
в результате чего он составляет <a>
100% от высоты экрана, но <a>
начинается ниже верхней части высоты экрана.Я думаю, что вы можете достичь желаемого эффекта, заменив код hover
следующим:
a:hover {
color:#fff;
}
a:hover:after
{
content: '';
display: block;
position:absolute;
background-color:blue;
opacity:0.5;
max-width: 70px;
z-index: -1;
top:0;
bottom:0;
}
Единственное, я не могу проверить это прямо сейчас, чтобы увидеть, если after
псевдоэлемент можно комбинировать с псевдоклассом hover
.Если нет, то я рекомендую использовать ту же идею, создав <div>
внутри тега <a>
, чтобы стать эффектом столбца.
РЕДАКТИРОВАТЬ (на основе предложенного вами кода)
HTML
<body>
<div id="wrapper">
<div id="menu_wrapper">
<div id="menu">
<ul
<li><a href>1399</a></li>
<li><a href>1499</a></li>
<li><a href>1599</a></li>
<li><a href>1699</a></li>
<li><a href>1799</a></li>
<li><a href>1899</a></li>
<li><a href>1999</a></li>
<li><a href>2999</a></li>
</ul>
</div>
</div>
<div id="content">
<p>Ullamco laboris nisi ut labore et dolore magna aliqua. Ut enim ad minim veniam,
excepteur sint occaecat eu fugiat nulla pariatur. Quis nostrud exercitation
duis aute irure dolor lorem ipsum dolor sit amet.</p>
<p>Sed do eiusmod tempor incididunt in reprehenderit in voluptate ut enim ad
minim veniam. Ullamco laboris nisi eu fugiat nulla pariatur. Excepteur sint
occaecat quis nostrud exercitation mollit anim id est laborum. Lorem ipsum
dolor sit amet.</p>
<p>Duis aute irure dolor eu fugiat nulla pariatur. Consectetur adipisicing elit,
sunt in culpa in reprehenderit in voluptate. Ullamco laboris nisi sed do eiusmod
tempor incididunt qui officia deserunt. Duis aute irure dolor cupidatat non
proident, velit esse cillum dolore. Ut enim ad minim veniam, lorem ipsum dolor
sit amet, excepteur sint occaecat.</p>
<img src="../images/myimage.png" alt="" />
</div>
</div>
</body>
CSS
html, body {height: 100%; background-color: #F0F095; }
#menu_wrapper {width:900px; margin: 0 auto; height:150px;
background-color:#CC3300;border: 4px solid #000;}
#menu{margin:15px;border: 4px solid #000; height:25px;}
#menu ul{}
#menu ul, #menu li {list-style-type:none; margin:0; padding:0; text-indent:0;}
#menu ul li{ width:70px; float:left; }
#menu ul li:hover:after {content: ''; position:absolute;min-height:100%;width:70px; background-color:yellow; z-index:0; margin-left: -70px; opacity: .5}
a{width:100%; line-height: 25px; position: relative; z-index: 1;
text-align:center; float: left;
}
#wrapper {min-height:100%; background-color:#F1CA49; width: 1000px; margin: 25px auto;}