整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

HTML5基础入门

.标签

1.1meta标签

meta主要用于设置网页中的一些元数据,元数据不是给用户看 charset 指定网页的字符集 name 指定的数据的名称 content 指定的数据的内容

keywords 表示网站的关键字,可以同时指定多个关键字,关键字间使用,隔开

<meta name="Keywords" content="网上购物,网上商城,手机,笔记本,电脑,MP3,CD,VCD,DV,相机,数码,配件,手表,存储卡,京东"/>

description 用于指定网站的描述

<meta name="description" content="京东JD.COM-专业的综合网上购物商城,销售家电、数码通讯、电脑、家居百货、服装服饰、母婴、图书、食品等数万个品牌优质商品.便捷、诚信的服务,为您提供愉悦的网上购物体验!"/>
<meta http-equiv="refresh" content="3;url=https://www.mozilla.org">

将页面重定向到另一个网站

1.2title标签

title标签的内容会作为搜索结果的超链接上的文字显示

<title>Document</title>

1.3标题

  • h1 ~ h6 一共有六级标题
  • 从h1~h6重要性递减,h1最重要,h6最不重要
  • h1在网页中的重要性仅次于title标签,一般情况下一个页面中只会有一个h1
  • 标题元素是块元素
  • <h1>一级标题</h1>
    <h2>二级标题</h2>
    <h3>三级标题</h3>
    <h4>四级标题</h4>
    <h5>五级标题</h5>
    <h6>六级标题</h6>

  • hgroup标签用来为标题分组,可以将一组相关的标题同时放入到hgroup
  • <hgroup>
    <h1>回乡偶书二首</h1>
    <h2>其一</h2>
    </hgroup>
  • 其他标签
    • p标签表示页面中的一个段落
    • <p>在p标签中的内容就表示一个段落</p>
    • em标签用于表示语音语调的一个加重
    • <p>今天天气<em></em>不错!</p>
    • strong表示强调,重要内容!
    • <p>你今天必须要<strong>完成作业</strong></p>
    • blockquote 表示一个长引用
    • <blockquote>
      这句话我是从来没有说过的!
      </blockquote>
    • q表示一个短引用
    • 子曰<q>学而时习之,乐呵乐呵!</q>
    • br标签表示页面中的换行
    • <br>

1.4布局标签

header 表示网页的头部 main 表示网页的主体部分(一个页面中只会有一个main) footer 表示网页的底部 nav 表示网页中的导航 aside 和主体相关的其他内容(侧边栏) article 表示一个独立的文章 section 表示一个独立的区块,上边的标签都不能表示时使用section

div 没有语义,就用来表示一个区块,目前来讲div还是我们主要的布局元素

span 行内元素,没有任何的语义,一般用于在网页中选中文字

<header></header>
    <main></main>
    <footer></footer>

    <nav></nav>
    <aside></aside>
    <article></article>

    <section></section>

    <div></div>

    <span></span>

1.5列表

1.1.1分类

1.1.1.1有序列表

使用ol标签来创建无序列表,使用li表示列表项

<ul>
       <li>结构</li>
       <li>表现</li>
       <li>行为</li>
   </ul>

1.1.1.2 无序列表

使用ul标签来创建无序列表,使用li表示列表项

<ol>
       <li>结构</li>
       <li>表现</li>
       <li>行为</li>
   </ol>

1.1.1.3定义列表

使用dl标签来创建一个定义列表, 使用dt来表示定义的内容,使用dd来对内容进行解释说明

<dl>
       <dt>结构</dt>
       <dd>结构表示网页的结构,结构用来规定网页中哪里是标题,哪里是段落</dd>
       <dd>结构表示网页的结构,结构用来规定网页中哪里是标题,哪里是段落</dd>
       <dd>结构表示网页的结构,结构用来规定网页中哪里是标题,哪里是段落</dd>
   </dl>

1.1.1.4列表之间可以互相嵌套

<ul>
       <li>
          aa
           <ul>
               <li>aa-1</li>
               <li>aa-2
                   <ul>
                       <li>aa-1</li>
                       <li>aa-2</li>
                   </ul>
               </li>
           </ul>
       </li>
   </ul>

1.6超链接

1.6.1 作用

超链接可以让我们从一个页面跳转到其他页面, 或者是当前页面的其他的位置

1.6.2 定义

使用 a 标签来定义超链接

<a href="https://www.baidu.com">超链接</a>

1.6.3 属性

1.6.3.1属性1:href

指定跳转的目标路径

值可以是一个外部网站的地址

也可以写一个内部页面的地址

超链接是也是一个行内元素,在a标签中可以嵌套除它自身外的任何元素

