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小時內與您取得聯系。