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
獨(dú)的一個(gè)canvas標(biāo)記只是在頁(yè)面中定義了一塊矩形區(qū)域,并無(wú)特別之處。開(kāi)發(fā)人員只有配合使用javascript腳本,才能夠完成各種圖形、線(xiàn)條以及復(fù)雜的圖形變換操作。與基于SVG實(shí)現(xiàn)同樣繪圖效果來(lái)比較,canvas繪圖是一種像素級(jí)別的位圖繪圖技術(shù),而SVG則是一種矢量繪圖技術(shù)。
使用canvas和javascript繪制一個(gè)矩形,可能會(huì)涉及一個(gè)或多個(gè)方法,如下表所示:
(1)編寫(xiě)代碼如下圖所示,在<body>標(biāo)簽中加入以下代碼。
(2)在瀏覽器中打開(kāi)文件,預(yù)覽效果圖如下所示,可以看到網(wǎng)頁(yè)中,在一個(gè)藍(lán)色邊框中顯示了一個(gè)藍(lán)色長(zhǎng)方形。
小提示:上面代碼中,首先定義一個(gè)畫(huà)布對(duì)象,其id名稱(chēng)為myCanvas,其高度和寬度為500像素,并定義了畫(huà)布邊框顯示樣式。在javascript代碼中,首先獲取畫(huà)布對(duì)象,然后使用getcontext獲取當(dāng)前2D的上下文對(duì)象。并使用fillrect繪制一個(gè)矩形。其中涉及一個(gè)fillstyle屬性,fillstyle用于設(shè)置填充的顏色、透明度等。如果設(shè)置為“rgb(200,0,0)”,則表示一個(gè)顏色,不透明;如果設(shè)置為“rgba(0,0,200,0.5)”,則表示顏色為一個(gè)顏色,透明度為50%。
在閱讀本文前,你首先需要知道什么是 Fabric.js,還需要知道 Fabric.js 是如何創(chuàng)建矩形的。
如果你還沒(méi)滿(mǎn)足上面2個(gè)條件,推薦閱讀 《Fabric.js從入門(mén)到____》
我在 Fabric.js 使用 框選操作 創(chuàng)建矩形。
接下來(lái)的幾篇文章我會(huì)寫(xiě)如何自由繪制 圓形、橢圓形、三角形、線(xiàn)段、折線(xiàn)、多邊形。
本文不做任何 CSS 相關(guān)的美化,只講解實(shí)現(xiàn)原理。
下圖是本文的要實(shí)現(xiàn)的效果。
使用 Fabric.js 這類(lèi)框架,是要注意版本的。
本文所用版本: Fabric.js 4.6.0
用 “框選” 的方式生成矩形,其核心就2點(diǎn):
鼠標(biāo)點(diǎn)擊:canvas.on('mouse:down', fn)
鼠標(biāo)抬起: canvas.on('mouse:up', fn)
理解了上面的核心點(diǎn),接下來(lái)需要考慮的是鼠標(biāo)框選的 方向 。
上面這4種情況會(huì)影響生成出來(lái)的矩形的 長(zhǎng)、寬 和 位置。
生成矩形的代碼
new fabric.Rect({
top: 0, // 矩形左上角在y軸的位置
left: 0, // 矩形左上角在x軸的位置
width: 100, // 矩形的寬
height: 100, // 矩形的高
fill: 'transparent', // 填充色
stroke: '#000' // 邊框顏色
})
接下來(lái)逐一說(shuō)說(shuō)這4種操作帶來(lái)的影響。
這種情況是最好處理的。
此時(shí) 起始點(diǎn) 就是矩形的左上角,結(jié)束點(diǎn) 就是矩形的右下角。
起始點(diǎn) 的 x 和 y 坐標(biāo) 都小于 結(jié)束點(diǎn),( 起始點(diǎn)x < 結(jié)束點(diǎn)x;起始點(diǎn)y < 結(jié)束點(diǎn)y ) :
起始點(diǎn)x > 結(jié)束點(diǎn)x; 起始點(diǎn)y > 結(jié)束點(diǎn)y
起始點(diǎn)x < 結(jié)束點(diǎn)x; 起始點(diǎn)y > 結(jié)束點(diǎn)y
起始點(diǎn)x > 結(jié)束點(diǎn)x; 起始點(diǎn)y < 結(jié)束點(diǎn)y
分析完上面4種情況,最后總結(jié)出來(lái)這幾個(gè)參數(shù)的公式。
我將 起始點(diǎn) 命名為 downPoint,結(jié)束點(diǎn) 命名為 upPoint 。
矩形的幾個(gè)參數(shù)計(jì)算公式如下:
new fabric.Rect({
top: Math.min(downPoint.y, upPoint.y),
left: Math.min(downPoint.x, upPoint.x),
width: Math.abs(downPoint.x - upPoint.x),
height: Math.abs(downPoint.y - upPoint.y),
fill: 'transparent',
stroke: '#000'
})
Math.min:兩者之中取小值
Math.abs:返回絕對(duì)值
這兩個(gè)都是 JS 提供的方法,如果不理解的建議去百度一下。
我在這里貼出用 原生方式 實(shí)現(xiàn)的代碼和注釋。
如果你想知道在 Vue3 環(huán)境下如何實(shí)現(xiàn) Fabric.js 自由繪制矩形,可以在 代碼倉(cāng)庫(kù) 里查找。
<!-- 工具欄 -->
<div class="toolbar">
<select onchange="typeChange(this.options[this.options.selectedIndex].value)">
<option value="default">默認(rèn)(框選)</option>
<option value="rect">矩形</option>
</select>
</div>
<!-- 畫(huà)布 -->
<canvas id="canvas" width="800" height="800"></canvas>
<!-- 引入fabric.js -->
<script src="https://cdn.bootcdn.net/ajax/libs/fabric.js/460/fabric.js"></script>
<script>
let canvas = null // 畫(huà)布對(duì)象
let currentType = 'default' // 當(dāng)前操作模式(默認(rèn) || 創(chuàng)建矩形)
let downPoint = null // 按下鼠標(biāo)時(shí)的坐標(biāo)
let upPoint = null // 松開(kāi)鼠標(biāo)時(shí)的坐標(biāo)
// 初始化畫(huà)板
function initCanvas() {
canvas = new fabric.Canvas('canvas')
canvas.on('mouse:down', canvasMouseDown) // 鼠標(biāo)在畫(huà)布上按下
canvas.on('mouse:up', canvasMouseUp) // 鼠標(biāo)在畫(huà)布上松開(kāi)
}
// 畫(huà)布操作類(lèi)型切換
function typeChange(opt) {
currentType = opt
switch(opt) {
case 'default': // 默認(rèn)框選模式
canvas.selection = true // 允許框選
canvas.selectionColor = 'rgba(100, 100, 255, 0.3)' // 選框填充色:半透明的藍(lán)色
canvas.selectionBorderColor = 'rgba(255, 255, 255, 0.3)' // 選框邊框顏色:半透明灰色
canvas.skipTargetFind = false // 允許選中
break
case 'rect': // 創(chuàng)建矩形模式
canvas.selectionColor = 'transparent' // 選框填充色:透明
canvas.selectionBorderColor = 'rgba(0, 0, 0, 0.2)' // 選框邊框顏色:透明度很低的黑色(看上去是灰色)
canvas.skipTargetFind = true // 禁止選中
break
}
}
// 鼠標(biāo)在畫(huà)布上按下
function canvasMouseDown(e) {
// 鼠標(biāo)左鍵按下時(shí),將當(dāng)前坐標(biāo) 賦值給 downPoint。{x: xxx, y: xxx} 的格式
downPoint = e.absolutePointer
}
// 鼠標(biāo)在畫(huà)布上松開(kāi)
function canvasMouseUp(e) {
// 繪制矩形的模式下,才執(zhí)行下面的代碼
if (currentType === 'rect') {
// 松開(kāi)鼠標(biāo)左鍵時(shí),將當(dāng)前坐標(biāo) 賦值給 upPoint
upPoint = e.absolutePointer
// 調(diào)用 創(chuàng)建矩形 的方法
createRect()
}
}
// 創(chuàng)建矩形
function createRect() {
// 如果點(diǎn)擊和松開(kāi)鼠標(biāo),都是在同一個(gè)坐標(biāo)點(diǎn),不會(huì)生成矩形
if (JSON.stringify(downPoint) === JSON.stringify(upPoint)) {
return
}
// 創(chuàng)建矩形
// 矩形參數(shù)計(jì)算(前面總結(jié)的4條公式)
let top = Math.min(downPoint.y, upPoint.y)
let left = Math.min(downPoint.x, upPoint.x)
let width = Math.abs(downPoint.x - upPoint.x)
let height = Math.abs(downPoint.y - upPoint.y)
// 矩形對(duì)象
const rect = new fabric.Rect({
top,
left,
width,
height,
fill: 'transparent', // 填充色:透明
stroke: '#000' // 邊框顏色:黑色
})
// 將矩形添加到畫(huà)布上
canvas.add(rect)
// 創(chuàng)建完矩形,清空 downPoint 和 upPoint。當(dāng)然,你也可以不做這步。
downPoint = null
upPoint = null
}
// 頁(yè)面加載的生命周期,在此執(zhí)行 初始化畫(huà)布 的操作
window.onload = function() {
initCanvas()
}
</script>
最后別忘了 關(guān)注 點(diǎn)贊 收藏
1.段落標(biāo)簽<p>
<style> p{margin:0px;} </style>
2.斜體標(biāo)簽<em>
<em>斜體</em>
3.粗體標(biāo)簽<strong>
<strong>加粗</strong>
4.<span>標(biāo)簽
被用來(lái)組合文檔中的行內(nèi)元素。使用 <span> 來(lái)組合行內(nèi)元素,以便通過(guò)樣式來(lái)格式化它們。
例如:
<style> span{ color:blue; } </style>
這樣,<span>標(biāo)簽包含的文本就變成了藍(lán)色的字體。
5.<q>標(biāo)簽
作用:段文本引用
例如:
<p>最初知道莊子,是從一首詩(shī)<q>莊生曉夢(mèng)迷蝴蝶。望帝春心托杜鵑。</q>開(kāi)始的。雖然當(dāng)時(shí)不知道是什么意思,只是覺(jué)得詩(shī)句挺特別。后來(lái)才明白這個(gè)典故出自是莊子的《逍遙游》,《逍遙游》代表了莊子思想的最高境界,是對(duì)世俗社會(huì)的功名利祿及自己的舍棄。</p> 在上面的例子中,“莊生曉夢(mèng)迷蝴蝶。望帝春心托杜鵑。” 這是一句詩(shī)歌,出自晚唐詩(shī)人李商隱的《錦瑟》 。因?yàn)椴皇亲髡咦约旱奈淖郑孕枰褂?lt;q></q>實(shí)現(xiàn)引用。 注意要引用的文本不用加雙引號(hào),瀏覽器會(huì)對(duì)q標(biāo)簽自動(dòng)添加雙引號(hào)。 這里用<q>標(biāo)簽的真正關(guān)鍵點(diǎn)不是它的默認(rèn)樣式雙引號(hào)(如果這樣我們不如自己在鍵盤(pán)上輸入雙引號(hào)就行了),而是它的語(yǔ)義:引用別人的話(huà)。 補(bǔ)充知識(shí):語(yǔ)義化網(wǎng)頁(yè)結(jié)構(gòu)有助于搜索引擎的收錄。同一個(gè)效果可以用很多鐘方式實(shí)現(xiàn),但這只方便了瀏覽者,而搜索引擎不知道這里到底是什么內(nèi)容,這里如果你使用標(biāo)簽,那么就告訴瀏覽器這里是引用的話(huà)。而且在手持設(shè)備或移動(dòng)設(shè)備不能很好支持css的基礎(chǔ)上,瀏覽器會(huì)使用默認(rèn)的效果,因而提供較好可讀性。
6.<blockquote>標(biāo)簽
作用:長(zhǎng)文本引用
例如:
<blockquote>明月出天山,蒼茫云海間。長(zhǎng)風(fēng)幾萬(wàn)里,吹度玉門(mén)關(guān)。漢下白登道,胡窺青海灣。由來(lái)征戰(zhàn)地,不見(jiàn)有人還。 戍客望邊色,思?xì)w多苦顏。高樓當(dāng)此夜,嘆息未應(yīng)閑。</blockquote>
注意:瀏覽器對(duì)<blockquote>標(biāo)簽的解析是縮進(jìn)樣式
7.<br>標(biāo)簽
怎么可以讓每一句詩(shī)詞后面加入一個(gè)折行呢?那就可以用到<br />標(biāo)簽了,在需要加回車(chē)換行的地方加入<br />,<br />標(biāo)簽作用相當(dāng)于word文檔中的回車(chē)。
語(yǔ)法:
xhtml1.0寫(xiě)法:
<br/>
html4.01寫(xiě)法:
<br>
現(xiàn)在一般使用 xhtml1.0 的版本的寫(xiě)法(其它標(biāo)簽也是),這種版本比較規(guī)范。
與以前我們學(xué)過(guò)的標(biāo)簽不一樣,<br />標(biāo)簽是一個(gè)空標(biāo)簽,沒(méi)有HTML內(nèi)容的標(biāo)簽就是空標(biāo)簽,空標(biāo)簽只需要寫(xiě)一個(gè)開(kāi)始標(biāo)簽,這樣的標(biāo)簽有<br />、<hr />和<img />。
講到這里,你是不是有個(gè)疑問(wèn),想折行還不好說(shuō)嘛,就像在 word 文件檔或記事本中,在想要折行的前面輸入回車(chē)不就行了嗎? 不好意思,在 html 中是忽略回車(chē)和空格的,你輸入的再多回車(chē)和空格也是顯示不出來(lái)的。
8.<hr>標(biāo)簽
在信息展示時(shí),有時(shí)會(huì)需要加一些用于分隔的橫線(xiàn),這樣會(huì)使文章看起來(lái)整齊些。
語(yǔ)法:
html4.01版本
<hr>
xhtml1.0版本
<hr/>
注意:
9.<address>標(biāo)簽
一般網(wǎng)頁(yè)中會(huì)有一些網(wǎng)站的聯(lián)系地址信息需要在網(wǎng)頁(yè)中展示出來(lái),這些聯(lián)系地址信息如公司的地址就可以<address>標(biāo)簽。也可以定義一個(gè)地址(比如電子郵件地址)、簽名或者文檔的作者身份。
語(yǔ)法:
<address>聯(lián)系地址信息</address>
如:
<address>文檔編寫(xiě):lilian 北京市西城區(qū)德外大街10號(hào)</address>
10.<code>標(biāo)簽
在介紹語(yǔ)言技術(shù)的網(wǎng)站中,避免不了在網(wǎng)頁(yè)中顯示一些計(jì)算機(jī)專(zhuān)業(yè)的編程代碼,當(dāng)代碼為一行代碼時(shí),你就可以使用<code>標(biāo)簽了,如下面例子:
<code>var i=i+300;</code>
注意:在文章中一般如果要插入多行代碼時(shí)不能使用<code>標(biāo)簽了。
語(yǔ)法:
<code>代碼語(yǔ)言</code>
注:如果是多行代碼,可以使用<pre>標(biāo)簽。
11.<pre>標(biāo)簽
主要作用:預(yù)格式化的文本。被包圍在 pre 元素中的文本通常會(huì)保留空格和換行符。
語(yǔ)法:
<pre>語(yǔ)言代碼段</pre>
如下代碼:
<pre> var message="歡迎"; for(var i=1;i<=10;i++) { alert(message); } </pre>
效果如下:
注意:<pre> 標(biāo)簽不只是為顯示計(jì)算機(jī)的源代碼時(shí)用的,在你需要在網(wǎng)頁(yè)中預(yù)顯示格式時(shí)都可以使用它,只是<pre>標(biāo)簽的一個(gè)常見(jiàn)應(yīng)用就是用來(lái)展示計(jì)算機(jī)的源代碼。
12.<ul>標(biāo)簽
ul-li是沒(méi)有前后順序的信息列表。
ul{ list-style:circle; }
ul{ list-style:none }
<ul> <li>信息</li> <li>信息</li> ...... </ul>
<ul> <li>精彩少年</li> <li>美麗突然出現(xiàn)</li> <li>觸動(dòng)心靈的旋律</li> </ul>
13.<ol>標(biāo)簽
ol-li是有前后順序的信息列表
<ol> <li>信息</li> <li>信息</li> ...... </ol>
<ol> <li>前端開(kāi)發(fā)面試心法 </li> <li>零基礎(chǔ)學(xué)習(xí)html</li> <li>JavaScript全攻略</li> </ol>
<ol>在網(wǎng)頁(yè)中顯示的默認(rèn)樣式一般為:每項(xiàng)<li>前都自帶一個(gè)序號(hào),序號(hào)默認(rèn)從1開(kāi)始。
14.<div>標(biāo)簽
15.<table>標(biāo)簽
1)屬性:border
作用:規(guī)定表格邊框的寬度
2)屬性:cellpadding
作用:?jiǎn)卧裰械奈谋九c單元格邊框的間距
3)屬性:cellspacing
作用:?jiǎn)卧裰g的間距
table、tbody、tr、th、td
1、<table>…</table>:整個(gè)表格以<table>標(biāo)記開(kāi)始、</table>標(biāo)記結(jié)束。
2、<tbody>…</tbody>:當(dāng)表格內(nèi)容非常多時(shí),表格會(huì)下載一點(diǎn)顯示一點(diǎn),但如果加上<tbody>標(biāo)簽后,這個(gè)表格就要等表格內(nèi)容全部下載完才會(huì)顯示。如右側(cè)代碼編輯器中的代碼。
3、<tr>…</tr>:表格的一行,所以有幾對(duì)tr 表格就有幾行。
4、<td>…</td>:表格的一個(gè)單元格,一行中包含幾對(duì)<td>...</td>,說(shuō)明一行中就有幾列。
- 常用屬性: colspan:規(guī)定單元格可橫跨的列數(shù),值為數(shù)字 rowspan:規(guī)定單元格可橫跨的行數(shù),值為數(shù)字
5、<th>…</th>:表格的頭部的一個(gè)單元格,表格表頭。
6、表格中列的個(gè)數(shù),取決于一行中數(shù)據(jù)單元格的個(gè)數(shù)。
總結(jié):
16.<caption>標(biāo)簽
表格還是需要添加一些標(biāo)簽進(jìn)行優(yōu)化,可以添加標(biāo)題和摘要。
摘要的內(nèi)容是不會(huì)在瀏覽器中顯示出來(lái)的。它的作用是增加表格的可讀性(語(yǔ)義化),使搜索引擎更好的讀懂表格內(nèi)容,還可以使屏幕閱讀器更好的幫助特殊用戶(hù)讀取表格內(nèi)容。語(yǔ)法:
<table summary="表格簡(jiǎn)介文本">
用以描述表格內(nèi)容,標(biāo)題的顯示位置:表格上方。語(yǔ)法:
<table> <caption>標(biāo)題文本</caption> <tr> <td>…</td> <td>…</td> … </tr> … </table>
17.<a>標(biāo)簽
<a href="目標(biāo)網(wǎng)址" title="鼠標(biāo)滑過(guò)顯示的文本">鏈接顯示的文本</a>
例如:
<a title="點(diǎn)擊進(jìn)入慕課網(wǎng)">click here!</a>
上面例子作用是單擊click here!文字,網(wǎng)頁(yè)鏈接跳轉(zhuǎn)到http://www.imooc.com這個(gè)網(wǎng)頁(yè)。
<a href="目標(biāo)網(wǎng)址" target="_blank">click here!</a>
<a>標(biāo)簽還有一個(gè)作用是可以鏈接Email地址,使用mailto能讓訪(fǎng)問(wèn)者便捷向網(wǎng)站管理者發(fā)送電子郵件。
注意:如果mailto后面同時(shí)有多個(gè)參數(shù)的話(huà),第一個(gè)參數(shù)必須以“?”開(kāi)頭,后面的參數(shù)每一個(gè)都以“&”分隔。引號(hào)只有一對(duì)!
例子: <a href="mailto:yy@qq.com? cc=xx@qq.com & bcc=aa@qq.com & subject=郵件主題 & body=郵件內(nèi)容">
那么: 1)A知道自己發(fā)送郵件給了B1、B2、B3,并且抄送給了C1、C2、C3,密送給了D1、D2、D3。 2)B1知道這封是A發(fā)送給B1、B2、B3的郵件,并且抄送給了C1、C2、C3,但不知道密送給了D1、D2、D3。 3)C1知道這封是A發(fā)送給B1、B2、B3的郵件,并且抄送給了C1、C2、C3,但不知道密送給了D1、D2、D3。 4)D1知道這封是A發(fā)送給B1、B2、B3的郵件,并且抄送給了C1、C2、C3,而且密送給了自己,但不知道密送給了D2、D3。 5)郵箱地址 mailto: <a href="mailto:qiujie@staff.weibo.com">發(fā)送</a> 6)抄送地址 cc: <a href="mailto:qiujie@staff.weibo.com?cc=zz@sina.com">發(fā)送</a> 7)密件抄送地址 用分號(hào)分隔: <a href="mailto:qiujie@staff.weibo.com?bcc=zz@sina.com">發(fā)送</a> 8)多個(gè)收件人、抄送人、密送人 ; bcc: <a href="mailto:qiujie@staff.weibo.com;zz@sina.com">發(fā)送</a> 9)郵件主題 subject: <a href="mailto:qiujie@staff.weibo.com?subject=郵件主題">發(fā)送</a> 10)郵件內(nèi)容 body: <a href="mailto:qiujie@staff.weibo.com?body=郵件正文">發(fā)送</a> 例子: <a href="mailto:yy@imooc.com;10001@qq.com?cc=10002@qq.com&bbc=madanteng@qqhelp.com&subject=觀了不起的蓋茨比有感。&body=你好,對(duì)此評(píng)論有些想法。">對(duì)此影評(píng)有何感想,發(fā)送郵件給我</a>
18.<img>標(biāo)簽
在網(wǎng)頁(yè)的制作中為使網(wǎng)頁(yè)炫麗美觀,肯定是缺少不了圖片,可以使用
標(biāo)簽來(lái)插入圖片。
[站外圖片上傳中……(2)] <img src = "myimage.gif" alt = "My Image" title = "My Image" />
src:標(biāo)識(shí)圖像的位置; alt:指定圖像的描述性文本,當(dāng)圖像不可見(jiàn)時(shí)(下載不成功時(shí)),可看到該屬性指定的文本; title:提供在圖像可見(jiàn)時(shí)對(duì)圖像的描述(鼠標(biāo)滑過(guò)圖片時(shí)顯示的文本); 圖像可以是GIF,PNG,JPEG格式的圖像文件。 路徑有兩種填寫(xiě)方式:絕對(duì)路徑、相對(duì)路徑 相對(duì)路徑:相對(duì)于我們當(dāng)前 html 文件的位置來(lái)寫(xiě)路徑即可! ./表示當(dāng)前目錄,../表示上一級(jí)目錄
19.<form>標(biāo)簽
注意:
1、所有表單控件(文本框、文本域、按鈕、單選框、復(fù)選框等)都必須放在<form></form>標(biāo)簽之間(否則用戶(hù)輸入的信息可提交不到服務(wù)器上哦!)。
2、method:post/get的區(qū)別這一部分內(nèi)容屬于后端程序員考慮的問(wèn)題。
語(yǔ)法:
<form method="傳送方式" action="服務(wù)器文件">
<form> :<form>標(biāo)簽是成對(duì)出現(xiàn)的,以<form>開(kāi)始,以</form>結(jié)束。 action :瀏覽者輸入的數(shù)據(jù)被傳送到的地方,比如一個(gè)PHP頁(yè)面(save.php)。 method : 數(shù)據(jù)傳送的方式(get/post)。 <form method="post" action="save.php"> <label for="username">用戶(hù)名:</label> <input type="text" name="username" /> <label for="pass">密碼:</label> <input type="password" name="pass" /> </form>
20.<input>標(biāo)簽
語(yǔ)法:
<form> <input type="text/password" name="名稱(chēng)" value="文本" /> </form>
舉例: <form> 姓名: <input type="text" name="myName"/><br/> 密碼: <input type="password" name="pass"/> </form> value="xxx" 替換為 placeholder="xxx" 的體驗(yàn)更好一些,placeholder屬性為 HTML 5 的新屬性。placeholder 屬性提供可描述輸入字段預(yù)期值的提示信息(hint)。該提示會(huì)在輸入字段為空時(shí)顯示,并會(huì)在字段獲得焦點(diǎn)時(shí)消失。
語(yǔ)法:
<input placeholder="text"/> 注釋?zhuān)簆laceholder 屬性適用于以下的 <input> 類(lèi)型:text, search, url, telephone, email 以及 password。
注意:同一組的單選按鈕,name 取值一定要一致,比如上同一個(gè)名稱(chēng)“gender”,這樣同一組的單選按鈕才可以起到單選的作用!
type:
name:為文本框命名,以備后臺(tái)程序ASP 、PHP使用。
value:為文本輸入框設(shè)置默認(rèn)值。(一般起到提示作用)
21.<textarea>標(biāo)簽
語(yǔ)法:
<textarea rows="行數(shù)" cols="列數(shù)">文本</textarea>
舉例:
<form method="post" action="save.php"> <label>聯(lián)系我們</label> <textarea cols="50" rows="10" >在這里輸入內(nèi)容...</textarea> </form>
22.<select>標(biāo)簽
語(yǔ)法:
<select> <option value="提交的值">顯示的值</option> ... </select> 設(shè)置selected="selected"屬性,則該選項(xiàng)就被默認(rèn)選中。 selected="selected"
<select multiple="multiple"> 然后選擇時(shí)候按ctrl點(diǎn)鼠標(biāo)選中
<option disabled="disabled">
把相關(guān)的選項(xiàng)組合在一起
屬性 label:給選項(xiàng)組命名
屬性 disabled:禁用該選項(xiàng)組
23.<label>標(biāo)簽
<label for="控件id名稱(chēng)">
注意:標(biāo)簽的 for 屬性中的值應(yīng)當(dāng)與相關(guān)控件的 id 屬性值一定要相同。
<form> <label for="male">男</label> <input type="radio" name="gender" id="male" /> <br /> <label for="female">女</label> <input type="radio" name="gender" id="female" /> <label for="email">輸入你的郵箱地址</label> <input type="email" id="email" placeholder="Enter email"> </form>
24.<map>標(biāo)簽
使用 map 標(biāo)簽可以給圖片某塊區(qū)域加超鏈接
使用方法:
1)為 map 標(biāo)簽首先加上 id 屬性用來(lái)為 map 標(biāo)簽定義一個(gè)唯一的名稱(chēng)
2)為了保證兼容性再加上 name 屬性,屬性值與 id 的值相同
3)為 map 標(biāo)簽所作用的圖片加上 usemap 屬性,屬性值為 #id 名稱(chēng)
4)在 map 標(biāo)簽內(nèi)嵌套 area 標(biāo)簽來(lái)實(shí)現(xiàn)給指定區(qū)域加鏈接
<area shape="" coords="" href ="" alt="" /> shape 屬性:定義鏈接區(qū)域的形狀,常用值 rect、circle coords 屬性:確定區(qū)域的精確位置。填寫(xiě)坐標(biāo)即可,以父元素左上角為原點(diǎn),可借助qq截圖來(lái)得到想要的坐標(biāo) href 屬性:填寫(xiě)鏈接地址即可 alt 屬性:給鏈接加一些說(shuō)明信息
例子:
<map id="img1" name="img1"> <area shape="rect" coords="184,33,391,258" href="http:www.baidu.com" alt="百度一下" target="_blank" /> <area shape="circle" coords="507,287,20" alt="私房庫(kù)我的博客" target="_blank" /> </map>
注意:
25.<iframe>標(biāo)簽
創(chuàng)建包含另外一個(gè)文檔的內(nèi)聯(lián)框架(即行內(nèi)框架)
屬性:
值:1、0
作用:規(guī)定是否顯示框架周?chē)倪吙颉?/p>
作用:定義 iframe 的寬度
作用:定義高度
作用:給 iframe 命名
值:yes、no、auto
作用:規(guī)定是否在 iframe 中顯示滾動(dòng)條
作用:規(guī)定在 iframe 中顯示的文檔的 URL
可以是本地的 html 文件,也可以是遠(yuǎn)程的 html 文件
標(biāo)簽寫(xiě)法
1)不允許寫(xiě)結(jié)束標(biāo)簽的元素
area,base,br,col,command,embed,hr,img,input,keygen,link,meta,paran,source,track,wbr。這些標(biāo)簽都是單標(biāo)簽例如:br 標(biāo)簽,不可以這樣<br></br>,只能<br />這樣來(lái)關(guān)閉標(biāo)簽。
2)可以省略結(jié)束標(biāo)記的元素有:
li,dt,dd,p,rt,rp,optgroup,option,colgroup,thead,tbody,tfoot,tr,td,th。
3)可以省略全部標(biāo)記的元素有
html,head,body,colgroup,tbody
例如:disabled,readonly,checked 等只寫(xiě)屬性而不寫(xiě)屬性值得時(shí)候當(dāng)做 ture 不寫(xiě)屬性表示 false
要求:屬性值不包含 空字符串,<,>,=, ‘
標(biāo)簽嵌套探討
1.html 規(guī)定我們必須要嵌套著寫(xiě)的標(biāo)簽
例如:頁(yè)面頭部是嵌套在 head 標(biāo)簽里面的,主體內(nèi)容都是嵌套在 body 標(biāo)簽里面的表單的內(nèi)容是嵌套在 form 標(biāo)簽里面的,dt、dd 是嵌套在 dl 標(biāo)簽里面的,li 是嵌套到ul 標(biāo)簽里面的,等等...
2.塊級(jí)元素可以嵌套內(nèi)聯(lián)元素,但是內(nèi)聯(lián)元素不能包含塊元素
<div> <span>我是一個(gè) span 元素</span> </div> —— 對(duì) <span> <div>div 元素</div> </span> —— 錯(cuò)
3.內(nèi)聯(lián)元素可以嵌套內(nèi)聯(lián)元素
<a href="#"> <span></span> </a> —— 對(duì)
4.塊級(jí)元素與塊級(jí)元素嵌套注意點(diǎn)
<p><ol><li></li></ol></p> —— 錯(cuò) <p><div></div></p> —— 錯(cuò)
喜歡前端的小伙伴們可以在評(píng)論區(qū)留言,尋找和小馮童鞋一樣熱愛(ài)前端的友人,讓我們一起玩轉(zhuǎn)前端的世界!
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。