站開發(fā)入門指南:表單相關(guān)標(biāo)簽們。
接下來我們來學(xué)習(xí)一下表單以及相關(guān)的元素。
·表單其實英文是叫做fo.rm,在我們平時使用的這種互聯(lián)網(wǎng)產(chǎn)品中包括網(wǎng)站也好、app也好,經(jīng)常會看到這種需要你去填一些資料、填一些文字、填一些數(shù)據(jù)的這樣一種頁面。像這種頁面其實都是通過表單以及表單的元素去構(gòu)成、去實現(xiàn)的。
也就是說表單其實是用來收集用戶數(shù)據(jù)的,它是給用戶去輸入一些數(shù)據(jù)的。而且輸入完之后,一般它是要跟服務(wù)器去發(fā)生一些交互的。就是比如說把數(shù)據(jù)發(fā)送到服務(wù)器或者在本地處理過后,再給到服務(wù)器去進(jìn)一步的處理或者去保存。所以其實表單這些元素,如果真正要去用起來的話,真正要讓它功能跑起來的話,其實很多時候是要跟js打交道的。所以目前來說只要簡單的去了解一下表單的元素的基本使用就可以了。
·然后后面學(xué)了CSS之后,你也知道怎么去給這些表單做它的樣式就OK了。那我們看一下表單以及相關(guān)的元素有哪些?表單主要是有一個這樣一個表單本身的標(biāo)簽,另外這些就是跟它相關(guān)的一些標(biāo)簽元素了。這些元素一般都是放在這個for.m元素里面的嵌套在它里面的。
但是表單的元素,它跟我們之前學(xué)過的ul li-olli一定要進(jìn)行嵌套使用的,這種元素還不太一樣。表單中的元素,像這個和這個是經(jīng)常可以單獨使用的,也就是說不用嵌套在這個form表單里面也是可以用的。所以要明白這些表單內(nèi)的元素,如果你有需要是完全可以去獨立的去使用它的,并不一定要跟這個for.m.搭.配起來嵌套在它里面的。
·很多時候去使用form這樣的標(biāo)簽。然后把這些表單的元素嵌套在里面。它其實主要的一個目的,它是為了讓這些就是收集到的數(shù)據(jù)組成一種結(jié)構(gòu)化的一種模式,結(jié)構(gòu)化的一種狀態(tài)。這樣發(fā)送到服務(wù)器,服務(wù)器也可以通過這種更好的結(jié)構(gòu)去讀取數(shù)據(jù)。
所以目前的學(xué)習(xí)階段來講是沒有辦法給你去展示表單的作用。但是等你學(xué)到JS之后,你在有了這些基礎(chǔ)知識之后,就能通過JS其實非常清晰看到它的整個數(shù)據(jù)結(jié)構(gòu)。這節(jié)課主要是來講一講這個標(biāo)簽,這個標(biāo)簽其實會經(jīng)常單獨的來進(jìn)行使用。這個標(biāo)簽之前也簡單的給大家去演示過,它是一個用來做這種文字輸入的標(biāo)簽。
很多時候,像這種真實的產(chǎn)品頁面,產(chǎn)品里面會發(fā)現(xiàn)很多的輸入欄都是用這個標(biāo)簽去實現(xiàn)。打開開發(fā)者工具之后,可以看到這里有一個這樣的小工具,選用它之后就可以去快速的定位到元素。可以看到它這邊有個input,選中之后,元素列表這里也能看到就是input這樣的元素。所以很多的頁面上的輸入框其實都是用input元素來實現(xiàn)的。
input非常重要的屬性叫做type,type屬性之前演示過一個叫text(的值),一個叫Checkbox,給大家演示過。這兩個設(shè)置之后是會產(chǎn)生不同的效果。這種能設(shè)置的屬性的值非常多,我這里不給大家去做演示,你有興趣自己可以去嘗試去使用一下。
這里主要是介紹一個是這個之前講過的,給大家簡單也再看一下。一個是checkbox,一個是checkbox,還有一個file,其他的。
還有pasisword也給大家看一下。這里來看一下。首先看到input非常簡單,直接默認(rèn)的text它這邊,這邊先把它放大一點,放五倍大,大家看起來清楚一點。這樣就可以在這里輸入這樣一個內(nèi)容了,非常簡單。
然后比如這里改成password,然后這邊輸入的東西自動的就變成這種小圓點了,就相當(dāng)于是一種幫你保密,就是防止別人偷看到你的密碼。然后就是checkbox(多選框)。之前簡簡單演示過了checkbox會變成這種勾選的框,它有一個屬性,如果你使用的checkbooks這樣的類型,你可以使用這個checked這樣的屬性,就讓元素默認(rèn)是打勾(選中)的狀態(tài)。
像這種東西其他的前面一般都會有一個文字,告訴你這個選項是什么,然后這里把這個改一下,就叫做選擇。想學(xué)習(xí)的語言其實一定是可以多選的。這里來一個寫一個span,叫做js好html,然后自己再多復(fù)制幾個,然后這里變成CSS,變成javascript。像這種前面這種文字用span都是沒有任何問題的。
但是其實在表單元素里面有一個標(biāo)簽叫做lab.el。label其實一般用來寫這種,就是告訴這個選項是什么樣的一個選項,這樣的一些文字。label有個特殊的作用,比如說把這個換成label,label之后這里有一個屬性叫做for,for可以去跟比如說input,這里設(shè)計一個id叫做html。
稍微跟寫的不一樣,這個其實寫一樣也沒有關(guān)系,但是這里寫不一樣,大家可能更容易理解一點。
把名字id名跟這個對應(yīng)上之后for里面是某個元素的id值,就是input這樣的一個元素的id值,label就跟input元素綁定了。注意這里寫錯了label。
·然后看一下可以點擊文字,就相當(dāng)于點擊了選項框,其他的用spam包裹的文字是沒有綁定的效果。所以label標(biāo)簽的作用就是有這樣的一個文字跟相應(yīng)的元素綁定起來。點擊文字相當(dāng)于就點擊元素這樣的效果。
·然后可以看一下另外一種叫radio這種單選框的元素,也是用input來實現(xiàn)的。然后來看一下input,把它設(shè)置成radio的類型就會變成這樣一個圓點。假如還是按照這種模式,比如說這里把ID也設(shè)置一下叫做htmltag,其實跟htmltag類型的數(shù)據(jù)庫也是一樣的。如果設(shè)置checked就默認(rèn)的,就相當(dāng)于是選中的狀態(tài)。
·如果這里還有單選,這里還有一個,如果叫CSS,把這個先取消掉。這里其實是有兩個選項,兩個可選項,整個的結(jié)果是希望是呈現(xiàn)單選的狀態(tài),選中其中另外一個,肯定要呈現(xiàn)一種未選中的狀態(tài)。
·現(xiàn)在兩個都可以同時選中,這樣肯定是不行的。所以這里可以用屬性,叫做name,就叫section。下面同時也取名字,也是name同樣的值。
這里可以把它理解成用了同一個名字的單選框,他們最終只能選中其中一個。可以試一下,比如說點CSS,點html,這個東西是單選框里面非常重要的知識點。
用鼠標(biāo)改變元素的尺寸。
如需了解更多有關(guān) resizable 交互的細(xì)節(jié),請查看 API 文檔 可調(diào)整尺寸小部件(Resizable Widget)。
默認(rèn)功能
在任意的 DOM 元素上啟用 resizable 功能。通過鼠標(biāo)拖拽右邊或底邊的邊框到所需的寬度或高度。
<!doctype html><html lang="en"><head> <meta charset="utf-8"> <title>jQuery UI 縮放(Resizable) - 默認(rèn)功能</title> <link rel="stylesheet" > <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script> <link rel="stylesheet" > <style> #resizable { width: 150px; height: 150px; padding: 0.5em; } #resizable h3 { text-align: center; margin: 0; } </style> <script> $(function() { $( "#resizable" ).resizable(); }); </script></head><body> <div id="resizable" class="ui-widget-content"> <h3 class="ui-widget-header">縮放(Resizable)</h3></div> </body></html>
查看演示
動畫
使用 animate
選項(布爾值)使縮放行為動畫化。當(dāng)該選項設(shè)置為 true 時,拖拽輪廓到所需的位置,元素會在拖拽停止時以動畫形式調(diào)整到該尺寸。
<!doctype html><html lang="en"><head> <meta charset="utf-8"> <title>jQuery UI 縮放(Resizable) - 動畫</title> <link rel="stylesheet" > <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script> <link rel="stylesheet" > <style> #resizable { width: 150px; height: 150px; padding: 0.5em; } #resizable h3 { text-align: center; margin: 0; } .ui-resizable-helper { border: 1px dotted gray; } </style> <script> $(function() { $( "#resizable" ).resizable({ animate: true }); }); </script></head><body> <div id="resizable" class="ui-widget-content"> <h3 class="ui-widget-header">動畫</h3></div> </body></html>
查看演示
限制縮放區(qū)域
定義縮放區(qū)域的邊界。使用 containment
選項來指定一個父級的 DOM 元素或一個 jQuery 選擇器,比如 'document.'。
<!doctype html><html lang="en"><head> <meta charset="utf-8"> <title>jQuery UI 縮放(Resizable) - 限制縮放區(qū)域</title> <link rel="stylesheet" > <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script> <link rel="stylesheet" > <style> #container { width: 300px; height: 300px; } #container h3 { text-align: center; margin: 0; margin-bottom: 10px; } #resizable { background-position: top left; width: 150px; height: 150px; } #resizable, #container { padding: 0.5em; } </style> <script> $(function() { $( "#resizable" ).resizable({ containment: "#container" }); }); </script></head><body> <div id="container" class="ui-widget-content"> <h3 class="ui-widget-header">限制</h3> <div id="resizable" class="ui-state-active"> <h3 class="ui-widget-header">縮放(Resizable)</h3> </div></div> </body></html>
查看演示
延遲開始
通過 delay
選項設(shè)置延遲開始縮放的毫秒數(shù)。通過 distance
選項設(shè)置光標(biāo)被按下且拖拽指定像素后才允許縮放。
<!doctype html><html lang="en"><head> <meta charset="utf-8"> <title>jQuery UI 縮放(Resizable) - 延遲開始</title> <link rel="stylesheet" > <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script> <link rel="stylesheet" > <style> #resizable, #resizable2 { width: 150px; height: 150px; padding: 0.5em; } #resizable h3, #resizable2 h3 { text-align: center; margin: 0; } </style> <script> $(function() { $( "#resizable" ).resizable({ delay: 1000 }); $( "#resizable2" ).resizable({ distance: 40 }); }); </script></head><body> <h3 class="docs">時間延遲 (ms):</h3><div id="resizable" class="ui-widget-content"> <h3 class="ui-widget-header">時間</h3></div> <h3 class="docs">距離延遲 (px):</h3><div id="resizable2" class="ui-widget-content"> <h3 class="ui-widget-header">距離</h3></div> </body></html>
查看演示
助手
通過設(shè)置 helper
選項為一個 CSS class,當(dāng)縮放時只顯示元素的輪廓。
<!doctype html><html lang="en"><head> <meta charset="utf-8"> <title>jQuery UI 縮放(Resizable) - 助手</title> <link rel="stylesheet" > <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script> <link rel="stylesheet" > <style> #resizable { width: 150px; height: 150px; padding: 0.5em; } #resizable h3 { text-align: center; margin: 0; } .ui-resizable-helper { border: 2px dotted #00F; } </style> <script> $(function() { $( "#resizable" ).resizable({ helper: "ui-resizable-helper" }); }); </script></head><body> <div id="resizable" class="ui-widget-content"> <h3 class="ui-widget-header">助手</h3></div> </body></html>
查看演示
最大/最小尺寸
使用 maxHeight
、maxWidth
、minHeight
和 minWidth
選項限制 resizable 元素的最大或最小高度或?qū)挾取?/p>
<!doctype html><html lang="en"><head> <meta charset="utf-8"> <title>jQuery UI 縮放(Resizable) - 最大/最小尺寸</title> <link rel="stylesheet" > <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script> <link rel="stylesheet" > <style> #resizable { width: 200px; height: 150px; padding: 5px; } #resizable h3 { text-align: center; margin: 0; } </style> <script> $(function() { $( "#resizable" ).resizable({ maxHeight: 250, maxWidth: 350, minHeight: 150, minWidth: 200 }); }); </script></head><body> <div id="resizable" class="ui-widget-content"> <h3 class="ui-widget-header">放大/縮小</h3></div> </body></html>
查看演示
保持縱橫比
保持現(xiàn)有的縱橫比或設(shè)置一個新的縱橫比來限制縮放比例。設(shè)置 aspectRatio
選項為 true,且可選地傳遞一個新的比率(比如,4/3)。
<!doctype html><html lang="en"><head> <meta charset="utf-8"> <title>jQuery UI 縮放(Resizable) - 保持縱橫比</title> <link rel="stylesheet" > <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script> <link rel="stylesheet" > <style> #resizable { width: 160px; height: 90px; padding: 0.5em; } #resizable h3 { text-align: center; margin: 0; } </style> <script> $(function() { $( "#resizable" ).resizable({ aspectRatio: 16 / 9 }); }); </script></head><body> <div id="resizable" class="ui-widget-content"> <h3 class="ui-widget-header">保持縱橫比</h3></div> </body></html>
查看演示
對齊到網(wǎng)格
對齊 resizable 元素到網(wǎng)格。通過 grid
選項設(shè)置網(wǎng)格單元的尺寸(以像素為單位的高度和寬度)。
<!doctype html><html lang="en"><head> <meta charset="utf-8"> <title>jQuery UI 縮放(Resizable) - 對齊到網(wǎng)格</title> <link rel="stylesheet" > <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script> <link rel="stylesheet" > <style> #resizable { width: 150px; height: 150px; padding: 0.5em; } #resizable h3 { text-align: center; margin: 0; } </style> <script> $(function() { $( "#resizable" ).resizable({ grid: 50 }); }); </script></head><body> <div id="resizable" class="ui-widget-content"> <h3 class="ui-widget-header">網(wǎng)格</h3></div> </body></html>
同步縮放
通過點擊并拖拽一個元素的邊來同時調(diào)整多個元素的尺寸。給 alsoResize
選項傳遞一個共享的選擇器。
<!doctype html><html lang="en"><head> <meta charset="utf-8"> <title>jQuery UI 縮放(Resizable) - 同步縮放</title> <link rel="stylesheet" > <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script> <link rel="stylesheet" > <style> #resizable { background-position: top left; } #resizable, #also { width: 150px; height: 120px; padding: 0.5em; } #resizable h3, #also h3 { text-align: center; margin: 0; } #also { margin-top: 1em; } </style> <script> $(function() { $( "#resizable" ).resizable({ alsoResize: "#also" }); $( "#also" ).resizable(); }); </script></head><body> <div id="resizable" class="ui-widget-header"> <h3 class="ui-state-active">縮放</h3></div> <div id="also" class="ui-widget-content"> <h3 class="ui-widget-header">同步縮放</h3></div> </body></html>
查看演示
文本框
可縮放的文本框。
<!doctype html><html lang="en"><head> <meta charset="utf-8"> <title>jQuery UI 縮放(Resizable) - 文本框</title> <link rel="stylesheet" > <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script> <link rel="stylesheet" > <style> .ui-resizable-se { bottom: 17px; } </style> <script> $(function() { $( "#resizable" ).resizable({ handles: "se" }); }); </script></head><body> <textarea id="resizable" rows="5" cols="20"></textarea> </body></html>
視覺反饋
通過設(shè)置 ghost
選項為 true,可在縮放期間顯示一個半透明的元素,而不是顯示一個實際的元素。
門一種新的插件有沒有一種通用的方法呢?
以下將需要3分鐘左右的閱讀時間。
第一步閱讀說明簡介。了解到:目前是4.4版支持Bootstrap3.x及4.0版。5.x版本是重寫的一個最新版本。該插件去預(yù)覽上傳多種格式的文件。支持Ajax。以下以4.4版說明。
來原網(wǎng)絡(luò)
第二步安裝(引用)。引用CSS、JS(注意順序)
CSS:bootstrap.min.css,fileinput.min.css
JS:
jquery-3.3.1.min.js,(必需)
piexif.min.js(可選,可以在上傳前改變圖片),
sortable.min.js(可選,如果要排序文件的話),
popper.min.js(可選,用于放大和預(yù)覽文件),
bootstrap.min.js,(必需)
fileinput.min.js,(主文件)
theme.js,(主題包,字體)
(lang).js(本地化,中文引入zh.js)
第三步使用。
<!--HTML input標(biāo)簽 ,注意type是file-->
<input id="ID" type="file" class="file" data-preview-file-type="text" >
$("#ID").fileinput();//默認(rèn)功能,$("#input-id") 。Jquery對象,HTML代碼中的id為ID
//fileinput()執(zhí)行函數(shù)。可以放在$(function(){..放在這里..})也可以放在任何
//一位置
總結(jié):以上是步驟,相信學(xué)習(xí)一個新的插件都能以這種標(biāo)準(zhǔn)流程一定會有收獲。
下次將分享常用的屬性和例子代碼學(xué)習(xí)。
詳細(xì)學(xué)習(xí)兩個重要的屬性:initialPreview,initialPreviewConfig。
下回再見。謝謝閱讀。晚安。
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。