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 亚洲国产成人久久午夜,亚洲五月综合网色九月色,久草国产在线观看

          整合營(yíng)銷(xiāo)服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          只需多加一個(gè)屬性就能實(shí)現(xiàn) WordPress 后臺(tái)表

          只需多加一個(gè)屬性就能實(shí)現(xiàn) WordPress 后臺(tái)表單折疊展開(kāi)效果

          近做了一個(gè)郵件模板功能,就是可以在后臺(tái)定義各種情況下的發(fā)送郵件驗(yàn)證碼的模板,如下圖所示:

          可以定義「注冊(cè)賬號(hào)」,「重置密碼」,「驗(yàn)證郵箱」等各種情況下的郵件模板的標(biāo)題和內(nèi)容。使用 WPJAM Basic 的生成表單功能,實(shí)現(xiàn)是非常簡(jiǎn)單,具體的代碼就是生成三個(gè) fieldset 字段組,使用 foreach 簡(jiǎn)單就能處理:

          $fields=[];
          
          foreach(['register'=>'注冊(cè)賬號(hào)', 'resetpass'=>'重置密碼', 'verify'=>'驗(yàn)證郵箱'] as $type=> $title){
          	$fields[$type]=['title'=>$title,	'type'=>'fieldset',		'fields'=>[
          		$type.'_subject'=> ['title'=>'標(biāo)題',	'type'=>'text'],
          		$type.'_message'=> ['title'=>'內(nèi)容',	'type'=>'textarea',	'rows'=>3],
          	]];
          }

          但是感覺(jué)這樣重復(fù)的界面非常占用空間,有沒(méi)有什么好的優(yōu)化方式,比如折疊起來(lái),點(diǎn)擊展開(kāi)之后再設(shè)置?

          我查了一下,其實(shí)無(wú)需 Javascript,只需用 HTML 的 summary / details 這兩個(gè)標(biāo)簽就能實(shí)現(xiàn)。

          所以我增強(qiáng)了一下 WPJAM Basic fieldset 組件的能力,fieldset 組件只需要設(shè)定 summary 屬性,就能使用 summary / details 實(shí)現(xiàn)折疊展開(kāi)效果,具體代碼如下:

          $fields=[];
          
          foreach(['register'=>'注冊(cè)賬號(hào)', 'resetpass'=>'重置密碼', 'verify'=>'驗(yàn)證郵箱'] as $type=> $title){
          	$fields[$type]=['title'=>$title,	'type'=>'fieldset',	'summary'=>$title.'時(shí)郵件設(shè)置',	'fields'=>[
          		$type.'_subject'=> ['title'=>'標(biāo)題',	'type'=>'text'],
          		$type.'_message'=> ['title'=>'內(nèi)容',	'type'=>'textarea',	'rows'=>3],
          	]];
          }

          相比第一段代碼,這段代碼就是增加了 summary 屬性設(shè)置,最后的效果如下:

          默認(rèn)情況都只顯示摘要,點(diǎn)擊摘要時(shí)候,就會(huì)展開(kāi)字段組設(shè)置,如上圖,我點(diǎn)擊了第一個(gè) fieldset 字段組的摘要,「注冊(cè)賬號(hào)」這個(gè)郵件模板就展開(kāi)了,其他兩個(gè)則還是沒(méi)有折疊的狀態(tài)。

          一個(gè)有限的空間內(nèi)顯示用于呈現(xiàn)信息的可折疊的內(nèi)容面板。

          如需了解更多有關(guān) accordion 部件的細(xì)節(jié),請(qǐng)查看 API 文檔 折疊面板部件(Accordion Widget)。

          默認(rèn)功能

          點(diǎn)擊頭部展開(kāi)/折疊被分為各個(gè)邏輯部分的內(nèi)容,就像標(biāo)簽頁(yè)(tabs)一樣。您可以選擇性地設(shè)置當(dāng)鼠標(biāo)懸停時(shí)是否切換各部分的打開(kāi)/關(guān)閉狀態(tài)。

          基本的 HTML 標(biāo)記是一系列的標(biāo)題(H3 標(biāo)簽)和內(nèi)容 div,因此內(nèi)容不用通過(guò) JavaScript 即可用。

          <!doctype html> <html> <head> <meta charset="utf-8"> <title>jQuery UI 折疊面板(Accordion) - 默認(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" > <script> $(function() { $( "#accordion" ).accordion(); }); </script> </head> <body> <div id="accordion"> <h3>部分 1</h3> <div> <p> Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate. </p> </div> <h3>部分 2</h3> <div> <p> Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit faucibus urna. </p> </div> <h3>部分 3</h3> <div> <p> Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui. </p> <ul> <li>List item one</li> <li>List item two</li> <li>List item three</li> </ul> </div> <h3>部分 4</h3> <div> <p> Cras dictum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia mauris vel est. </p> <p> Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. </p> </div> </div> </body> </html>

          折疊內(nèi)容

          默認(rèn)情況下,折疊面板總是保持一個(gè)部分是打開(kāi)的。為了讓所有部分都是折疊的,可設(shè)置 collapsible 選項(xiàng)為 true。點(diǎn)擊當(dāng)前打開(kāi)的部分,來(lái)折疊它的內(nèi)容面板。

          <!doctype html> <html> <head> <meta charset="utf-8"> <title>jQuery UI 折疊面板(Accordion) - 折疊內(nèi)容</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" > <script> $(function() { $( "#accordion" ).accordion({ collapsible: true }); }); </script> </head> <body> <div id="accordion"> <h3>部分 1</h3> <div> <p>Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.</p> </div> <h3>部分 2</h3> <div> <p>Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit faucibus urna. </p> </div> <h3>部分 3</h3> <div> <p>Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui. </p> <ul> <li>List item one</li> <li>List item two</li> <li>List item three</li> </ul> </div> <h3>部分 4</h3> <div> <p>Cras dictum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia mauris vel est. </p><p>Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. </p> </div> </div> </body> </html>

          查看演示

          自定義圖標(biāo)

          通過(guò) icons 選項(xiàng)自定義標(biāo)題圖標(biāo),icons 選項(xiàng)接受標(biāo)題默認(rèn)的和激活的(打開(kāi)的)狀態(tài)的 class。使用 UI CSS 框架中的任意 class,或者使用背景圖像創(chuàng)建自定義的 class。

          <!doctype html> <html> <head> <meta charset="utf-8"> <title>jQuery UI 折疊面板(Accordion) - 自定義圖標(biāo)</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" > <script> $(function() { var icons={ header: "ui-icon-circle-arrow-e", activeHeader: "ui-icon-circle-arrow-s" }; $( "#accordion" ).accordion({ icons: icons }); $( "#toggle" ).button().click(function() { if ( $( "#accordion" ).accordion( "option", "icons" ) ) { $( "#accordion" ).accordion( "option", "icons", null ); } else { $( "#accordion" ).accordion( "option", "icons", icons ); } }); }); </script> </head> <body> <div id="accordion"> <h3>部分 1</h3> <div> <p>Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.</p> </div> <h3>部分 2</h3> <div> <p>Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit faucibus urna. </p> </div> <h3>部分 3</h3> <div> <p>Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui. </p> <ul> <li>List item one</li> <li>List item two</li> <li>List item three</li> </ul> </div> <h3>部分 4</h3> <div> <p>Cras dictum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia mauris vel est. </p><p>Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. </p> </div> </div> <button id="toggle">切換圖標(biāo)</button> </body> </html>

          查看演示

          填充空間

          由于折疊面板是由塊級(jí)元素組成的,默認(rèn)情況下它的寬度會(huì)填充可用的水平空間。為了填充由容器分配的垂直空間,設(shè)置 heightStyle 選項(xiàng)為 "fill",腳本會(huì)自動(dòng)設(shè)置折疊面板的尺寸為父容器的高度。

          <!doctype html> <html> <head> <meta charset="utf-8"> <title>jQuery UI 折疊面板(Accordion) - 填充空間</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> #accordion-resizer { padding: 10px; width: 350px; height: 220px; } </style> <script> $(function() { $( "#accordion" ).accordion({ heightStyle: "fill" }); }); $(function() { $( "#accordion-resizer" ).resizable({ minHeight: 140, minWidth: 200, resize: function() { $( "#accordion" ).accordion( "refresh" ); } }); }); </script> </head> <body> <h3>重新調(diào)整外部容器:</h3> <div id="accordion-resizer"> <div id="accordion"> <h3>部分 1</h3> <div> <p>Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.</p> </div> <h3>部分 2</h3> <div> <p>Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit faucibus urna. </p> </div> <h3>部分 3</h3> <div> <p>Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui. </p> <ul> <li>List item one</li> <li>List item two</li> <li>List item three</li> </ul> </div> <h3>部分 4</h3> <div> <p>Cras dictum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia mauris vel est. </p><p>Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. </p> </div> </div> </div> </body> </html>

          非自動(dòng)高度

          設(shè)置 heightStyle: "content",讓折疊面板保持它們初始的高度。

          <!doctype html> <html> <head> <meta charset="utf-8"> <title>jQuery UI 折疊面板(Accordion) - 非自動(dò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" > <script> $(function() { $( "#accordion" ).accordion({ heightStyle: "content" }); }); </script> </head> <body> <div id="accordion"> <h3>部分 1</h3> <div> <p>Mauris mauris ante, blandit et, ultrices a, susceros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.</p> </div> <h3>部分 2</h3> <div> <p>Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit faucibus urna. </p> </div> <h3>部分 3</h3> <div> <p>Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui. </p> <ul> <li>List item</li> <li>List item</li> <li>List item</li> <li>List item</li> <li>List item</li> <li>List item</li> <li>List item</li> </ul> </div> </div> </body> </html>

          查看演示

          當(dāng)懸停時(shí)打開(kāi)

          點(diǎn)擊頭部展開(kāi)/折疊被分為各個(gè)邏輯部分的內(nèi)容,就像標(biāo)簽頁(yè)(tabs)一樣。您可以選擇性地設(shè)置當(dāng)鼠標(biāo)懸停時(shí)是否切換各部分的打開(kāi)/關(guān)閉狀態(tài)。

          基本的 HTML 標(biāo)記是一系列的標(biāo)題(H3 標(biāo)簽)和內(nèi)容 div,因此內(nèi)容不用通過(guò) JavaScript 即可用。

          <!doctype html> <html> <head> <meta charset="utf-8"> <title>jQuery UI 折疊面板(Accordion) - 當(dāng)懸停時(shí)打開(kāi)</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" > <script> $(function() { $( "#accordion" ).accordion({ event: "click hoverintent" }); }); /* * hoverIntent | Copyright 2011 Brian Cherne * http://cherne.net/brian/resources/jquery.hoverIntent.html * modified by the jQuery UI team */ $.event.special.hoverintent={ setup: function() { $( this ).bind( "mouseover", jQuery.event.special.hoverintent.handler ); }, teardown: function() { $( this ).unbind( "mouseover", jQuery.event.special.hoverintent.handler ); }, handler: function( event ) { var currentX, currentY, timeout, args=arguments, target=$( event.target ), previousX=event.pageX, previousY=event.pageY; function track( event ) { currentX=event.pageX; currentY=event.pageY; }; function clear() { target .unbind( "mousemove", track ) .unbind( "mouseout", clear ); clearTimeout( timeout ); } function handler() { var prop, orig=event; if ( ( Math.abs( previousX - currentX ) + Math.abs( previousY - currentY ) ) < 7 ) { clear(); event=$.Event( "hoverintent" ); for ( prop in orig ) { if ( !( prop in event ) ) { event[ prop ]=orig[ prop ]; } } // 防止訪問(wèn)原始事件,因?yàn)樾率录?huì)被異步觸發(fā),舊事件不再可用 (#6028) delete event.originalEvent; target.trigger( event ); } else { previousX=currentX; previousY=currentY; timeout=setTimeout( handler, 100 ); } } timeout=setTimeout( handler, 100 ); target.bind({ mousemove: track, mouseout: clear }); } }; </script> </head> <body> <div id="accordion"> <h3>部分 1</h3> <div> <p> Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate. </p> </div> <h3>部分 2</h3> <div> <p> Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit faucibus urna. </p> </div> <h3>部分 3</h3> <div> <p> Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui. </p> <ul> <li>List item one</li> <li>List item two</li> <li>List item three</li> </ul> </div> <h3>部分 4</h3> <div> <p> Cras dictum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia mauris vel est. </p> <p> Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. </p> </div> </div> </body> </html>

          查看演示

          排序(Sortable)

          拖拽標(biāo)題來(lái)給面板重新排序。

          <!doctype html> <html> <head> <meta charset="utf-8"> <title>jQuery UI 折疊面板(Accordion) - 排序(Sortable)</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> /* 當(dāng)排序時(shí),IE 存在布局問(wèn)題(查看 #5413) */ .group { zoom: 1 } </style> <script> $(function() { $( "#accordion" ) .accordion({ header: "> div > h3" }) .sortable({ axis: "y", handle: "h3", stop: function( event, ui ) { // 當(dāng)排序時(shí),IE 不能注冊(cè) blur,所以觸發(fā) focusout 處理程序來(lái)移除 .ui-state-focus ui.item.children( "h3" ).triggerHandler( "focusout" ); } }); }); </script> </head> <body> <div id="accordion"> <div> <h3>部分 1</h3> <div> <p>Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.</p> </div> </div> <div> <h3>部分 2</h3> <div> <p>Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit faucibus urna. </p> </div> </div> <div> <h3>部分 3</h3> <div> <p>Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui. </p> <ul> <li>List item one</li> <li>List item two</li> <li>List item three</li> </ul> </div> </div> <div> <h3>部分 4</h3> <div> <p>Cras dictum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia mauris vel est. </p><p>Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. </p> </div> </div> </div> </body> </html>

          這里是云端源想IT,幫你輕松學(xué)IT”

          嗨~ 今天的你過(guò)得還好嗎?

          世界微塵里

          吾寧愛(ài)與憎


          - 2024.03.18 -

          在互聯(lián)網(wǎng)的世界中,表單是用戶與網(wǎng)站進(jìn)行互動(dòng)的重要橋梁。無(wú)論是注冊(cè)新賬號(hào)、提交反饋、還是在線購(gòu)物,表單都扮演著至關(guān)重要的角色。在網(wǎng)頁(yè)中,我們需要跟用戶進(jìn)行交互,收集用戶資料,此時(shí)就需要用到表單標(biāo)簽。

          HTML提供了一系列的表單標(biāo)簽,使得開(kāi)發(fā)者能夠輕松地創(chuàng)建出功能豐富的表單。今天我們就來(lái)深入探討這些標(biāo)簽,了解它們的作用以及如何使用它們來(lái)構(gòu)建一個(gè)有效的用戶界面。



          一、表單的組成

          在HTML中,一個(gè)完整的表單通常由表單域、表單控件(表單元素)和提示信息三個(gè)部分構(gòu)成。

          表單域

          • 表單域是一個(gè)包含表單元素的區(qū)域
          • 在HTML標(biāo)簽中,<form>標(biāo)簽用于定義表單域,以實(shí)現(xiàn)用戶信息的收集和傳遞
          • <form>會(huì)把它范圍內(nèi)的表單元素信息提交給服務(wù)器


          表單控件

          這些是用戶與表單交云的各種元素,如<input>(用于創(chuàng)建不同類(lèi)型的輸入字段)、<textarea>(用于多行文本輸入)、<button>(用于提交表單或執(zhí)行其他操作)、<select>和<option>(用于創(chuàng)建下拉列表)等。



          提示信息

          這些信息通常通過(guò)<label>標(biāo)簽提供,它為表單控件提供了描述性文本,有助于提高可訪問(wèn)性。<label>標(biāo)簽通常與<input>標(biāo)簽一起使用,并且可以通過(guò)for屬性與<input>標(biāo)簽的id屬性關(guān)聯(lián)起來(lái)。


          這三個(gè)部分共同構(gòu)成了一個(gè)完整的HTML表單,使得用戶可以輸入數(shù)據(jù),并通過(guò)點(diǎn)擊提交按鈕將這些數(shù)據(jù)發(fā)送到Web服務(wù)器進(jìn)行處理。


          二、表單元素

          在表單域中可以定義各種表單元素,這些表單元素就是允許用戶在表單中輸入或者選擇的內(nèi)容控件。下面就來(lái)介紹HTML中常用的表單元素。


          1、<form>標(biāo)簽:基礎(chǔ)容器

          作用:定義一個(gè)表單區(qū)域,用戶可以在其中輸入數(shù)據(jù)進(jìn)行提交。

          <form action="submit.php" method="post">

          其中action屬性指定了數(shù)據(jù)提交到的服務(wù)器端腳本地址,method屬性定義了數(shù)據(jù)提交的方式(通常為GET或POST)。


          2、<input>標(biāo)簽:數(shù)據(jù)輸入

          <input>標(biāo)簽是一個(gè)單標(biāo)簽,用于收集用戶信息。允許用戶輸入文本、數(shù)字、密碼等。

          <input type="text" name="username" placeholder="請(qǐng)輸入用戶名">

          type屬性決定了輸入類(lèi)型,name屬性定義了數(shù)據(jù)的鍵名,placeholder屬性提供了輸入框內(nèi)的提示文本。


          <input>標(biāo)簽的屬性

          下面舉個(gè)例子來(lái)說(shuō)明:

          <!DOCTYPE html>
          <html>
          <head>
          <meta charset="UTF-8">
          <meta http-equiv="X-UA-Compatible" content="IE=edge">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Document</title>
          </head>
          
          <body>
          <form>
          用戶名:<input type="text" value="請(qǐng)輸入用戶名"><br>
          密碼:<input type="password"><br>
          性別:男<input type="radio" name="sex" checked="checked"> 女<input type="radio" name="sex"><br>
          愛(ài)好:吃飯<input type="checkbox"> 睡覺(jué)<input type="checkbox"> 打豆豆<input type="checkbox"><br>
          <input type="submit" value="免費(fèi)注冊(cè)">
          <input type="reset" value="重新填寫(xiě)">
          <input type="button" value="獲取短信驗(yàn)證碼"><br>
          上傳頭像:<input type="file">
          </form>
          </body>
          </html>


          3、<label>標(biāo)簽:關(guān)聯(lián)說(shuō)明

          它與輸入字段如文本框、單選按鈕、復(fù)選框等關(guān)聯(lián)起來(lái),以改善網(wǎng)頁(yè)的可用性和可訪問(wèn)性。<label>標(biāo)簽有兩種常見(jiàn)的用法:


          1)包裹方式:

          在這種用法中,<label>標(biāo)簽直接包裹住關(guān)聯(lián)的表單元素。例如:

          <label>用戶名:<input type="text" name="username"></label>

          這樣做的好處是用戶點(diǎn)擊標(biāo)簽文本時(shí),關(guān)聯(lián)的輸入字段會(huì)自動(dòng)獲取焦點(diǎn),從而提供更好的用戶體驗(yàn)。



          2)使用for屬性關(guān)聯(lián):

          在這種用法中,<label>標(biāo)簽通過(guò)for屬性與目標(biāo)表單元素建立關(guān)聯(lián),for屬性的值應(yīng)與目標(biāo)元素的id屬性相匹配。例如:

          <label for="username">用戶名:</label><input type="text" id="username" name="username">

          這樣做的優(yōu)勢(shì)是單擊標(biāo)簽時(shí),相關(guān)的表單元素會(huì)自動(dòng)選中(獲取焦點(diǎn)),從而提高可用性和可訪問(wèn)性。


          4、<select>和<option>標(biāo)簽:下拉選擇

          在頁(yè)面中,如果有多個(gè)選項(xiàng)讓用戶選擇,并且想要節(jié)約頁(yè)面空間時(shí),我們可以使用標(biāo)簽控件定義下拉列表。


          注意點(diǎn):

          • <select>中至少包含一對(duì)<option>
          • 在<option>中定義selected=“selected”時(shí),當(dāng)前項(xiàng)即為默認(rèn)選中項(xiàng)
          <!DOCTYPE html>
          <html>
          <head>
          <meta charset="UTF-8">
          <meta http-equiv="X-UA-Compatible" content="IE=edge">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Document</title>
          </head>
          <body>
          <form>
          籍貫:
          <select>
          <option>山東</option>
          <option>北京</option>
          <option>西安</option>
          <option selected="selected">火星</option>
          </select>
          </form>
          </body>
          </html>


          5、<textarea>標(biāo)簽:多行文本輸入

          當(dāng)用戶輸入內(nèi)容較多的情況下,我們可以用表單元素標(biāo)簽替代文本框標(biāo)簽。

          • 允許用戶輸入多行文本。
          <textarea name="message" rows="5" cols="30">默認(rèn)文本</textarea>

          rows和cols屬性分別定義了文本區(qū)域的行數(shù)和列數(shù)。


          代碼示例:

          <!DOCTYPE html>
          <html>
          <head>
          <meta charset="UTF-8">
          <meta http-equiv="X-UA-Compatible" content="IE=edge">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Document</title>
          </head>
          <body>
          <form>
          今日反饋:
          <textarea>請(qǐng)?jiān)诖溯斎雰?nèi)容</textarea>
          </form>
          </body>
          </html>



          6、<button>標(biāo)簽:按鈕控件

          創(chuàng)建一個(gè)可點(diǎn)擊的按鈕,通常用于提交或重置表單。它允許用戶放置文本或其他內(nèi)聯(lián)元素(如<i>、<b>、<strong>、<br>、<img>等),這使得它比普通的<input type="button">具有更豐富的內(nèi)容和更強(qiáng)的功能。

          <button type="submit">提交</button>

          type屬性為submit時(shí)表示這是一個(gè)提交按鈕。


          7、<fieldset>和<legend>標(biāo)簽:分組和標(biāo)題

          通常用于在HTML表單中對(duì)相關(guān)元素進(jìn)行分組,并提供一個(gè)標(biāo)題來(lái)描述這個(gè)組的內(nèi)容。



          <fieldset>標(biāo)簽:該標(biāo)簽用于在表單中創(chuàng)建一組相關(guān)的表單控件。它可以將表單元素邏輯分組,并且通常在視覺(jué)上通過(guò)圍繞這些元素繪制一個(gè)邊框來(lái)區(qū)分不同的組。這種分組有助于提高表單的可讀性和易用性。

          <legend>標(biāo)簽:它總是與<fieldset>標(biāo)簽一起使用。<legend>標(biāo)簽定義了<fieldset>元素的標(biāo)題,這個(gè)標(biāo)題通常會(huì)出現(xiàn)在瀏覽器渲染的字段集的邊框上方。<legend>標(biāo)簽使得用戶更容易理解每個(gè)分組的目的和內(nèi)容。

          代碼示例:

          <form>
          <fieldset>
          <legend>個(gè)人信息</legend>
          <label for="name">姓名:</label>
          <input type="text" id="name" name="name"><br><br>
          <label for="email">郵箱:</label>
          <input type="email" id="email" name="email"><br><br>
          </fieldset>
          <fieldset>
          <legend>興趣愛(ài)好</legend>
          <input type="checkbox" id="hobby1" name="hobby1" value="music">
          <label for="hobby1">音樂(lè)</label><br>
          <input type="checkbox" id="hobby2" name="hobby2" value="sports">
          <label for="hobby2">運(yùn)動(dòng)</label><br>
          <input type="checkbox" id="hobby3" name="hobby3" value="reading">
          <label for="hobby3">閱讀</label><br>
          </fieldset>
          <input type="submit" value="提交">
          </form>

          在這個(gè)示例中,我們使用了兩個(gè)<fieldset>元素來(lái)組織表單的不同部分。第一個(gè)<fieldset>包含姓名和郵箱字段,而第二個(gè)<fieldset>包含三個(gè)復(fù)選框,用于選擇用戶的興趣愛(ài)好。每個(gè)<fieldset>都有一個(gè)<legend>元素,用于提供標(biāo)題。這樣,用戶在填寫(xiě)表單時(shí)可以更清晰地了解每個(gè)部分的內(nèi)容。

          想要快速入門(mén)前端開(kāi)發(fā)嗎?推薦一個(gè)前端開(kāi)發(fā)基礎(chǔ)課程,這個(gè)老師講的特別好,零基礎(chǔ)學(xué)習(xí)無(wú)壓力,知識(shí)點(diǎn)結(jié)合代碼,邊學(xué)邊練,可以免費(fèi)試看試學(xué),還有各種輔助工具和資料,非常適合新手!點(diǎn)這里前往學(xué)習(xí)哦!云端源想

          8、<datalist>標(biāo)簽:預(yù)定義選項(xiàng)列表

          <datalist>標(biāo)簽是HTML5中引入的一個(gè)新元素,它允許開(kāi)發(fā)者為輸入字段提供預(yù)定義的選項(xiàng)列表。當(dāng)用戶在輸入字段中輸入時(shí),瀏覽器會(huì)顯示一個(gè)下拉菜單,其中包含與用戶輸入匹配的預(yù)定義選項(xiàng)。


          使用<datalist>標(biāo)簽可以提供更好的用戶體驗(yàn),因?yàn)樗梢詭椭脩暨x擇正確的選項(xiàng),而不必手動(dòng)輸入整個(gè)選項(xiàng)。此外,<datalist>還可以與<input>元素的list屬性結(jié)合使用,以將預(yù)定義的選項(xiàng)列表與特定的輸入字段關(guān)聯(lián)起來(lái)。



          下面是一個(gè)使用<datalist>標(biāo)簽的代碼示例:

          <form>
          <label for="color">選擇你喜歡的顏色:</label>
          <input type="text" id="color" name="color" list="colorOptions">
          <datalist id="colorOptions">
          <option value="紅色">
          <option value="藍(lán)色">
          <option value="綠色">
          <option value="黃色">
          <option value="紫色">
          </datalist>
          <input type="submit" value="提交">
          </form>


          9、<output>標(biāo)簽:計(jì)算結(jié)果輸出

          <output>標(biāo)簽是HTML5中引入的一個(gè)新元素,它用于顯示計(jì)算結(jié)果或輸出。該標(biāo)簽通常與JavaScript代碼結(jié)合使用,通過(guò)將計(jì)算結(jié)果賦值給<output>元素的value屬性來(lái)顯示結(jié)果。


          <output>標(biāo)簽可以用于各種類(lèi)型的計(jì)算和輸出,例如數(shù)學(xué)運(yùn)算、字符串處理、數(shù)組操作等。它可以與<input>元素一起使用,以實(shí)時(shí)更新計(jì)算結(jié)果。



          下面是一個(gè)使用<output>標(biāo)簽的示例:

          <form>
          <label for="num1">數(shù)字1:</label>
          <input type="number" id="num1" name="num1" oninput="calculate()"><br><br>
          <label for="num2">數(shù)字2:</label>
          <input type="number" id="num2" name="num2" oninput="calculate()"><br><br>
          <label for="result">結(jié)果:</label>
          <output id="result"></output>
          </form>
          
          <script>
          function calculate() {
          var num1=parseInt(document.getElementById("num1").value);
          var num2=parseInt(document.getElementById("num2").value);
          var result=num1 + num2;
          document.getElementById("result").value=result;
          }
          </script>


          10、<progress>標(biāo)簽:任務(wù)進(jìn)度展示

          <progress>標(biāo)簽是HTML5中用于表示任務(wù)完成進(jìn)度的一個(gè)新元素。它通過(guò)value屬性和max屬性來(lái)表示進(jìn)度,其中value表示當(dāng)前完成的值,而max定義任務(wù)的總量或最大值。

          示例:

          <!DOCTYPE html>
          <html>
          <head>
          <title>Progress Example</title>
          </head>
          <body>
          <h1>File Download</h1>
          <progress id="fileDownload" value="0" max="100"></progress>
          <br>
          <button onclick="startDownload()">Start Download</button>
          
          <script>
          function startDownload() {
          var progress=document.getElementById("fileDownload");
          for (var i=0; i <=100; i++) {
          setTimeout(function() {
          progress.value=i;
          }, i * 10);
          }
          }
          </script>
          </body>
          </html>

          在上面的示例中,我們創(chuàng)建了一個(gè)名為"fileDownload"的<progress>元素,并設(shè)置了初始值為0,最大值為100。我們還添加了一個(gè)按鈕,當(dāng)用戶點(diǎn)擊該按鈕時(shí),會(huì)觸發(fā)名為"startDownload"的JavaScript函數(shù)。這個(gè)函數(shù)模擬了一個(gè)文件下載過(guò)程,通過(guò)循環(huán)逐步增加<progress>元素的value屬性值,從而顯示下載進(jìn)度。


          11、<meter>標(biāo)簽:度量衡指示器

          <meter>標(biāo)簽在HTML中用于表示度量衡指示器,它定義了一個(gè)已知范圍內(nèi)的標(biāo)量測(cè)量值或分?jǐn)?shù)值,通常用于顯示磁盤(pán)使用情況、查詢結(jié)果的相關(guān)性等。例如:

          <p>CPU 使用率: <meter value="0.6" min="0" max="1"></meter> 60%</p>
          <p>內(nèi)存使用率: <meter value="0.4" min="0" max="1"></meter> 40%</p>

          在這個(gè)示例中,我們使用了兩個(gè)<meter>標(biāo)簽來(lái)分別顯示CPU和內(nèi)存的使用率。value屬性表示當(dāng)前的測(cè)量值,min和max屬性分別定義了測(cè)量范圍的最小值和最大值。通過(guò)這些屬性,<meter>標(biāo)簽?zāi)軌蚯逦仫@示出資源的使用情況。



          需要注意的是,<meter>標(biāo)簽不應(yīng)該用來(lái)表示進(jìn)度條,對(duì)于進(jìn)度條的表示,應(yīng)該使用<progress>標(biāo)簽。


          12、<details>和<summary>標(biāo)簽:詳細(xì)信息展示

          <details>和<summary>標(biāo)簽是HTML5中新增的兩個(gè)元素,用于創(chuàng)建可折疊的詳細(xì)信息區(qū)域。

          <details>標(biāo)簽定義了一個(gè)可以展開(kāi)或折疊的容器,其中包含一些額外的信息。它通常與<summary>標(biāo)簽一起使用,<summary>標(biāo)簽定義了<details>元素的標(biāo)題,當(dāng)用戶點(diǎn)擊該標(biāo)題時(shí),<details>元素的內(nèi)容會(huì)展開(kāi)或折疊。

          示例:

          <details>
          <summary>點(diǎn)擊查看詳細(xì)信息</summary>
          <p>這里是一些額外的信息,用戶可以點(diǎn)擊標(biāo)題來(lái)展開(kāi)或折疊這些信息。</p>
          </details>

          在這個(gè)示例中,我們使用了<details>標(biāo)簽來(lái)創(chuàng)建一個(gè)可折疊的容器,并在其中添加了一個(gè)<summary>標(biāo)簽作為標(biāo)題。當(dāng)用戶點(diǎn)擊這個(gè)標(biāo)題時(shí),容器的內(nèi)容會(huì)展開(kāi)或折疊。


          總結(jié):

          HTML表單標(biāo)簽是構(gòu)建動(dòng)態(tài)網(wǎng)頁(yè)的基石,它們使得用戶能夠與網(wǎng)站進(jìn)行有效的交互。


          通過(guò)合理地使用這些標(biāo)簽,開(kāi)發(fā)者可以創(chuàng)建出既美觀又功能強(qiáng)大的表單,從而提升用戶體驗(yàn)和網(wǎng)站的可用性。所以說(shuō),掌握這些標(biāo)簽的使用,對(duì)于前端開(kāi)發(fā)者來(lái)說(shuō)是至關(guān)重要的。


          我們下期再見(jiàn)!


          END

          文案編輯|云端學(xué)長(zhǎng)

          文案配圖|云端學(xué)長(zhǎng)

          內(nèi)容由:云端源想分享


          主站蜘蛛池模板: 国产成人精品一区二三区在线观看 | 精品人妻系列无码一区二区三区| 国产在线视频一区| 亚洲AV无码一区二区三区国产| 国产一区二区在线|播放| 中文字幕日韩欧美一区二区三区| 精品国产一区二区三区久| 国产一区美女视频| 日韩一区二区三区视频| 久久久精品日本一区二区三区| 免费一区二区三区| tom影院亚洲国产一区二区 | 97精品国产一区二区三区| 精品欧洲AV无码一区二区男男| 在线视频精品一区| 精品国产亚洲一区二区三区| 3D动漫精品啪啪一区二区下载| 日本v片免费一区二区三区| 91精品一区国产高清在线| 蜜臀Av午夜一区二区三区| 国产视频福利一区| 亚洲色大成网站www永久一区| 69久久精品无码一区二区| 日韩精品无码久久一区二区三| 亚洲一区免费观看| 日韩免费视频一区| 中文字幕在线视频一区| 激情一区二区三区| 日韩在线一区视频| 无码人妻久久一区二区三区免费| 日本高清天码一区在线播放| 中文字幕人妻丝袜乱一区三区| 国产成人久久一区二区不卡三区 | 国产精品毛片一区二区三区| 色窝窝免费一区二区三区| 国内精品无码一区二区三区| 波多野结衣AV一区二区三区中文| 中文字幕aⅴ人妻一区二区| 在线播放精品一区二区啪视频| 久久精品一区二区三区四区 | 99久久国产精品免费一区二区|