全局属性
HTML规范中规定的全局属性:几乎所有的元素都可以拥有这些属性。
(1)accesskey
(2)class
(3)contenteditable
(4)dir
(5)title
(6)hidden
(7)id
(8)itemid
(9)itemprop
(10)itemref
(11)itemscope
(12)itemtype
(13)lang
(14)spellcheck
(15)style
(16)tabindex
(17)title
(1)accesskey && (16)tabindex
这是有关键盘的操作属性。
accesskey是指定元素,当用户按下 ctrl +alt+ key 的时候,相等于点击这个元素【如何知道是指定哪个元素呢? 浏览器插件可以提示,也有浏览器插件会自动给所有元素分配key】
tabindex:通过tab键在页面上导航。指定的值是导航的顺序。
(2)class &&(7)id && (15)style
1、id保证唯一性
2、class多用在css
3、style指定内联样式
(3)contenteditable
使得页面的文本可以被修改。
(4)dir
语言书写的方向。
<p dir="rtl">【阿拉伯语就是从右到左的顺序】
(6)hidden
HTML5新增属性 hidden
<p hidden> hidden </p>
之前都是用css来隐藏元素。 隐藏元素其实是适用在某个场景下,用户动作之后把这个元素显示出来。
这个元素有js接口的。实际上是优化了css中display的操作,用js的hidden的布尔型来控制元素是否显示。
(13)lang
指定页面语言(多语言网站需要注意)
(14)spellcheck
拼写检查
(17)title
把缩写的解释写在title中,用户把鼠标放上去就可以看到完整的文字。【但是原生title的使用感不好,有一定的延迟,一般都是自己去做】
无障碍性 Accessibility
或可访问性,Accessibility。确保任何人都有办法获取放在网页上的媒体内容,不让身体、心理或者技术上的问题成为获取信息的障碍。
web开发者应该做的事情
(1)WCAG(Web Content Accessibility Guidelines)2.0
(2)ARIA(Accessible Rich Internet Applications)
ARIA: 加上一些role属性来说明,或者是用hidden这样的属性增加可用性。
提升无障碍性
(1)为img提供alt属性
(2)noscript
(3)input和label对应
(4)图形验证码与语音验证码
(5)文字和背景有足够对比度
(6)键盘可操作
noscript(小技巧):一些浏览器不支持jsp时(脚本被禁用),需要一些替代方案。
语义化
HTML中的元素、属性及属性值都拥有某些含义。开发者应该遵循语义来编写HTML。
为什么语义化很重要?
- 提升代码可读性、可维护性
- 搜索引擎优化
- 提升无障碍性
搜索引擎优化 :一个itemscope表示一个实体。把一段普通的文字格式化,对搜索引擎很有用。可以做一个更好的展示,可以聚合信息,关联信息等等等。
扩展
- meta
- data-*
- microdata
- RDFa
- JSON-LD
microdata :HTML5中的一个规范,在HTML中通过属性嵌入格式化数据,提供给搜索引擎、浏览器使用。
HTML编码规范
- Google Coding Style
- W3C Validator
推荐使用工具:
- emmet (插件,更方便书写)
- markdown(以简洁的格式表示html。文本相关的东西。【可以用来做ppt】github上提交的markdown可以自动按照格式展示出来。)