And*_*rew 232 css xhtml seo image
似乎有一些不同的技术,所以我希望得到一个"确定的"答案...
在网站上,通常的做法是创建链接到主页的徽标.我想做同样的事情,同时最好地优化搜索引擎,屏幕阅读器,IE 6+以及禁用CSS和/或图像的浏览器.
示例一:不使用h1标记.对SEO不太好吧?
<div id="logo">
<a href="">
<img src="logo.png" alt="Stack Overflow" />
</a>
</div>
Run Code Online (Sandbox Code Playgroud)
示例二:在某个地方找到它.CSS似乎有点hacky.
<h1 id="logo">
<a href="">Stack Overflow</a>
</h1>
Run Code Online (Sandbox Code Playgroud)
/* css */
#logo {
padding: 70px 0 0 0;
overflow: hidden;
background-image: url("logo.png");
background-repeat: no-repeat;
height: 0px !important;
height /**/:70px;
}
Run Code Online (Sandbox Code Playgroud)
示例三:相同的HTML,使用text-indent的不同方法.这是图像替换的"Phark"方法.
<h1 id="logo">
<a href="">Stack Overflow</a>
</h1>
Run Code Online (Sandbox Code Playgroud)
/* 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;
}
Run Code Online (Sandbox Code Playgroud)
例四: Leahy-Langridge-Jefferies方法.关闭图像和/或css时显示.
<h1 id="logo" class="logo">
<a href="">Stack Overflow</a>
</h1>
Run Code Online (Sandbox Code Playgroud)
/* 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 */
}
Run Code Online (Sandbox Code Playgroud)
什么方法最适合这类事情?请在答案中提供html和css.
Rah*_*hul 215
你错过了选项:
<h1>
<a href="http://stackoverflow.com">
<img src="logo.png" alt="Stack Overflow" />
</a>
</h1>
Run Code Online (Sandbox Code Playgroud)
href中的标题和h1中的img非常非常重要!
Rob*_*ght 17
我这样做主要与上面的一样,但出于可访问性的原因,我需要支持在浏览器中禁用图像的可能性.因此,不是从页面上的链接缩进文本,而是通过绝对定位
到整个宽度和高度来覆盖它,<span>
<a>
并使用z-index
它将其放置在堆叠顺序中的链接文本上方.
价格是一个空的<span>
,但我愿意在那里有一些重要的东西<h1>
.
<h1 id="logo">
<a href="">Stack Overflow<span></span></a>
</h1>
Run Code Online (Sandbox Code Playgroud)
#logo a {
position:relative;
display:block;
width:[image width];
height:[image height]; }
#logo a span {
display:block;
position:absolute;
width:100%;
height:100%;
background:#ffffff url(image.png) no-repeat left top;
z-index:100; /* Places <span> on top of <a> text */ }
Run Code Online (Sandbox Code Playgroud)
se_*_*vel 11
如果可访问性原因很重要,那么使用第一个变体(当客户希望看到没有样式的图像时)
<div id="logo">
<a href="">
<img src="logo.png" alt="Stack Overflow" />
</a>
</div>
Run Code Online (Sandbox Code Playgroud)
无需符合想象中的SEO要求,因为上面的HTML代码具有正确的结构,只有您应该决定这适合您的访问者.
您也可以使用较少HTML代码的变体
<h1 id="logo">
<a href=""><span>Stack Overflow</span></a>
</h1>
Run Code Online (Sandbox Code Playgroud)
/* position code, it may be absolute position or normal - depends on other parts of your site */
#logo {
...
}
#logo a {
display:block;
width: actual_image_width;
height: actual_image_height;
background: url(image.png) no-repeat left top;
}
/* for accessibility reasons - without styles variant*/
#logo a span {display: none}
Run Code Online (Sandbox Code Playgroud)
请注意,我已删除所有其他CSS样式和黑客,因为它们与任务不对应.它们可能仅在特定情况下有用.
虽然来得有点晚,但还是忍不住。
你的问题有一半是错误的。让我解释:
你的问题的前半部分,关于图像替换,是一个有效的问题,我的观点是,对于徽标来说,一个简单的图像; alt 属性;和 CSS 的定位就足够了。
你问题的后半部分,关于徽标的 H1 的“SEO 价值”,是决定不同类型的内容使用哪些元素的错误方法。
徽标不是主标题,甚至根本不是标题,使用 H1 元素在网站每个页面上标记徽标对于您的排名来说弊大于利。从语义上讲,标题(H1 - H6)适用于:内容的标题和副标题。
在 HTML5 中,每一页允许有多个标题,但徽标不值得其中之一。您的徽标可能是一个模糊的绿色小部件,并且某些文本位于标题一侧的图像中,这是有原因的 - 它有点像“图章”,而不是用于构建内容的分层元素。网站每个页面的第一个(是否使用更多取决于您的标题层次结构)H1 应该为其主题添加标题。索引页的主要标题可能是“纽约市模糊绿色小部件的最佳来源”。另一个页面上的主标题可能是“我们的模糊小部件的运输详细信息”。在另一页上,可能是“关于 Bert's Fuzzy Widgets Inc.”。你明白了。
旁注:尽管听起来令人难以置信,但不要查看 Google 拥有的网络属性的来源来获取正确标记的示例。这本身就是一个完整的帖子。
要从 HTML 及其元素中获得最大的“SEO 价值”,请查看HTML5 规范,并在搜索引擎之前根据 (HTML) 语义和对用户的价值做出标记决策,您将获得更好的成功搜索引擎优化。