1.6.3.2 属性2:target

用来指定超链接打开的位置

_self 默认值 在当前页面中打开超链接

_blank 在一个新的要么中打开超链接

<a href="07.列表.html" target="_blank">超链接</a>

1.6.4其他

将#作为超链接的路径的展位符使用

javascript:; 来作为href的属性,此时点击这个超链接什么也不会发生

将超链接的href属性设置为#,这样点击超链接以后 页面不会发生跳转,而是转到当前页面的顶部的位置

跳转到页面的指定位置,只需将href属性设置 #目标元素的id属性值

<a href="#bottom">去底部</a>
   <br><br>
<a href="#p3">去第三个自然段</a>
   <br><br>
<p>
  内容多一点
</p>
<a href="#">这是一个新的超链接</a>
   <br><br>
<a href="javascript:;">这是一个新的超链接</a>
   <br><br>
<a id="bottom" href="#">回到顶部</a>

1.7图片标签

img标签来引入外部图片,img标签是一个自结束标签

属性:src 属性指定的是外部图片的路径(路径规则和超链接是一样的)

alt 图片的描述,这个描述默认情况下不会显示,有些浏览器会图片无法加载时显示

<img src="./img/1.gif" alt="松鼠">

1.8内联框架

用于向当前页面中引入一个其他页面

  • src 指定要引入的网页的路径
  • frameborder 指定内联框架的边框
<iframe src="https://www.qq.com" width="800" height="600" frameborder="0"></iframe>

1.8 音视频标签

1.8.1音频

audio 标签用来向页面中引入一个外部的音频文件的

1.8.1.1 属性

  • controls 是否允许用户控制播放
  • autoplay 音频文件是否自动播放
    • 如果设置了autoplay 则音乐在打开页面时会自动播放
  • loop 音乐是否循环播放
<audio src="./source/audio.mp3" controls autoplay loop></audio>

除了通过src来指定外部文件的路径以外,还可以通过source来指定文件的路径

<audio controls>
       <!-- 对不起,您的浏览器不支持播放音频!请升级浏览器!-->
       <source src="./source/audio.mp3">
       <source src="./source/audio.ogg">
       <embed src="./source/audio.mp3" type="audio/mp3" width="300" height="100">
   </audio>

1.8.2视频

与 audio 相似

<video controls>
       <source src="./source/flower.webm">
       <source src="./source/flower.mp4">
       <embed src="./source/flower.mp4" type="video/mp4">
   </video>


2.表格table

  • 在table中使用tr表示表格中的一行,有几个tr就有几行
  • 在tr中使用td表示一个单元格,有几个td就有几个单元格
  • rowspan 纵向的合并单元格
  • colspan 横向的合并单元格
<table border="1" width='50%' align="center">
      <tr>
          <td>A1</td>
          <td>B1</td>
          <td>C1</td>
          <td>D1</td>
      </tr>
      <tr>
          <td>A2</td>
          <td>B2</td>
          <td>C2</td>
          <td rowspan="2">D2</td>
      </tr>
      <tr>
          <td>A3</td>
          <td>B3</td>
          <td>C3</td>
      </tr>
      <tr>
          <td>A4</td>
          <td>B4</td>
          <td colspan="2">C4</td>
      </tr>
  </table>

长表格

  • 可以将一个表格分成三个部分:
    • 头部 thead
    • 主体 tbody
    • 底部 tfoot
  • th 表示头部的单元格
<table border="1" width='50%' align="center">  
      <thead>
          <tr>
              <th>日期</th>
              <th>收入</th>
              <th>支出</th>
              <th>合计</th>
          </tr>
      </thead>
      <tbody>
          <tr>
              <td>2000.1.1</td>
              <td>500</td>
              <td>200</td>
              <td>300</td>
          </tr>
          <tr>
              <td>2000.1.1</td>
              <td>500</td>
              <td>200</td>
              <td>300</td>
          </tr>
          <tr>
              <td>2000.1.1</td>
              <td>500</td>
              <td>200</td>
              <td>300</td>
          </tr>
          <tr>
              <td>2000.1.1</td>
              <td>500</td>
              <td>200</td>
              <td>300</td>
          </tr>
      </tbody>
      <tfoot>
          <tr>
              <td></td>
              <td></td>
              <td>合计</td>
              <td>300</td>
          </tr>
      </tfoot>

  </table>

表格样式

  • border-spacing: 指定边框之间的距离
border-spacing: 0px;
  • border-collapse: collapse; 设置边框的合并
border-collapse: collapse;
  • 如果表格中没有使用tbody而是直接使用tr,那么浏览器会自动创建一个tbody,并且将tr全都放到tbody中tr不是table的子元素

