參考連接:https://www.cnblogs.com/king18181753985/p/6510756.htmljavascript
DOCTYPE是document type (文檔類型) 的縮寫。 < !DOCTYPE > 聲明位於文檔的最前面,處於標籤以前,它不是html標籤。主要做用是告訴瀏覽器的解析器使用哪一種HTML規範或者XHTML規範來解析頁面。css
嚴格模式和混雜模式都是瀏覽器的呈現模式,瀏覽器究竟使用混雜模式仍是嚴格模式呈現頁面與網頁中的DTD(文件類型定義)有關,DTD裏面包含了文檔的規則。好比:loose.dtdhtml
HTML5不基於 SGML (標準通用標記語言),所以不須要對DTD( DTD 規定了標記語言的規則,這樣瀏覽器才能正確地呈現內容。)進行引用,可是須要doctype來規範瀏覽器的行爲(讓瀏覽器按照它們應該的方式來運行)。html5
而HTML4.01基於SGML,因此須要對DTD進行引用,才能告知瀏覽器文檔所使用的文檔類型。java
<a>、<abbr>、<acronym>、<b>、<bdo>、<big>、<br>、<cite>、<code>、<dfn>、<em>、<i>、<img>、<input>、<kbd>、<label>、<q>、<samp>、<select>、<small>、<span>、<strong>、<sub>、<sup>、<textarea>、<tt>、<var>
web
<address>、<caption>、<dd>、<div>、<dl>、<dt>、<fieldset>、<form>、<h1>、<h2>、<h3>、<h4>、<h5>、<h6>、<hr>、<legend>、<li>、<noframes>、<noscript>、<ol>、<ul>、<p>、<pre>、<table>、<tbody>、<td>、<tfoot>、<th>、<thead>、<tr>
canvas
常見的:<br> <hr> <img> <input> <link> <meta>
api
不爲人知的:<area> <base> <col> <command> <embed> <link> <meta><keygen> <param> <source> <track> <wbr>
瀏覽器
主要分紅兩部分:渲染引擎(layout engineer或 Rendering Engine) 和 JS 引擎。緩存
渲染引擎:用於獲取html、css和圖片,而後會輸出至顯示器或打印機。瀏覽器的內核的不一樣對於網頁的語法解釋會有不一樣,因此渲染的效果也不相同。
JS引擎:解析和執行 javascript 來實現網頁的動態效果。
HTML5 如今已經不是SGML 的子集,主要是關於圖像,位置,存儲,多任務等功能的增長
<!--[if lt IE 9]> <script> src="http://html5shim.googlecode.com/svn/trunk/html5.js"</script> <![endif]-->
在結構語義上不一樣:
HTML:沒有體現結構語義化的標籤,一般都是這樣來命名的<div id="header"></div>
,這樣表示網站的頭部。
HTML5:在語義上卻有很大的優點。提供了一些新的標籤,好比:<header><article><footer>
用正確的標籤作正確的事情:
使用:
1.頁面頭部像下面同樣加入一個manifest的屬性
html <html manifest = "cache.manifest">
2.在cache.manifest文件的編寫離線存儲的資源
```html
CACHE MANIFEST
#v0.11
CACHE:
js/app.js
css/style.css
NETWORK:
resourse/logo.png
FALLBACK:
/ /offline.html
```
原理:HTML5的離線存儲是基於一個新建的.appcache文件的緩存機制(不是存儲技術),經過這個文件上的解析清單離線存儲資源,這些資源就會像cookie同樣被存儲了下來。以後當網絡在處於離線狀態下時,瀏覽器會經過被離線存儲的數據進行頁面展現。
在線的狀況下,瀏覽器發現Html頭部有manifest屬性,它會請求manifest文件。
若是是第一次訪問APP,那麼瀏覽器就會根據manifest文件的內容下載相應的資源而且進行離線存儲。
若是已經訪問過APP而且資源已經離線存儲了,那麼瀏覽器就會使用離線的資源加載頁面。而後瀏覽器會對比新的manifest文件與舊的manifest文件,若是文件沒有發生改變,就不作任何操做,若是文件改變了,那麼就會從新下載文件中的資源並進行離線存儲。
離線的狀況下,瀏覽器就直接使用離線存儲的資源。
存儲大小
cookie數據大小不能超過4k。 sessionStorage和localStorage 雖然也有存儲大小的限制,但比cookie大得多,能夠達到5M或更大。
有效時間
sessionStorage和localStorage:雖然也有存儲大小的限制,但比cookie大得多,能夠達到5M或更大。 sessionStorage:數據在當前瀏覽器窗口關閉後自動刪除。 cookie:設置的cookie過時時間以前一直有效,即便窗口或瀏覽器關閉
數據與服務器之間的交互方式
cookie的數據會自動的傳遞到服務器,服務器端也能夠寫cookie到客戶端。 sessionStorage和localStorage不會自動把數據發給服務器,僅在本地保存。
<label for="Name">Number:</label> <input type=「text「name="Name" id="Name"/> 或者 <label>Date:<input type="text" name="B" /></label>
給不想要的提示信息標籤裏設置:autocomplete爲"on"或者"off"來開啓或者關閉自動完成功能
<!--在一個標籤頁裏面使用 localStorage.setItem(key,value)添加(修改、刪除)內容;--> <input id="name"> <input type="button" id="btn" value="提交"> <script type="text/javascript"> $(function(){ $("#btn").click(function(){ var name=$("#name").val(); localStorage.setItem("name", name); }); }); </script>
<!--在另外一個標籤頁裏面監聽 storage 事件。 便可獲得 localstorge 存儲的值,實現不一樣標籤頁之間的通訊。--> <script type="text/javascript"> $(function(){ window.addEventListener("storage", function(event){ console.log(event.key + "=" + event.newValue); }); }); </script>
將要傳遞的信息存儲在cookie中,每隔必定時間讀取cookie信息,便可隨時獲取要傳遞的信息。
頁面1:
將: localStorage.setItem("name", name); 改成: document.cookie="name="+name;
頁面2:
<script type="text/javascript"> $(function(){ function getCookie(key) { return JSON.parse("{\"" + document.cookie.replace(/;\s+/gim,"\",\"").replace(/=/gim, "\":\"") + "\"}")[key]; } setInterval(function(){ console.log("name=" + getCookie("name")); }, 10000); }); </script>
原文連接:https://blog.csdn.net/meijory/article/details/76358570
<img src="task6.jpg" width="1366" height="768" border="0" usemap="#Map" /> <map name="Map" id="Map"> <area shape="circle" coords="100,100,50" href="https://www.baidu.com" target="_blank" /> </map>
<style> .disc{ width:100px; height:100px; background-color:dimgray; border-radius: 50%; cursor: pointer; position: absolute; left:50px; top:50px; line-height: 100px; text-align: center; color: white; } </style> <div class="disc">點擊區域</div>
<script> document.onclick = function(e){ var r = 50; //圓的半徑 var x1 = 100, y1 = 100; var x2 = e.clientX, y2 = e.clientY; var len=Math.abs(Math.sqrt(Math.pow(x2-x1,2)+Math.pow(y2-y1,2))); if(len<=50){ console.log("Inner"); }else{ console.log("Outer"); } } </script>
參考連接:https://www.cnblogs.com/guorange/p/7155164.html
<div style="height:1px;overflow:hidden;background:red"></div>
<strong>
會重讀,而<B>
是展現強調內容。