Html 用CSS隐藏文本,最佳实践?
假设我有一个用于显示网站徽标的元素:Html 用CSS隐藏文本,最佳实践?,html,css,hide,Html,Css,Hide,假设我有一个用于显示网站徽标的元素: <div id="web-title"> <a href="http://website.com" title="Website" rel="home"> <span>Website Name</span> </a> </div> 或 或 我还看到一些人将这三种方法结合起来。但实际上哪一种是
<div id="web-title">
<a href="http://website.com" title="Website" rel="home">
<span>Website Name</span>
</a>
</div>
或
或
我还看到一些人将这三种方法结合起来。但实际上哪一种是有效隐藏文本的最佳实践?您不能简单地使用
显示:无代码>像这样
HTML
或者,如果你想保留空间,那就玩玩“可见性”怎么样
.webname {
visibility: hidden;
}
实际上,最近出现了一种新技术。本文将回答您的问题:
它是可访问的,具有比-99999 px更好的性能
更新:正如@deathlock在评论区中提到的,上述修复()的作者建议使用: 若您愿意在标记中考虑到这一点(正如您在保留文本方面遇到的问题),我会选择jQuery UI在它们的:
如果您绝对拒绝为要隐藏在图像容器中的文本添加额外标记,则图像替换技术是很好的。大多数开发人员会这样做:
<div id="web-title">
<a href="http://website.com" title="Website" rel="home">
<span class="webname">Website Name</span>
</a>
</div>
.webname {
display: none;
}
您可以确保文本仍然可读。谷歌(搜索机器人)需要的是,向机器人提供的内容应与向用户提供的内容相同。缩进文本(任何文本)会让bot认为这是垃圾邮件,或者您正在向用户和bot提供不同的内容
最好的方法是直接使用徽标作为锚定标签内的图像。给你的图像加一个“alt”。这将是机器人阅读的完美选择,也将有助于图像搜索
这是直截了当的:我意识到这是一个老问题,但Bootstrap框架有一个内置类(仅限sr)来处理除屏幕阅读器以外的所有东西上的隐藏文本:
<a href="/" class="navbar-brand"><span class="sr-only">Home</span></a>
您只需将其透明即可
{
width: 20px;
height: 20px;
overflow: hidden;
color:transparent;
}
.hide-text{
color:rgba(0,0,0,0);
}
截至2015年9月,最常见的做法是使用以下CSS:
.sr-only{
clip: rect(1px, 1px, 1px, 1px);
height: 1px;
overflow: hidden;
position: absolute !important;
width: 1px;
}
将.hide text类添加到包含文本的范围中
.hide-text{
display:none;
}
或者使文本透明
{
width: 20px;
height: 20px;
overflow: hidden;
color:transparent;
}
.hide-text{
color:rgba(0,0,0,0);
}
根据您的用例使用。我是这样做的:
.hidden-text {
left: 100%;
display: inline-block;
position: fixed;
}
另一种方式
position: absolute;
top: 0px;
left: -5000px;
这可能有用
.hide-text {
opacity:0;
pointer-events:none;
overflow:hidden;
}
展示如何:无?不具建设性:目前来看,这个问题不适合我们的问答形式。我们希望答案能得到事实、参考资料或特定专业知识的支持,但这个问题可能会引发辩论、争论、投票或广泛讨论。这不是一个聪明的蠢货,但你不能换个形象标签吗?我只是一个务实的人,不喜欢丑陋的临时解决方案。也许我错了这里列出了大多数图像替换技术,它们的优缺点:最新技术综述:显示:没有一种对使用屏幕阅读器的人有很坏的影响。这是一个大的可访问性no-no.@Mr.Alien:我相信这是因为尊重CSS的屏幕阅读器会跳过未显示的元素。你不希望标题出现这种情况。基本上,你不想只对屏幕阅读器隐藏文本。但是阅读一个你想隐藏的文本有什么用呢?如果你真的想把它读出来,为什么要隐藏呢?这位用户在哪里说他想要一个与阅读器兼容的解决方案?他没有说他想要屏幕阅读器,但他问什么是最佳实践。提供良好的可访问性是正确的做事方式。想象一下,如果你对你的徽标和菜单项这样做,对屏幕阅读器来说会是毁灭性的。@Mr.Alien该徽标将替换显示网站名称的文本。有一个原因通常放在页面的第一位。。。大多数人想知道他们在什么网站上…这太棒了。你是怎么发现的?@Danger14不记得了,但是自从它被发布在Zeldman的网站上,一定有很多人在博客和Twitter上对它发表了评论。另一种使用clip的方法是:rect():只是更新:新的Kellum方法呢?如果您执行文本缩进:100%
+1操作,它将破坏您的表格单元格。如果您有一个仍需激活的链接,则此操作非常有效。我用它来摆脱旧图像滑块上的数字,链接工作正常。这是一个解决方案,最终满足了我的需要。我有一个按钮,它通过css背景图像属性有一个图形,在移动设备上我想折叠按钮并隐藏文本。这太棒了。遇到了一个问题,我想隐藏ajax文件上传程序的一些部分,比如dropzone和StatusContainer中的一些文本。这个小黑客成功了。根据MDN,clip属性现在已被弃用。正如其他人所说,display:none
对屏幕阅读器有非常坏的影响。
.sr-only{
clip: rect(1px, 1px, 1px, 1px);
height: 1px;
overflow: hidden;
position: absolute !important;
width: 1px;
}
.hide-text{
display:none;
}
.hide-text{
color:rgba(0,0,0,0);
}
.hidden-text {
left: 100%;
display: inline-block;
position: fixed;
}
position: absolute;
top: 0px;
left: -5000px;
.hide-text {
opacity:0;
pointer-events:none;
overflow:hidden;
}