HTML5 — header
你可能经常会看到下面这行代码
<div id="header"></div>
自从有了 HTML5
, 我们就不再需要这么做了,我们可以使用 header
元素使网站更有语义。
这个元素代表什么?
根据 HTML spec , header
语义如下:
为它的父元素内容或者父元素的根节点提供介绍性内容,header 的内容一般是一组介绍性文字和导航链接。 如果它的父元素内容或者父元素的根节点就是 body 元素,那么它适用于整个页面。
重要的一点是,<header>
不引入新的 section
, 而是作为 section
的头部。还有一点值得注意的是,不要将<header>
和 <head>
弄混淆了。
在何处使用?
那么,最明显的就是我们需要在页面起始的部分使用这个元素,我们可以在像主页标题这种位置开始。
<header>
<h1>The most important heading on this page</h1>
<p>With some supplementary information</p>
</header>
需要注意的一点是,并没有严格的规定说明一个页面只能使用一个 header
,这就意味着你可以在同一页面多次使用这个元素。每个使用 header
元素的地方都将成为文档部分的标题。所以,可能会出现这样的代码:
<header>
<h1>The most important heading on this page</h1>
<p>With some supplementary information</p>
</header>
<article>
<header>
<h2>Title of this article</h2>
<p>By Richard Clark</p>
</header>
<p>...Lorem Ipsum dolor set amet...</p>
</article>
你可能已经发现,我们在 article
中使用的是 <h2>
,因为我们不可以在一个页面中使用多个 <h1>
, 那将会导致可访问性问题,所以 HTML spec 建议
不能依靠轮廓算法来向用户传达文档结构,建议作者使用标题等级(h1-h6)来传达文档结构。
header 元素需要什么?
现在我们都知道了,一个页面中可能包含多个 header
元素,但是为了保证 header
元素是符合标准的,我们需要添加哪些内容呢?
简单的说,<header>
标签中至少要包含一个标题 (<h1>
– <h6>
),还可以包含文档流中的其他内容,例如内容表,LOGO 或搜索表单。最近的一则更新表明,你还可以在 <header>
中包含一个 <nav>
。
样式化 header
我还想说明的一个短点是,为了使旧的浏览器(IE <9)将
元素渲染为一个块级元素,您将需要显式声明它作为一个块在CSS中,像这样 :
header { display:block;}
事实上,如果你需要支持IE <9,你将需要为 HTML5
中的大多数结构元素做到这一点。
为 header 添加 ARIA
HTML spec 针对 header
有如下建议:
允许的 ARIA 值 : banner (默认不设置或者是 presentation) 允许的ARIA状态和属性属性:全局aria-
*
属性 适用于允许角色的任何 aria- * 属性。
提示: 当元素不在 <section>
或<article>
元素中时,banner
角色仅映射到<header>
。当 <header>
限定为<body>
元素时, 此映射已在浏览器中实现,以避免不适当地暴露 banner
角色语义。
总结
总之, <header>
给我们一些非常棒附加语义值,以描述文档或部分的头。
- 谈谈分布式事务之二:基于DTC的分布式事务管理模型[下篇]
- 孙明俊:人工智能之算力演进
- 探秘Tomcat——一个简易的Servlet容器
- 2017年与机器学习相关的10大Python开源库
- 控制并发访问的三道屏障: WCF限流(Throttling)体系探秘[上篇]
- 探秘Tomcat——从一个简陋的Web服务器开始
- EnterLib PIAB又一个BUG?[续]——这是一个致命的BUG
- Google工程师:谷歌翻译在几个月内效果明显提升的秘诀
- 回调与并发: 通过实例剖析WCF基于ConcurrencyMode.Reentrant模式下的并发控制机制
- EnterLib PIAB又一个BUG?[续]——这是一个致命的BUG
- 年终盘点2017年发生在上海的科技大新闻
- 数字供应链第六章-网络风险、知识产权盗窃、合规和数据挖掘业务合同
- 使命必达: 深入剖析WCF的可靠会话[实例篇](内含美女图片,定力差者慎入)
- 快速全面构建大数据认知体系
- HTML 教程
- HTML 简介
- html div 标签介绍
- html span 标签介绍
- html a 超链接标签
- HTML Br换行标签介绍
- HTML P段落标签介绍
- HTML br与p标签区别
- Html H 标题标签
- html px em pt长度单位
- HTML form 标签
- HTML radio 单选框
- HTML B 加粗标签
- HTML strong加粗粗体标签
- HTML em 强调标签
- HTML i 斜体标签
- HTML u下划线标签
- HTML s 删除线标签
- Html img 图片标签
- Html上标注sup与下标注sub标签
- HTML nobr 禁止换行标签
- HTML hr 水平线标签
- HTML label 标签
- HTML input 标签
- HTML textarea 标签
- HTML select下拉列表标签
- HTML checkbox 多选框
- HTML font color 标签
- HTML iframe 框架标签
- HTML Table 表格
- HTML dl dt dd 标签
- HTML ol li有序列表标签
- HTML ul li 无序列表标签
- HTML 注释
- CSS 教程
- CSS 简介
- CSS 语法
- CSS Id 和 Class选择器
- CSS 样式的创建
- CSS background 背景介绍
- CSS 文本样式
- CSS font 字体
- CSS A 链接
- CSS ul ol列表样式
- CSS TABLE 样式
- CSS 框模型
- CSS border 边框
- CSS Outlines 轮廓
- CSS 外边距 Margin
- CSS Padding 内边距
- CSS 分组和嵌套选择器
- CSS 尺寸 (Dimension)
- CSS Display 属性
- CSS Position 定位
- CSS Float 浮动
- CSS 水平对齐(Horizontal Align)
- CSS 组合选择符
- CSS 伪类
- CSS 伪元素
- CSS 导航栏
- CSS 下拉菜单
- CSS 图片廊
- CSS 图像透明/不透明
- CSS sprite 图像拼合技术
- CSS 媒体类型
- CSS 属性选择器
- CSS 实例
- PHP智能识别收货地址信息实例
- Keras 在fit_generator训练方式中加入图像random_crop操作
- PHP面向对象程序设计继承用法简单示例
- php根据命令行参数生成配置文件详解
- PHP使用SOAP调用API操作示例
- 使用Zookeeper分布式部署PHP应用程序
- pytorch判断是否cuda 判断变量类型方式
- Keras搭建自编码器操作
- python程序如何进行保存
- Android Q之气泡弹窗的实现示例
- Python with语句用法原理详解
- pytorch 计算ConvTranspose1d输出特征大小方式
- Keras中 ImageDataGenerator函数的参数用法
- CI框架网页缓存简单用法分析
- 掌握PHP垃圾回收机制详解