设置背景图像时隐藏锚标签文本

Coo*_* Yo 3 css wordpress menu hide

我正在使用wordpress生成带有锚标签的ul,并且每个项目都有单独的类,我使用以下代码为每个锚标记设置背景图像

我想要做的是隐藏列表项锚点的文本,同时仍然为它设置背景图像.

.shop a {
    background-image:url('../images/shopFull.png');
    width:209px;
    height: 74px;
    display:block;
}
Run Code Online (Sandbox Code Playgroud)

这是输出的html

<nav class="menu-main-navigation-container"><ul id="menu-main-navigation" class="nav-bar"><li id="menu-item-22" class="shop menu-item menu-item-type-post_type menu-item-object-page menu-item-22"><a href="http://localhost:8888/goodMorningMoon/shop/">Shop</a></li>
<li id="menu-item-21" class="services menu-item menu-item-type-post_type menu-item-object-page menu-item-21"><a href="http://localhost:8888/goodMorningMoon/services/">Services</a></li>
<li id="menu-item-23" class="blog menu-item menu-item-type-post_type menu-item-object-page menu-item-23"><a href="http://localhost:8888/goodMorningMoon/blog/">blog</a></li>
<li id="menu-item-20" class="contact menu-item menu-item-type-post_type menu-item-object-page menu-item-20"><a href="http://localhost:8888/goodMorningMoon/contact/">Contact</a></li>
</ul></nav>
Run Code Online (Sandbox Code Playgroud)

elc*_*nrs 6

对此的经典黑客是:

a { text-indent: -9999px; }
Run Code Online (Sandbox Code Playgroud)

关于这个特定解决方案的问题对于SEO来说并不太好.如果你想要更可靠的东西你可以在白色backgorund上使用白色文字,或者这个其他黑客:

a { font-size: 0; }
Run Code Online (Sandbox Code Playgroud)


Gab*_*oli 5

使用text-indent MDN文档overflow:hidden.

shop a {
    background-image:url('../images/shopFull.png'); 
    width:209px; 
    height: 74px; 
    display:block;

    text-indent:-9999px;
    overflow:hidden;
}
Run Code Online (Sandbox Code Playgroud)