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">
将页面重定向到另一个网站
title标签的内容会作为搜索结果的超链接上的文字显示
<title>Document</title>
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>
使用ol标签来创建无序列表,使用li表示列表项
<ul>
<li>结构</li>
<li>表现</li>
<li>行为</li>
</ul>
使用ul标签来创建无序列表,使用li表示列表项
<ol>
<li>结构</li>
<li>表现</li>
<li>行为</li>
</ol>
使用dl标签来创建一个定义列表, 使用dt来表示定义的内容,使用dd来对内容进行解释说明
<dl>
<dt>结构</dt>
<dd>结构表示网页的结构,结构用来规定网页中哪里是标题,哪里是段落</dd>
<dd>结构表示网页的结构,结构用来规定网页中哪里是标题,哪里是段落</dd>
<dd>结构表示网页的结构,结构用来规定网页中哪里是标题,哪里是段落</dd>
</dl>
<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>
超链接可以让我们从一个页面跳转到其他页面, 或者是当前页面的其他的位置
使用 a 标签来定义超链接
<a href="https://www.baidu.com">超链接</a>
指定跳转的目标路径
值可以是一个外部网站的地址
也可以写一个内部页面的地址
超链接是也是一个行内元素,在a标签中可以嵌套除它自身外的任何元素
用来指定超链接打开的位置
_self 默认值 在当前页面中打开超链接
_blank 在一个新的要么中打开超链接
<a href="07.列表.html" target="_blank">超链接</a>
将#作为超链接的路径的展位符使用
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>
img标签来引入外部图片,img标签是一个自结束标签
属性:src 属性指定的是外部图片的路径(路径规则和超链接是一样的)
alt 图片的描述,这个描述默认情况下不会显示,有些浏览器会图片无法加载时显示
<img src="./img/1.gif" alt="松鼠">
用于向当前页面中引入一个其他页面
<iframe src="https://www.qq.com" width="800" height="600" frameborder="0"></iframe>
audio 标签用来向页面中引入一个外部的音频文件的
<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>
与 audio 相似
<video controls>
<source src="./source/flower.webm">
<source src="./source/flower.mp4">
<embed src="./source/flower.mp4" type="video/mp4">
</video>
<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>
<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: 0px;
border-collapse: collapse;
<input type="text" name="username">
<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="注册">
<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>
<!--
我是注释中的注释 注释不能嵌套
-->
<!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 = 'demo.com';
利用页面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是个特殊的值,无论是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。
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>的内容可用作文章的侧栏
*请认真填写需求信息,我们会在24小时内与您取得联系。