3.表单(form)

  • 使用form标签来创建一个表单
  • action 表单要提交的服务器的地址
  • 数据要提交到服务器中,必须要为元素指定一个name属性值
<input type="text" name="username">
  • 单选按钮
    • 像这种选择框,必须要指定一个value属性,value属性最终会作为用户的填写的值传递给服务器
    • checked 可以将单选按钮设置为默认选中
<input type="radio" name="hello" value="a">
<input type="radio" name="hello" value="b" checked>
  • 多选框
<input type="checkbox" name="test" value="1">
      <input type="checkbox" name="test" value="2">
      <input type="checkbox" name="test" value="3" checked>
  • 下拉列表
<select name="haha">
          <option value="i">选项一</option>
          <option selected value="ii">选项二</option>
          <option value="iii">选项三</option>
      </select>
  • 提交按钮
<input type="submit" value="注册">

属性

  • autocomplete="off" 关闭自动补全
  • readonly 将表单项设置为只读,数据会提交
  • disabled 将表单项设置为禁用,数据不会提交
  • autofocus 设置表单项自动获取焦点
<form action="target.html">
      <input type="text" name="username" value="hello" readonly>
      <br><br>
      <input type="text" name="username" autofocus>
      <br><br>
      <input type="text" name="b">

      <br><br>

      <!-- <input type="color"> -->
      <br><br>
      <!-- <input type="email"> -->
      <br><br>

      <input type="submit">
      <!-- 重置按钮 -->
      <input type="reset">
      <!-- 普通的按钮 -->
      <input type="button" value="按钮">

      <br><br>
       

      <button type="submit">提交</button>
      <button type="reset">重置</button>
      <button type="button">按钮</button>
  </form>

4.注释

<!--
我是注释中的注释 注释不能嵌套
-->

5.属性

  • 属性,在标签中(开始标签或自结束标签)还可以设置属性
  • 属性是一个名值对(x=y)
  • 属性用来设置标签中的内容如何显示
  • 属性和标签名或其他属性应该使用空格隔开
  • 属性不能瞎写,应该根据文档中的规定来编写,有些属性有属性值,有些没有。如果有属性值,属性值应该使用引号引起来

6.文档声明

<!doctype html>

天我们聊一下前端中非常基础的一个知识点——iframe跨域。

作为一名前端,在业务中你可能会遇到这样一个场景:自己开发的页面中需要通过iframe嵌入别人的页面,比如passport页面(登录),但是常常因为跨域问题,导致父子页面无法通信,这时我们就要想办法如何在跨域的情况下解决这个问题。

什么是跨域?协议、域名、端口三者中只要有一个不一样就是跨域!

假设我们有以下场景:

父页面a通过iframe内嵌子页面b,两页面之间想互相获取dom等信息,该怎么办?

a页面地址:http://jerry.demo.com:8999/a.html
b页面地址:http://channel.demo.com:9999/b.html

图1

图2

图3

如果父子页面直接操作对方,就会产生图3中的跨域报错!

document.domain

如果只是主域名不同,其他都相同,就可以采用这种方式。比如以上场景的情况,可以设置

document.domain = 'demo.com';

location.hash

利用页面url的hash值解决。

a父页面可以将信息放到子页面url的hash值中,然后在子页面的内部监听hash值的变化。

图4

这种实现方式可以让子页面拿到父页面的信息,但是如何让父页面拿到子页面的信息呢?

b页面改变a页面地址hash值,a页面监听地址栏的变化获取相应的数据,但是a、b页面不同源,b页面不能直接操作改变a页面地址的hash值。

于是b可以通过创建c页面(图6所示),让c和a同源,把值传给c,c来改变a的地址hash(图7所示),从而达到a、b的通信。

图5

图6

图7

window.name

window.name是个特殊的值,无论是iframe内嵌的页面还是普通的页面都存在这个变量。它有一个神器的特点就是只要设置了这个值之后无论如何修改页面的地址(哪怕是跨域的地址),这个值都会一直存在。(跟着页面窗口存在而不是跟着地址存在)

父到子通信:

图8

在a页面中先插入c,a和c同源,所以可以先在a页面中操作c页面的window.name,然后再把iframe的src指向b页面,b和c处于一个iframe窗口,这时window.name的值就可以在b页面中获取到!

子到父通信:

图9

过程正好反过来,先插入b,b页面中修改window.name,然后再把iframe页面替换成c,因为a和c同源,所以a页面就能拿到window.name的值。

此处比较尴尬的是需要隐藏iframe。

window.postMessage

HTML5引入了跨文档通信 API,使用targetWidw.postMessage发送消息,window.onmessage监听接收消息。

图10

图11

