3.属性-灵析社区

懒人学前端

一、什么是 HTML 属性 ?

HTML 元素拥有属性(Attribute)

  • HTML 属性不会出现在实际的内容中
  • HTML 属性包含元素的额外信息,被用来

配置元素

调整元素的行为

二、HTML 属性必须包括哪些内容 ?

一个属性必须包含如下内容

  • 一个空格,在属性和元素名称之间
  • 属性名称,后面跟着一个等于号
  • 一个属性值,由一对引号“”引起来

三、什么是布尔属性 ?

布尔属性是值可以省略的属性

  • 只声明属性名,等同于声明设置一个属性值与属性名相同的属性
  • 不声明属性名,则表示该元素没有该属性,不具备该属性值所描述的配置或行为

四、属性值的引号的可以省略吗 ?

属性值省略引号

  • 这是被允许的
  • 当属性值包含空格、引号时,可能让浏览器误解标记
  • 始终建议添加引号

避免浏览器误解标记的问题

使代码更易读

单引号或者双引号都可以成对使用,这只是风格问题,但不能混用

五、如何链接到 HTML 文档的特定部分(文档片段)?

链接到 HTML 文档的特定部分,即文档片段,需要

  • 给要链接的元素分配一个 id 属性
  • 链接到特定 id 设置 href 属性

不同文档,在 URL 结尾使用 # 指向 id

同一文档,直接使用# 指向 id

六、览器如何对待引号没有闭合的属性,如何理解 HTML 的宽松解析 ?

(1)浏览器只解释非编译 HTML

  • 浏览器不会将 HTML 编译成其它形式,而是直接解释并显示结果
  • 浏览器解析 HTML 的过程比编程语言编译运行的过程要宽松得多

(2)什么是 HTML 的宽松解析

  • 通常写错代码会带来以下两种主要类型的错误

语法错误:由通常是拼写错误,熟悉语法并理解错误信息后很容易修复

逻辑错误:不存在语法错误,但代码运行结果不符合预期。通常逻辑错误比语法错误更难修复,因为无法得到指向错误源头的信息

  • 因为浏览器是以宽松模式解析 HTML

HTML 本身不容易出现语法错误,出现语法错误时,浏览器仍会继续解析 HTML

浏览器使用内建规则来解析语法错误,例如未关闭标签,未关闭属性和嵌套混乱元素

  • 标签,属性和层级会被自动修复
  • 修复结果不一定符合开发者预期
  • 存在 XSS,版式混乱,内容错误等隐患

(3)为什么 HTML 要宽松解析

因为 Web 创建的初心就是:

  • 人人可发布内容,不去纠结代码语法
  • 如果 Web 以严格风格起步,也许就不会像今天这样流行

七、什么是微数据 ?

HTML5 微数据允许通过特定的机器可读的标签来标记内容,只需向已有内容添加一组键值对

微数据由键值对组成,每一组称为项,每个键值对可以用属性表示

  • itemscope

用来声明一组微数据

  • itemprop

用来声明键名

属性不同,值相同:一个标签,声明多个键名,空格分隔

属性相同,值不同:多个标签,声明相同键名

键值

通常是字符串,即元素内容

URL

<a> 标签的 href 属性

<img> 标签的 src 属性

value

对于不适合给人类展示的内容,使用 value 声明内容

<meter> 标签的 value 属性

<time> 标签的 datetime 属性

itemscope

键值可以嵌套另一组微数据

  • itemref

用来关联不在 imtescope 所在标签的后代的属性

  • itemtype

指定结构化数据词汇的 URL,其中定义的标准且唯一的词汇用于 itemprop

与 itemscope 一起使用用于设置词汇的生效范围

使用词汇表,可以增加词汇的复用度,保持属性名唯一,避免冲突

Google 和其它主流搜索引擎支持 schema.org 结构化数据词汇,便于在搜索结果中丰富展示内容和形式

  • itemid

与 itemtype 一起使用,用于声明全局唯一标识符

八、如何创建一个下载链接 ?

设置 a 标签的 download 属性

  • 指示浏览器下载 URL 而不是导航到 URL,提示用户将其保存为本地文件
  • 属性值可以在保存提示中用作预先填写的文件名

斜杠 / 和反斜杠 \ 会被转换为下划线

大多数文件系统限制一些标点符号,浏览器会相应地调整建议名称

  • download 属性仅适用于同源 URLs
  • 使用 blob: URLsdata: URLs方便用户下载 JavaScript 方式生成内容

例如 Canvas,Base64 编码图片等

  • 如果 HTTP 头存在 Content-Disposition 属性

属性值不同于 download 设置值,HTTP 头优先使用此属性

属性值设置为 inline

  • 火狐优先 Content-Disposition 的属性值
  • Chrome 优先 download 的属性值(如果与 Content-Disposition 不同)

阅读量:128

点赞量:0

收藏量:0