0

嗨朋友们,我正在寻找一个严格的 CSS3 修复,用于使用背景图像和嵌套在导航列表中的自定义下划线上的不透明度过渡。经过一些研究,我意识到当前不支持背景图像转换,因此我尝试使用伪类构建不透明转换:在此之前,我相信它目前适用于最新版本的 Chrome 和 Firefox。任何人都可以提供的任何帮助将不胜感激,我在网上到处都看过,找不到其他人试图在自定义下划线背景图像上执行转换,所以希望它可以防止对某人的小挑战?

这是我目前的代码:

.sf-menu, .sf-menu * {
margin:0 auto;
padding:0;
list-style: none;}


.sf-menu {
float: left;
margin-left:27%;}


ul.sf-menu li {
position:relative;
line-height:40%;
margin-left:10px;
margin-right:10px;}


ul.sf-menu > li {
float: left;}


ul.sf-menu li {
white-space: nowrap; /* no need for Supersubs plugin */
*white-space: normal; /* ...unless you support IE7 (let it wrap) */ }  


ul.sf-menu li:hover > a {
background: url(../images/UNDERLINE.png) repeat-x 100% 100%;
-webkit-opacity:1;
-moz-opacity: 1;
opacity: 1;
-webkit-transition: opacity 1s;
-moz-transition: opacity 1s;
-ms-transition: opacity 1s;
-o-transition: opacity 1s;
transition: opacity 1s;}


ul.sf-menu li:before  {
content:"";
position:absolute;
z-index:-1;
top:0;
bottom:0;
left:0;
right:0;
background: url(../images/UNDERLINE.png) repeat-x 100% 100%;
-webkit-opacity: 0.1;
-moz-opacity: 0.1;
opacity: 0.1;}`

您还可以在 www.mdwoodman.co.uk 找到我网站的当前框架

提前致谢!

4

1 回答 1

0

您可以用 CSS 边框替换背景图像并对其进行过渡,这是您网站的近似值:

ul li a {
    color: white;
    text-decoration: none;
    font: bold 15px/150% sans-serif;
    text-transform: uppercase;
    padding: 2px 5px;
    border-bottom: solid #384740 3px;
    -webkit-transition: all 300ms ease;
    -moz-transition: all 300ms ease;
    -o-transition: all 300ms ease;
    transition: all 300ms ease;
}

ul li a:hover {
    color: #BDE2DF;
    border-bottom-color: #66FFB2;
}

要转换边框颜色,您可以获取计算的颜色,或者在 或 中声明您的颜色rgbahsla例如...

ul li a       { border-bottom: solid rgba(102, 255, 178, 0.1); }
ul li a:hover { border-bottom: solid rgba(102, 255, 178, 1.0); }

http://jsfiddle.net/de9wT/

于 2013-07-10T02:56:29.857 回答