使用时,这个API的兼容性需要考虑一下。

图12

总结

iframe跨域的场景还是非常多的,在整个前端的职业生涯中肯定会遇到!如果不了解以上解决问题的手段,遇到这类问题就会很恼人,希望看完这篇文章的读者都能完全掌握。

喜欢我的文章就关注我吧,有问题可以发表评论,我们一起学习,共同成长!

html5介绍

在编写html文档时,<!doctype>声明必须位于html5文档中的第一行:

<!doctype html>

字符编码(字符集)声明也被简化:

<meta charset="UTF-8">

html5中的默认字符编码是UTF-8

对于中文网页需要使用<meta charset="UTF-8">声明编码,否则会出现乱码.

html5中的一些新特性:

●用于绘画的canvas元素

●用于媒介回放的video和audio元素

●对本地离线存储的更好的支持

●新的特殊的内容元素.比如article,footer, header,nav,section

●新的表单控件.比如calendar,date,time,email,url,search

二 html 内容模型

html5中引入了很多的标记元素,根据内容类型的不同,这些元素被分成7大类:

●内联(Embedded)

●流(Flow>)

●标题(Heading)

●交互(Interactive)

●元数据(Metadata)

●短语(Phrasing)

●区段(Sectioning)

html内容类型旨在使标记结构对浏览器和网站设计者更有意义

元数据(Metadata):通常出现在页面的head中,设置页面其他部分的表现和行为.

元素:<base>,<link>,<meta>,<noscript>,<script>,<style>,<title>

内联(Embedded):在文档中添加其他类型的内容.

元素:<audio>,<video>,<canvas>,<iframe>,<img>,<math>,<object>,<svg>

交互(Interactive):与用户交互的内容.

元素:<a>,<audio>,<video>,<button>,<details>,<embed>,<iframe>,<img>,<input>,<label>,<object>,<select>,<textarea>

标题(Heading):定义段落标题

元素:<h1>,<h2,<h3>,<h4>,<h5>,<h6>,<hgroup>

短语(Phrasing):文本和文本标记元素

元素:<img>,<span>,<strong>,<label>,<br/>,<small>,<sub>等

相同的元素可以属于多个内容模型

流(Flow)内容:包含在文档正常流中的大多数html5元素

区段(Sectioning)内容:定义标题,内容,导航和页脚的范围

元素:<article>,<aside>,<nav>,<section>

流(Flow)包含了几乎所有的其他内容.

三 html页面结构

通用的html5页面结构如下图所示:

在编写html5文档时,你可能不需要其中的某些元素,具体取决于你的页面结构

四 header, nav&footer

在html4中,我们将定义一个这样的头:

<div id="header">

在html5中,我们使用简单的<header>标签

<header>标签定义了文档的头部区域

<header>元素适合在<body>标签内部使用

实例:

<!doctype html>

<html>

<head></head>

<body>

<header>

<h1>标题1</h1>

<h2>标题2</h2>

</header>

</body>

</html>

注意:<header>与<head>标签不同

在html5中,<footer>标签定义文档或者文档的一部分区域的页脚

文档的页脚:

<footer>

<p>Posted by:A ping</p>

</footer>

在典型情况下,<footer>元素会包含文档创作者的姓名,文档的版权信息,使用条款的链接,联系信息等等

在html5中,<nav>标签定义导航链接的部分

并不是所有的html文档都要使用到<nav>元素.<nav>元素只是作为标注一个导航链接的区域

一个导航链接的实例:

<nav>

<a href="/html/">HTML</a>

<a href="/css/">CSS</a>

<a href="/js/">JS</a>

<a href="/jquery">JQuery</a>

</nav>

运行效果如下:

一个通用的html5页面结构:

<body>

<header>

<nav>

<footer>

五 article,section&aside

在html5中,<article>标签定义独立的内容

<article>标签定义的内容本身必须是有意义的且必须是独立于文档的其余部分

<article>的潜在来源:

●论坛帖子

●博客文章

●新闻故事

●评论

实例:

<article>

<h1>文章标题</h1>

<p>文章元素的内容</p>

</article>

在html5中,<section>标签定义了文档的某个区域.比如章节,头部,底部或者文档的其他区域

实例:

文档的某个区域,解释了什么是W3C:

<section>

<h1>W3C</h1>

<p>World Wide Web Consortium(W3C)是万维网联盟...</p>

</section>

在html5中,<aside>标签定义<article>标签外的内容

aside的内容应该与附近的内容相关

实例:

<aside>

<h4>Epcot Center</h4>

<p>The Epcot Center is a theme park in Disney World,Florida</p>

</aside>

提示:<aside>的内容可用作文章的侧栏