我对joomla2.5模板中的以下代码感到惊讶:beez5
<?php if(!$templateparams->get('html5', 0)): ?>
<div id="header">
<?php else: ?>
<header id="header">
<?php endif; ?>
呀!它是html5的时代,但代码询问浏览器是否支持html5,然后添加<header id="header">
标记,否则添加<div id="header">
。为什么模板没有使用<div id="header">
而不是两者?
问题:旧标记<div id="header">
和新标记<header id="header">
之间有什么区别?如果浏览器支持html5,那么在使用<div id="header">
时,此行为是否与<header id="header">
不同?
答案 0 :(得分:5)
PHP是一种服务器端语言,它不会在客户端级别进行任何检查,只能在服务器上进行。
HTML 5在语义上更正确,使用<header>
而不是使用带有<div>
标题的ID
提供更好的SEO
,网页抓取工具更容易找到,以及提供更好的可访问性(即屏幕阅读器或其他设备可以轻松地与headers
,footers
,sections
表示的内容相关联。
答案 1 :(得分:-1)
很快,当浏览器看到不受支持时,它被标记为 unknown element 。这意味着它会以不同的方式对待它。它将更改其DOM树结构,它不会应用您认为该元素具有的默认样式。有关此here的更多信息。
答案 2 :(得分:-2)
<div id="header">
和<header id="header">
之间没有区别。这是为了帮助清除代码并调用标记而不是id。通常你只需使用<header>
就可以了。 Carefull,只有支持html5的新浏览器才会支持这一点。