【发布时间】:2012-06-15 10:47:38
【问题描述】:
我有一个导航栏,它告诉用户通过更改文本颜色和黑色背景选择了哪个页面。我只想使当前页面导航中的文本透明。
此处的示例:sammarchant.co.uk/new - 向下滚动到灰色区域以查看
我使用 CSS3 进行了研究,但没有运气,我想将加载时间降至最低,因此不想使用图像。
【问题讨论】:
标签: css
我有一个导航栏,它告诉用户通过更改文本颜色和黑色背景选择了哪个页面。我只想使当前页面导航中的文本透明。
此处的示例:sammarchant.co.uk/new - 向下滚动到灰色区域以查看
我使用 CSS3 进行了研究,但没有运气,我想将加载时间降至最低,因此不想使用图像。
【问题讨论】:
标签: css
这对于普通的 CSS/CSS3 是不可能的。
即使您确实使文本透明,滚动到灰色区域时它也不会显示为灰色。如果文本是透明的,它会在其后面显示黑色背景。
但是,您可以使用一些 javascript 来检测背景是什么,并据此更改字体的颜色。
【讨论】:
在纯 CSS 中不使用图像的另一种方法是使用自定义字体。您所要做的就是找到/创建一个字体,其中的字符是黑色背景的透明字母。类似于this font
您可以在服务器上放置适当的字体并使用CSS @font-face 规则将其导入
【讨论】:
代码应该是这样的:-
nav a.current {
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
filter: alpha(opacity=50);
-moz-opacity:0.5;
-khtml-opacity: 0.5;
opacity: 0.5;
}
编辑:根据您的评论添加此
CSS:
nav a.current span {
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
filter: alpha(opacity=50);
-moz-opacity:0.5;
-khtml-opacity: 0.5;
opacity: 0.5;
}
HTML:
<nav>
<ul>
<li><a href="#"><span>Link></span><a></li>
</ul>
</nav>
【讨论】:
<span> 中,然后降低其不透明度。例如像这样<a href="#"><span></span></a> 所以新的css选择器将是nav a.current span { }
您使用白色作为文本颜色并使用黑色作为背景 所以如果它是透明的,它看起来像灰色
您的代码看起来像这样
css
nav a.current {
background:black;
color: white;
padding: 5px;
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; /* For IE*/
filter: alpha(opacity=50);
-moz-opacity:0.5;
-khtml-opacity: 0.5;
opacity: 0.5;
}
Html
<nav>
<a class="current" href="index.html">home</a>
</nav>
【讨论】:
制作fontsize:0px。您将获得透明的文本。
【讨论】: