当前位置: 首页 > 面试题库 >

用徽标图像替换H1文本:SEO和可访问性的最佳方法?

夔庆
2023-03-14
问题内容

似乎那里有几种不同的技术,所以我希望对此有一个“明确的”答案…

在网站上,通常的做法是创建一个链接到首页的徽标。我想做同样的事情,同时针对搜索引擎,屏幕阅读器,IE 6+和禁用CSS和/或图像的浏览器进行最佳html" target="_blank">优化。

示例一: 不使用h1标签。对SEO不好,对吧?

<div id="logo">
    <a href="">
        <img src="logo.png" alt="Stack Overflow" />
    </a>
</div>

示例二: 在某处找到它。CSS似乎有点骇人听闻。

<h1 id="logo">
    <a href="">Stack Overflow</a>
</h1>



/* css */
#logo {
    padding: 70px 0 0 0;
    overflow: hidden;
    background-image: url("logo.png");
    background-repeat: no-repeat;
    height: 0px !important;
    height /**/:70px;
}

示例三: 相同的HTML,使用text-indent的不同方法。这是图像替换的“ Phark”方法。

<h1 id="logo">
    <a href="">Stack Overflow</a>
</h1>



/* css */
#logo {
    background: transparent url("logo.png") no-repeat scroll 0% 0%;
    width: 250px;
    height: 70px;
    text-indent: -3333px;
    border: 0;
    margin: 0;
}

#logo a {
    display: block;
    width: 280px; /* larger than actual image? */
    height: 120px;
    text-decoration: none;
    border: 0;
}

示例四: Leahy-Langridge-Jefferies方法。当图像和/或css关闭时显示。

<h1 id="logo" class="logo">
    <a href="">Stack Overflow</a>
</h1>



/* css */
h1.logo {
    margin-top: 15px; /* for this particular site, set this as you like */
    position: relative; /* allows child element to be placed positioned wrt this one */
    overflow:hidden; /* don’t let content leak beyond the header - not needed as height of anchor will cover whole header */
    padding: 0; /* needed to counter the reset/default styles */
}

h1.logo a {
    position: absolute; /* defaults to top:0, left:0 and so these can be left out */
    height: 0; /* hiding text, prevent it peaking out */
    width: 100%; /* 686px; fill the parent element */
    background-position: left top;
    background-repeat: no-repeat;
}

h1#logo {
    height: 60px; /* height of replacement image */
}

h1#logo a {
    padding-top: 60px; /* height of the replacement image */
    background-image: url("logo.png"); /* the replacement image */
}

哪种方法最适合这种事情?请在回答中提供HTML和CSS。


问题答案:

您缺少该选项:

<h1>
  <a href="http://stackoverflow.com">
    <img src="logo.png" alt="Stack Overflow" />
  </a>
</h1>

H1的href和img中的标题非常非常重要!



 类似资料:
  • 我正在使用开源的docker映像(Rundeck:3.3.8)试用Rundeck。我可以在默认的Rundeck徽标后添加一个自定义徽标,但是我不能用我自己的来替换默认的Rundeck徽标。有可能吗?我试着搜索运行台标志的png文件,但在我的Ubuntu系统中也找不到? 另外,是否可以更改自定义徽标的显示大小?正如您从下面的快照中所看到的,它将我的自定义徽标从原来的大小放大了相当多。

  • 我有一个文本文件(没有标点符号),文件大小约为100MB-1GB,以下是一些示例行: 以及替换标记列表,如下所示: 在文本文件上替换后我想要的输出如下所示: 该解决方案正在工作,但对于大量替换标记和大型文本文件,速度非常慢。有更好的解决方案吗?

  • 了解如何在当前文档、文件夹、站点或所有打开的文档中查找和替换代码、文本或标签(包含或不包含属性)。 使用 Dreamweaver 强大的查找和替换功能在当前文档、文件夹、站点或所有打开的文档中查找和替换代码、文本或标签(包含或不包含属性)。 您还可以将强大的模式匹配算法(正则表达式)用于高级查找和替换操作。 可以查找和替换的内容如下: 代码中的标签、属性和文本 一个选区或多个选区中的文本 多个文档

  • 问题内容: 说我们应该避免使用这种技术。这个说很棒。Google是否会在CSS文件中查找并惩罚您?:| 我使用的财产 很多 隐藏的文本。例如,我有一个由图标表示的按钮: CSS: 我看不到任何替代代码的方法。如果将其替换为图像,则每个按钮图像都会自动获得+20 HTTP请求。 如果我将链接设置为空,则可访问性会降低,因为屏幕阅读器不会知道它是什么。空链接看起来很奇怪,可能Google也不喜欢它。

  • 问题内容: 我正在寻找Java中字符串查找和替换的最佳方法。 这句话是这样的:“我叫米兰,人们把我称为米兰·瓦西奇​​”。 我想用Milan Vasic代替字符串Milan,但是在我已经拥有Milan Vasic的地方,不应该这样。 搜索/替换后的结果应为:“我叫Milan Vasic,人们称我为Milan Vasic”。 我曾尝试使用indexOf()以及Pattern / Matcher组合,

  • 问题内容: 由于HTML5中不推荐使用HTML中的标记(我理解为什么),有没有一种将某些属性和样式仅应用于段落文本 部分 的干净解决方案?我使用JavaScript来解析XML文件,该事实依赖于标签允许使用基于类的CSS格式化部分包装文本的事实。我意识到“ anchor”()标记也可以用于此目的,但是这种方式看起来非常落后且不自然。 编辑 当我问这个问题时(几年前),我未能理解每个DOM元素都属于