Answers:
这是一种方法:
h1 {
text-indent: -9999px; /* sends the text off-screen */
background-image: url(/the_img.png); /* shows image */
height: 100px; /* be sure to set height & width */
width: 600px;
white-space: nowrap; /* because only the first line is indented */
}
h1 a {
outline: none; /* prevents dotted line when link is active */
}
这是另一种隐藏文本的方式,同时避免了浏览器将创建的9999像素大框:
h1 {
background-image: url(/the_img.png); /* shows image */
height: 100px; /* be sure to set height & width */
width: 600px;
/* Hide the text. */
text-indent: 100%;
white-space: nowrap;
overflow: hidden;
}
为什么不简单使用:
h1 { color: transparent; }
color: transparent;
与一起使用user-select: none;
,除非您覆盖颜色。
只需将其添加font-size: 0;
到包含文本的元素中即可。
.hidden { font-size: 0; }
font-size: 0; hides text. <span class="hidden"> You can't see me :) </span>
跨浏览器最友好的方式是将HTML编写为
<h1><span>Website Title</span></h1>
然后使用CSS隐藏跨度并替换图像
h1 {background:url(/nicetitle.png);}
h1 span {display:none;}
如果可以使用CSS2,则可以使用一些更好的方法来使用该content
属性,但不幸的是,网络还没有100%可用。
除了其他答案,这是隐藏文本的另一种有用方法。
这种方法有效地隐藏了文本,但仍使其对于屏幕阅读器可见。这是一个考虑是否可访问性的选项。
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0,0,0,0);
border: 0;
}
值得指出的是,此类当前在Bootstrap 3中使用。
如果您有兴趣阅读有关可访问性的信息:
Jeffrey Zeldman建议以下解决方案:
.hide-text {
text-indent: 100%;
white-space: nowrap;
overflow: hidden;
}
它应该比 -9999px;
请在这里阅读所有内容:
http://www.zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement/
您只需添加以下属性即可隐藏文本:
font size: 0 !important;
!important
您的案例中是否确实需要该子句。就我而言,没有它也可以正常工作。
<style>
body {
visibility:hidden
}
body .moz-signature p{
visibility:visible
}
</style>
上面的方法在最新的Thunderbird中也很好用。
您可以使用css background-image
属性,并z-index
确保图像停留在文本的前面。
z-index
适用于background-image
。
实际上,这是一个值得讨论的领域,可以使用许多微妙的技术。选择/开发满足您的需求的技术很重要,包括:屏幕阅读器,图像/ css /脚本开/关组合,seo等。
以下是一些很好的资源,可帮助您开始使用Standardista图像替换技术:
http://faq.css-standards.org/Image_Replacement
h1 {
text-indent: -3000px;
line-height: 3000px;
background-image: url(/LOGO.png);
height: 100px; width: 600px; /* height and width are a must */
}
尝试使用此代码来缩短和隐藏文本
.hidetxt{
width: 346px;
display: table-caption;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
cursor: no-drop;
}
.hidetxt:hover {
visibility: hidden;
}
<div class="hidetxt">
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when</p>
</div>
或隐藏在CSS类中的使用 .hidetxt { visibility: hidden; }
如果我们可以编辑标记,那么生活会更轻松,只需删除文本即可开心。但是有时标记是由JS代码放置的,或者根本不允许我们对其进行编辑,但是糟糕的CSS变成了我们可以使用的唯一武器。
我们不能将<span>
文字换行并隐藏整个标签。顺便说一句,某些浏览器不仅隐藏元素,display:none
而且禁用其中的组件。
两者font-size:0px
和color:transparent
可能都是不错的解决方案,但是某些浏览器不了解它们。我们不能依靠他们。
我建议:
h1 {
background-image: url(/LOGO.png); /* Our image */
text-indent: -3000px; /* Send text out of viewable area */
height: 100px; width: 600px; /* height and width are a must, agree */
overflow:hidden; /* make sure our size is respected */
}
使用overflow:hidden
强制我们的宽度和高度。一些浏览器(不会命名为IE)可能会将width和height读取为min-width
和min-height
。我想防止盒子变大。
我实现此目标的方法之一是使用:before
或:after
。我使用这种方法已经有好几年了,尤其适用于字形矢量图标。
h1 {
position: relative;
text-indent: -9999px; /* sends the text off-screen */
}
h1:before {
position: absolute;
top: 0;
left: 0;
z-index: 1;
display: block;
width: 600px;
height: 100px;
content: ' ';
background: transparent url(/the_img.png) 0 0 no-repeat;
}
这对我有用跨度(淘汰验证)。
<span class="validationMessage">This field is required.</span>
.validationMessage {
background-image: url('images/exclamation.png');
background-repeat: no-repeat;
margin-left: 5px;
width: 16px;
height: 16px;
vertical-align: top;
/* Hide the text. */
display: inline-block;
overflow: hidden;
font-size: 0px;
}
h1{
background:url("../images/logo.png") no-repeat;
height:180px;
width:200px;
display:inline-block;
font-size:0px !important;
text-intent:-9999999px !important;
color:transparent !important;
}