Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
meta主要用于設(shè)置網(wǎng)頁(yè)中的一些元數(shù)據(jù),元數(shù)據(jù)不是給用戶看 charset 指定網(wǎng)頁(yè)的字符集 name 指定的數(shù)據(jù)的名稱 content 指定的數(shù)據(jù)的內(nèi)容
keywords 表示網(wǎng)站的關(guān)鍵字,可以同時(shí)指定多個(gè)關(guān)鍵字,關(guān)鍵字間使用,隔開
<meta name="Keywords" content="網(wǎng)上購(gòu)物,網(wǎng)上商城,手機(jī),筆記本,電腦,MP3,CD,VCD,DV,相機(jī),數(shù)碼,配件,手表,存儲(chǔ)卡,京東"/>
description 用于指定網(wǎng)站的描述
<meta name="description" content="京東JD.COM-專業(yè)的綜合網(wǎng)上購(gòu)物商城,銷售家電、數(shù)碼通訊、電腦、家居百貨、服裝服飾、母嬰、圖書、食品等數(shù)萬(wàn)個(gè)品牌優(yōu)質(zhì)商品.便捷、誠(chéng)信的服務(wù),為您提供愉悅的網(wǎng)上購(gòu)物體驗(yàn)!"/>
<meta http-equiv="refresh" content="3;url=https://www.mozilla.org">
將頁(yè)面重定向到另一個(gè)網(wǎng)站
title標(biāo)簽的內(nèi)容會(huì)作為搜索結(jié)果的超鏈接上的文字顯示
<title>Document</title>
header 表示網(wǎng)頁(yè)的頭部 main 表示網(wǎng)頁(yè)的主體部分(一個(gè)頁(yè)面中只會(huì)有一個(gè)main) footer 表示網(wǎng)頁(yè)的底部 nav 表示網(wǎng)頁(yè)中的導(dǎo)航 aside 和主體相關(guān)的其他內(nèi)容(側(cè)邊欄) article 表示一個(gè)獨(dú)立的文章 section 表示一個(gè)獨(dú)立的區(qū)塊,上邊的標(biāo)簽都不能表示時(shí)使用section
div 沒(méi)有語(yǔ)義,就用來(lái)表示一個(gè)區(qū)塊,目前來(lái)講div還是我們主要的布局元素
span 行內(nèi)元素,沒(méi)有任何的語(yǔ)義,一般用于在網(wǎng)頁(yè)中選中文字
<header></header>
<main></main>
<footer></footer>
<nav></nav>
<aside></aside>
<article></article>
<section></section>
<div></div>
<span></span>
使用ol標(biāo)簽來(lái)創(chuàng)建無(wú)序列表,使用li表示列表項(xiàng)
<ul>
<li>結(jié)構(gòu)</li>
<li>表現(xiàn)</li>
<li>行為</li>
</ul>
使用ul標(biāo)簽來(lái)創(chuàng)建無(wú)序列表,使用li表示列表項(xiàng)
<ol>
<li>結(jié)構(gòu)</li>
<li>表現(xiàn)</li>
<li>行為</li>
</ol>
使用dl標(biāo)簽來(lái)創(chuàng)建一個(gè)定義列表, 使用dt來(lái)表示定義的內(nèi)容,使用dd來(lái)對(duì)內(nèi)容進(jìn)行解釋說(shuō)明
<dl>
<dt>結(jié)構(gòu)</dt>
<dd>結(jié)構(gòu)表示網(wǎng)頁(yè)的結(jié)構(gòu),結(jié)構(gòu)用來(lái)規(guī)定網(wǎng)頁(yè)中哪里是標(biāo)題,哪里是段落</dd>
<dd>結(jié)構(gòu)表示網(wǎng)頁(yè)的結(jié)構(gòu),結(jié)構(gòu)用來(lái)規(guī)定網(wǎng)頁(yè)中哪里是標(biāo)題,哪里是段落</dd>
<dd>結(jié)構(gòu)表示網(wǎng)頁(yè)的結(jié)構(gòu),結(jié)構(gòu)用來(lái)規(guī)定網(wǎng)頁(yè)中哪里是標(biāo)題,哪里是段落</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>
超鏈接可以讓我們從一個(gè)頁(yè)面跳轉(zhuǎn)到其他頁(yè)面, 或者是當(dāng)前頁(yè)面的其他的位置
使用 a 標(biāo)簽來(lái)定義超鏈接
<a href="https://www.baidu.com">超鏈接</a>
指定跳轉(zhuǎn)的目標(biāo)路徑
值可以是一個(gè)外部網(wǎng)站的地址
也可以寫一個(gè)內(nèi)部頁(yè)面的地址
超鏈接是也是一個(gè)行內(nèi)元素,在a標(biāo)簽中可以嵌套除它自身外的任何元素
用來(lái)指定超鏈接打開的位置
_self 默認(rèn)值 在當(dāng)前頁(yè)面中打開超鏈接
_blank 在一個(gè)新的要么中打開超鏈接
<a href="07.列表.html" target="_blank">超鏈接</a>
將#作為超鏈接的路徑的展位符使用
javascript:; 來(lái)作為href的屬性,此時(shí)點(diǎn)擊這個(gè)超鏈接什么也不會(huì)發(fā)生
將超鏈接的href屬性設(shè)置為#,這樣點(diǎn)擊超鏈接以后 頁(yè)面不會(huì)發(fā)生跳轉(zhuǎn),而是轉(zhuǎn)到當(dāng)前頁(yè)面的頂部的位置
跳轉(zhuǎn)到頁(yè)面的指定位置,只需將href屬性設(shè)置 #目標(biāo)元素的id屬性值
<a href="#bottom">去底部</a>
<br><br>
<a href="#p3">去第三個(gè)自然段</a>
<br><br>
<p>
內(nèi)容多一點(diǎn)
</p>
<a href="#">這是一個(gè)新的超鏈接</a>
<br><br>
<a href="javascript:;">這是一個(gè)新的超鏈接</a>
<br><br>
<a id="bottom" href="#">回到頂部</a>
img標(biāo)簽來(lái)引入外部圖片,img標(biāo)簽是一個(gè)自結(jié)束標(biāo)簽
屬性:src 屬性指定的是外部圖片的路徑(路徑規(guī)則和超鏈接是一樣的)
alt 圖片的描述,這個(gè)描述默認(rèn)情況下不會(huì)顯示,有些瀏覽器會(huì)圖片無(wú)法加載時(shí)顯示
<img src="./img/1.gif" alt="松鼠">
用于向當(dāng)前頁(yè)面中引入一個(gè)其他頁(yè)面
<iframe src="https://www.qq.com" width="800" height="600" frameborder="0"></iframe>
audio 標(biāo)簽用來(lái)向頁(yè)面中引入一個(gè)外部的音頻文件的
<audio src="./source/audio.mp3" controls autoplay loop></audio>
除了通過(guò)src來(lái)指定外部文件的路徑以外,還可以通過(guò)source來(lái)指定文件的路徑
<audio controls>
<!-- 對(duì)不起,您的瀏覽器不支持播放音頻!請(qǐng)升級(jí)瀏覽器!-->
<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>合計(jì)</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>合計(jì)</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">選項(xiàng)一</option>
<option selected value="ii">選項(xiàng)二</option>
<option value="iii">選項(xiàng)三</option>
</select>
<input type="submit" value="注冊(cè)">
<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>
天我們聊一下前端中非常基礎(chǔ)的一個(gè)知識(shí)點(diǎn)——iframe跨域。
作為一名前端,在業(yè)務(wù)中你可能會(huì)遇到這樣一個(gè)場(chǎng)景:自己開發(fā)的頁(yè)面中需要通過(guò)iframe嵌入別人的頁(yè)面,比如passport頁(yè)面(登錄),但是常常因?yàn)榭缬騿?wèn)題,導(dǎo)致父子頁(yè)面無(wú)法通信,這時(shí)我們就要想辦法如何在跨域的情況下解決這個(gè)問(wèn)題。
什么是跨域?協(xié)議、域名、端口三者中只要有一個(gè)不一樣就是跨域!
假設(shè)我們有以下場(chǎng)景:
父頁(yè)面a通過(guò)iframe內(nèi)嵌子頁(yè)面b,兩頁(yè)面之間想互相獲取dom等信息,該怎么辦?
a頁(yè)面地址:http://jerry.demo.com:8999/a.html
b頁(yè)面地址:http://channel.demo.com:9999/b.html
圖1
圖2
圖3
如果父子頁(yè)面直接操作對(duì)方,就會(huì)產(chǎn)生圖3中的跨域報(bào)錯(cuò)!
如果只是主域名不同,其他都相同,就可以采用這種方式。比如以上場(chǎng)景的情況,可以設(shè)置
document.domain = 'demo.com';
利用頁(yè)面url的hash值解決。
a父頁(yè)面可以將信息放到子頁(yè)面url的hash值中,然后在子頁(yè)面的內(nèi)部監(jiān)聽hash值的變化。
圖4
這種實(shí)現(xiàn)方式可以讓子頁(yè)面拿到父頁(yè)面的信息,但是如何讓父頁(yè)面拿到子頁(yè)面的信息呢?
b頁(yè)面改變a頁(yè)面地址hash值,a頁(yè)面監(jiān)聽地址欄的變化獲取相應(yīng)的數(shù)據(jù),但是a、b頁(yè)面不同源,b頁(yè)面不能直接操作改變a頁(yè)面地址的hash值。
于是b可以通過(guò)創(chuàng)建c頁(yè)面(圖6所示),讓c和a同源,把值傳給c,c來(lái)改變a的地址hash(圖7所示),從而達(dá)到a、b的通信。
圖5
圖6
圖7
window.name是個(gè)特殊的值,無(wú)論是iframe內(nèi)嵌的頁(yè)面還是普通的頁(yè)面都存在這個(gè)變量。它有一個(gè)神器的特點(diǎn)就是只要設(shè)置了這個(gè)值之后無(wú)論如何修改頁(yè)面的地址(哪怕是跨域的地址),這個(gè)值都會(huì)一直存在。(跟著頁(yè)面窗口存在而不是跟著地址存在)
父到子通信:
圖8
在a頁(yè)面中先插入c,a和c同源,所以可以先在a頁(yè)面中操作c頁(yè)面的window.name,然后再把iframe的src指向b頁(yè)面,b和c處于一個(gè)iframe窗口,這時(shí)window.name的值就可以在b頁(yè)面中獲取到!
子到父通信:
圖9
過(guò)程正好反過(guò)來(lái),先插入b,b頁(yè)面中修改window.name,然后再把iframe頁(yè)面替換成c,因?yàn)閍和c同源,所以a頁(yè)面就能拿到window.name的值。
此處比較尷尬的是需要隱藏iframe。
HTML5引入了跨文檔通信 API,使用targetWidw.postMessage發(fā)送消息,window.onmessage監(jiān)聽接收消息。
圖10
圖11
使用時(shí),這個(gè)API的兼容性需要考慮一下。
圖12
iframe跨域的場(chǎng)景還是非常多的,在整個(gè)前端的職業(yè)生涯中肯定會(huì)遇到!如果不了解以上解決問(wèn)題的手段,遇到這類問(wèn)題就會(huì)很惱人,希望看完這篇文章的讀者都能完全掌握。
喜歡我的文章就關(guān)注我吧,有問(wèn)題可以發(fā)表評(píng)論,我們一起學(xué)習(xí),共同成長(zhǎng)!
html5介紹
在編寫html文檔時(shí),<!doctype>聲明必須位于html5文檔中的第一行:
<!doctype html>
字符編碼(字符集)聲明也被簡(jiǎn)化:
<meta charset="UTF-8">
html5中的默認(rèn)字符編碼是UTF-8
對(duì)于中文網(wǎng)頁(yè)需要使用<meta charset="UTF-8">聲明編碼,否則會(huì)出現(xiàn)亂碼.
html5中的一些新特性:
●用于繪畫的canvas元素
●用于媒介回放的video和audio元素
●對(duì)本地離線存儲(chǔ)的更好的支持
●新的特殊的內(nèi)容元素.比如article,footer, header,nav,section
●新的表單控件.比如calendar,date,time,email,url,search
二 html 內(nèi)容模型
html5中引入了很多的標(biāo)記元素,根據(jù)內(nèi)容類型的不同,這些元素被分成7大類:
●內(nèi)聯(lián)(Embedded)
●流(Flow>)
●標(biāo)題(Heading)
●交互(Interactive)
●元數(shù)據(jù)(Metadata)
●短語(yǔ)(Phrasing)
●區(qū)段(Sectioning)
html內(nèi)容類型旨在使標(biāo)記結(jié)構(gòu)對(duì)瀏覽器和網(wǎng)站設(shè)計(jì)者更有意義
元數(shù)據(jù)(Metadata):通常出現(xiàn)在頁(yè)面的head中,設(shè)置頁(yè)面其他部分的表現(xiàn)和行為.
元素:<base>,<link>,<meta>,<noscript>,<script>,<style>,<title>
內(nèi)聯(lián)(Embedded):在文檔中添加其他類型的內(nèi)容.
元素:<audio>,<video>,<canvas>,<iframe>,<img>,<math>,<object>,<svg>
交互(Interactive):與用戶交互的內(nèi)容.
元素:<a>,<audio>,<video>,<button>,<details>,<embed>,<iframe>,<img>,<input>,<label>,<object>,<select>,<textarea>
標(biāo)題(Heading):定義段落標(biāo)題
元素:<h1>,<h2,<h3>,<h4>,<h5>,<h6>,<hgroup>
短語(yǔ)(Phrasing):文本和文本標(biāo)記元素
元素:<img>,<span>,<strong>,<label>,<br/>,<small>,<sub>等
相同的元素可以屬于多個(gè)內(nèi)容模型
流(Flow)內(nèi)容:包含在文檔正常流中的大多數(shù)html5元素
區(qū)段(Sectioning)內(nèi)容:定義標(biāo)題,內(nèi)容,導(dǎo)航和頁(yè)腳的范圍
元素:<article>,<aside>,<nav>,<section>
流(Flow)包含了幾乎所有的其他內(nèi)容.
三 html頁(yè)面結(jié)構(gòu)
通用的html5頁(yè)面結(jié)構(gòu)如下圖所示:
在編寫html5文檔時(shí),你可能不需要其中的某些元素,具體取決于你的頁(yè)面結(jié)構(gòu)
四 header, nav&footer
在html4中,我們將定義一個(gè)這樣的頭:
<div id="header">
在html5中,我們使用簡(jiǎn)單的<header>標(biāo)簽
<header>標(biāo)簽定義了文檔的頭部區(qū)域
<header>元素適合在<body>標(biāo)簽內(nèi)部使用
實(shí)例:
<!doctype html>
<html>
<head></head>
<body>
<header>
<h1>標(biāo)題1</h1>
<h2>標(biāo)題2</h2>
</header>
</body>
</html>
注意:<header>與<head>標(biāo)簽不同
在html5中,<footer>標(biāo)簽定義文檔或者文檔的一部分區(qū)域的頁(yè)腳
文檔的頁(yè)腳:
<footer>
<p>Posted by:A ping</p>
</footer>
在典型情況下,<footer>元素會(huì)包含文檔創(chuàng)作者的姓名,文檔的版權(quán)信息,使用條款的鏈接,聯(lián)系信息等等
在html5中,<nav>標(biāo)簽定義導(dǎo)航鏈接的部分
并不是所有的html文檔都要使用到<nav>元素.<nav>元素只是作為標(biāo)注一個(gè)導(dǎo)航鏈接的區(qū)域
一個(gè)導(dǎo)航鏈接的實(shí)例:
<nav>
<a href="/html/">HTML</a>
<a href="/css/">CSS</a>
<a href="/js/">JS</a>
<a href="/jquery">JQuery</a>
</nav>
運(yùn)行效果如下:
一個(gè)通用的html5頁(yè)面結(jié)構(gòu):
<body>
<header>
<nav>
<footer>
五 article,section&aside
在html5中,<article>標(biāo)簽定義獨(dú)立的內(nèi)容
<article>標(biāo)簽定義的內(nèi)容本身必須是有意義的且必須是獨(dú)立于文檔的其余部分
<article>的潛在來(lái)源:
●論壇帖子
●博客文章
●新聞故事
●評(píng)論
實(shí)例:
<article>
<h1>文章標(biāo)題</h1>
<p>文章元素的內(nèi)容</p>
</article>
在html5中,<section>標(biāo)簽定義了文檔的某個(gè)區(qū)域.比如章節(jié),頭部,底部或者文檔的其他區(qū)域
實(shí)例:
文檔的某個(gè)區(qū)域,解釋了什么是W3C:
<section>
<h1>W3C</h1>
<p>World Wide Web Consortium(W3C)是萬(wàn)維網(wǎng)聯(lián)盟...</p>
</section>
在html5中,<aside>標(biāo)簽定義<article>標(biāo)簽外的內(nèi)容
aside的內(nèi)容應(yīng)該與附近的內(nèi)容相關(guān)
實(shí)例:
<aside>
<h4>Epcot Center</h4>
<p>The Epcot Center is a theme park in Disney World,Florida</p>
</aside>
提示:<aside>的內(nèi)容可用作文章的側(cè)欄
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。