傳統(tǒng)PC網(wǎng)頁(yè)上傳文件,大家都已經(jīng)熟悉,這里不做介紹。
本文簡(jiǎn)單介紹移動(dòng)端常用上傳圖片功能。靈活使用輪詢或長(zhǎng)連接可實(shí)現(xiàn)PC與移動(dòng)端數(shù)據(jù)同步,即PC端需要上傳的圖片是移動(dòng)拍照下來(lái)或移動(dòng)端硬盤儲(chǔ)存的,不需要再傳到PC上然后上傳。比如拍照上傳業(yè)務(wù)。。。
移動(dòng)端H5上傳圖片的方式,要點(diǎn)如下:
要點(diǎn)解析input即input標(biāo)簽typeinput標(biāo)簽的type屬性,需要為fileaccept說明接收文件類型,決定調(diào)用的資源種類capture指明調(diào)用的目標(biāo)multiple是否支持多文件
實(shí)例
<div>純input與type</div> <input type="file"> <div>指明需要圖片</div> <input type="file" accept='image/*'> <div>指明需要多張圖片</div> <input type="file" multiple accept='image/*'> <div>指明調(diào)用攝像頭獲取圖片</div> <input type="file" capture='camera' accept='image/*'> <div>指明調(diào)用攝像頭并多張圖片</div> <!-- multiple 無(wú)效 --> <input type="file" multiple capture='camera' accept='image/*'>
效果
Chrome 66.0.3358.158
頁(yè)面效果
純input與type
指明需要圖片
指明需要多張圖片
指明調(diào)用攝像頭獲取圖片
指明調(diào)用攝像頭并多張圖片
微信 6.7.0
頁(yè)面效果
微信除了調(diào)用攝像頭之外,點(diǎn)擊都顯示下面這個(gè),只有點(diǎn)擊相冊(cè)或其他方式后才有區(qū)別,下面圖片展示都是其他方式的區(qū)別。
注意點(diǎn)擊相冊(cè)在微信與系統(tǒng)上有區(qū)別,微信直接打開相冊(cè)列表,而MIUI系統(tǒng)會(huì)默認(rèn)打開照片列表,或者你手動(dòng)選擇前往相冊(cè)列表。
純input與type
指明需要圖片
選擇效果
指明需要多張圖片
注意這里直接把攝像頭過濾了
選擇效果
指明調(diào)用攝像頭獲取圖片
同Chrome
指明調(diào)用攝像頭并多張圖片
同Chrome
iOS 11.4.1
微信端與Safari一致,效果與上述微信差不多,功能上沒測(cè)試出有什么不同,這里不再貼圖
完整源碼如下
HTML的世界里,一切都是由容器和內(nèi)容構(gòu)成的。容器,就如同一個(gè)個(gè)盒子,用來(lái)裝載各種元素;而內(nèi)容,則是這些盒子里的珍寶。理解了這一點(diǎn),我們就邁出了探索HTML布局的第一步。
在HTML中,布局標(biāo)簽主要用于控制頁(yè)面的結(jié)構(gòu)和樣式。本文將介紹一些常用的布局標(biāo)簽及其使用方法,并通過代碼示例進(jìn)行演示。
布局在我們前端開發(fā)中擔(dān)任什么樣的角色呢?想象一下,你面前有一堆散亂的積木,無(wú)序地堆放在那里。
而你的任務(wù),就是將這些積木按照?qǐng)D紙拼裝成一個(gè)精美的模型。HTML布局標(biāo)簽的作用就像那張圖紙,它指導(dǎo)瀏覽器如何正確、有序地顯示內(nèi)容和元素,確保網(wǎng)頁(yè)的結(jié)構(gòu)和外觀既美觀又實(shí)用。
下面我們就來(lái)看看在HTML中常用的基礎(chǔ)布局標(biāo)簽有哪些,如何使用這些布局標(biāo)簽完成我們的開發(fā)目標(biāo)。
div標(biāo)簽是一個(gè)塊級(jí)元素,它獨(dú)占一行,用于對(duì)頁(yè)面進(jìn)行區(qū)域劃分。它可以包含其他HTML元素,如文本、圖片、鏈接等。通過CSS樣式可以設(shè)置div的布局和樣式。
示例代碼:
<!DOCTYPE html>
<html>
<head>
<style>
.box {
width: 200px;
height: 200px;
background-color: red;
}
</style>
</head>
<body>
<div>這是一個(gè)div元素
</div>
</body>
</html>
運(yùn)行結(jié)果:
span標(biāo)簽是一個(gè)內(nèi)聯(lián)元素,它不獨(dú)占一行,用于對(duì)文本進(jìn)行區(qū)域劃分。它主要用于對(duì)文本進(jìn)行樣式設(shè)置,如字體、顏色等。與div類似,span也可以包含其他HTML元素。
示例代碼:
<!DOCTYPE html>
<html>
<head>
<style>
.text {
color: blue;
font-size: 20px;
}
</style>
</head>
<body>
<p>這是一個(gè)<span>span元素</span>。</p>
</body>
</html>
運(yùn)行結(jié)果:
table標(biāo)簽用于創(chuàng)建表格,它包含多個(gè)tr(行)元素,每個(gè)tr元素包含多個(gè)td(單元格)或th(表頭單元格)元素。
<table> 定義一個(gè)表格,<tr> 定義表格中的行,而 <td> 則定義單元格。通過這三個(gè)標(biāo)簽,我們可以創(chuàng)建出整齊劃一的數(shù)據(jù)表,讓信息的展示更加直觀明了。
需要注意的是:
示例代碼:
<!DOCTYPE html>
<html>
<head>
<style>
table, th, td {
border: 1px solid black;
}
</style>
</head>
<body>
<table>
<tr>
<th>姓名</th>
<th>年齡</th>
</tr>
<tr>
<td>張三</td>
<td>25</td>
</tr>
<tr>
<td>李四</td>
<td>30</td>
</tr>
</table>
</body>
</html>
運(yùn)行結(jié)果:
<form>標(biāo)簽的主要作用是定義一個(gè)用于用戶輸入的HTML表單。這個(gè)表單可以包含各種輸入元素,如文本字段、復(fù)選框、單選按鈕、提交按鈕等。
<form>元素可以包含以下一個(gè)或多個(gè)表單元素:<input>、<textarea>、<button>、<select>、<option>、<optgroup>、<fieldset>、<label>和<output>等。
示例代碼:
<!DOCTYPE html>
<html>
<head>
<style>
form {
display: flex;
flex-direction: column;
}
</style>
</head>
<body>
<form>
<label for="username">用戶名:</label>
<input type="text" id="username" name="username">
<br>
<label for="password">密碼:</label>
<input type="password" id="password" name="password">
<br>
<input type="submit" value="提交">
</form>
</body>
</html>
運(yùn)行結(jié)果:
示例代碼:
<!DOCTYPE html>
<htmml>
<head>
<meta charst = "UTF-8">
<title>html--無(wú)序列表</title>
</head>
<body>
<ul>
<li>默認(rèn)的無(wú)序列表</li>
<li>默認(rèn)的無(wú)序列表</li>
<li>默認(rèn)的無(wú)序列表</li>
</ul>
<ul>
<li type = "circle">添加circle屬性</li>
<li type = "circle">添加circle屬性</li>
<li type = "circle">添加circle屬性</li>
</ul>
<ul>
<li type = "square">添加square屬性</li>
<li type = "square">添加square屬性</li>
<li type = "squaare">添加square屬性</li>
</ul>
</body>
</html>
運(yùn)行結(jié)果:
也可以使用CSS list-style-type屬性定義html無(wú)序列表樣式。
想要快速入門前端開發(fā)嗎?推薦一個(gè)前端開發(fā)基礎(chǔ)課程,這個(gè)老師講的特別好,零基礎(chǔ)學(xué)習(xí)無(wú)壓力,知識(shí)點(diǎn)結(jié)合代碼,邊學(xué)邊練,可以免費(fèi)試看試學(xué),還有各種輔助工具和資料,非常適合新手!點(diǎn)這里前往學(xué)習(xí)哦!「鏈接」
示例代碼:
<ol>
<li>默認(rèn)的有序列表</li>
<li>默認(rèn)的有序列表</li>
<li>默認(rèn)的有序列表</li>
</ol>
<ol type = "a" start = "2">
<li>第1項(xiàng)</li>
<li>第2項(xiàng)</li>
<li>第3項(xiàng)</li>
<li value ="20">第四項(xiàng)</li>
</ol>
<ol type = "Ⅰ" start = "2">
<li>第1項(xiàng)</li>
<li>第2項(xiàng)</li>
<li>第3項(xiàng)</li>
</ol>
運(yùn)行結(jié)果:
同樣也可以使用CSS list-style-type屬性定義html有序列表樣式。
<dl>
<dt>名詞1</dt>
<dd>名詞1解釋1</dd>
<dd>名詞1解釋2</dd>
<dt>名詞2</dt>
<dd>名詞2解釋1</dd>
<dd>名詞2解釋2</dd>
</dl>
<dl>即“definition list(定義列表)”,
<dt>即“definition term(定義名詞)”,
而<dd>即“definition description(定義描述)”。
示例代碼:
<dl>
<dt>計(jì)算機(jī)</dt>
<dd>用來(lái)計(jì)算的儀器</dd>
<dt>顯示器</dt>
<dd>以視覺方式顯示信息的裝置</dd>
</dl>
運(yùn)行結(jié)果:
以上就是HTML中常用的布局標(biāo)簽及其使用方法。在實(shí)際開發(fā)中,還可以結(jié)合CSS和JavaScript來(lái)實(shí)現(xiàn)更復(fù)雜的布局和交互效果。
掌握了這些HTML常用布局標(biāo)簽,你已經(jīng)擁有了構(gòu)建網(wǎng)頁(yè)的基礎(chǔ)工具。記住,好的布局不僅需要技術(shù),更需要?jiǎng)?chuàng)意和對(duì)細(xì)節(jié)的關(guān)注。現(xiàn)在,打開你的代碼編輯器,開始你的布局設(shè)計(jì)之旅吧!
例1: 自動(dòng)播放功能
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>網(wǎng)頁(yè)標(biāo)題</title>
<meta name="keywords" content="關(guān)鍵字列表" />
<meta name="description" content="網(wǎng)頁(yè)描述" />
<link rel="stylesheet" type="text/css" href="" />
<style type="text/css">
*{margin:0;padding:0;}
body{color:#333;font-size:12px;line-height:20px;}
ul,li{list-style:none;}
#content{margin:0 auto;width:540px;}
#content .scroll_top{width:540px;height:51px;background:url(images/dd_scroll_top.gif) no-repeat;}
#content .scroll_mid{
width:533px;
padding:5px 0 5px 5px;
border-left:1px solid #d6d5d6;
border-right:1px solid #d6d5d6;
background:#f2f2f3;
}
#scroll_number{
float:right;
padding-right:10px;
}
#scroll_number li{
margin-top:5px;
width:13px;
height:13px;
line-height:16px;
border:1px solid #999;
cursor:pointer;
text-align:center;
}
#content .scroll_end{
width:540px;
height:8px;
background:url(images/dd_scroll_end.gif) no-repeat;
margin-bottom:10px;
}
.scroll_number_out{
}
.scroll_number_over{
background-color:#F96;
color:#FFF;
}
</style>
<script type="text/javascript">
//分析思路
//1.當(dāng)頁(yè)面加載完成后 使用定時(shí)器
//2.需要有一個(gè)定時(shí)器功能函數(shù) 這個(gè)函數(shù)的主要功能是實(shí)現(xiàn)圖片輪播
//3.當(dāng)鼠標(biāo)經(jīng)過圖片上時(shí) 清除定時(shí)器
//4.當(dāng)鼠標(biāo)離開圖片上時(shí) 重新調(diào)用定時(shí)器
//5.把鼠標(biāo)放在li標(biāo)簽上面 要顯示li標(biāo)簽上數(shù)字對(duì)應(yīng)的圖片 清除定時(shí)器
//6.當(dāng)鼠標(biāo)離開li標(biāo)簽時(shí) 圖片繼續(xù)滾動(dòng) 重新調(diào)用定時(shí)器
//7.li標(biāo)簽要隨著圖片滾動(dòng)而滾動(dòng) 并且對(duì)應(yīng)的li標(biāo)簽要高亮
//1.當(dāng)頁(yè)面加載完成時(shí)
var img_obj = null;
var timer;
var lis_obj = null; //用來(lái)保存li
window.onload = function(){
//先將所有的li上面的class清空
//需要獲取到id="dd_scroll"對(duì)象
img_obj = document.getElementById("dd_scroll");
//實(shí)現(xiàn)定時(shí)器
timer = setInterval("scroll_img()",1000);
//通過id="scroll_number"來(lái)獲取對(duì)象
lis_obj = document.getElementById("scroll_number").getElementsByTagName("li");
}
//主要是用于實(shí)現(xiàn)圖片輪播
var i = 2;
function scroll_img(){
//先將所有的li標(biāo)簽的class都清空
for(var j=0;j<lis_obj.length;j++){
lis_obj[j].className = "";
}
lis_obj[i-1].className = "scroll_number_over";
//需要改變img標(biāo)簽的src屬性
img_obj.src = "images/dd_scroll_"+i+".jpg";
i++;
//判斷i的值
if(i>6){
i = 1;
}
}
//鼠標(biāo)經(jīng)過 清除定時(shí)器
function stopScroll(ind){
if(ind){
i = ind; //把值賦值給i
scroll_img(); //重新調(diào)用圖片輪播函數(shù)
}
clearInterval(timer);
}
//鼠標(biāo)離開時(shí) 重新調(diào)用定時(shí)器
function goon(){
timer = setInterval("scroll_img()",1000);
}
</script>
</head>
<body>
<div id="content">
<!--輪換顯示的橫幅廣告圖片-->
<div class="scroll_top"></div>
<div class="scroll_mid"> <img src="images/dd_scroll_1.jpg" alt="輪換顯示的圖片廣告" id="dd_scroll" onmouseover="stopScroll()" onmouseout="goon()"/>
<div id="scroll_number">
<ul>
<li id="scroll_number_1" onmouseover="stopScroll(1)" class="scroll_number_over" onmouseout="goon()">1</li>
<li id="scroll_number_2" onmouseover="stopScroll(2)" onmouseout="goon()">2</li>
<li id="scroll_number_3" onmouseover="stopScroll(3)" onmouseout="goon()">3</li>
<li id="scroll_number_4" onmouseover="stopScroll(4)" onmouseout="goon()">4</li>
<li id="scroll_number_5" onmouseover="stopScroll(5)" onmouseout="goon()">5</li>
<li id="scroll_number_6" onmouseover="stopScroll(6)" onmouseout="goon()">6</li>
</ul>
</div>
</div>
<div class="scroll_end"></div>
</div>
</body>
</html>
圖片規(guī)格:500px 180px 共六張圖片
實(shí)例2: 鼠標(biāo)點(diǎn)擊功能
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
*{
margin: 0;
padding: 0;
list-style: none;
}
div{
width: 665px;
height: 442px;
margin: 0 auto;
border: 5px solid gray;
position: relative;
}
/*5張圖片的樣式*/
ul,ul>li{
width: 665px;
height: 442px;
position: absolute;
}
ul>li{
display: none;
}
ul>li.active{
display: block;
}
/*5個(gè)點(diǎn)點(diǎn)點(diǎn)的樣式*/
ol{
width: 150px;
height: 30px;
position: absolute;
left: 50%;
margin-left: -75px;
bottom: 20px;
}
ol>li{
width: 16px;
height: 16px;
margin: 7px;
float: left;
cursor: pointer;
border-radius: 50%;
background-color: rgba(255,255,255,0.5);
}
ol>li.active{
background-color: rgba(255,255,255,1);
}
div>a{
color: #999;
width: 30px;
height: 62px;
font-size: 24px;
text-align: center;
line-height: 62px;
text-decoration: none;
background-color: rgba(255,255,255,0.5);
position: absolute;
top: 190px;
}
div>a.prev{
left: 0;
}
div>a.next{
right: 0;
}
</style>
</head>
<body>
<div>
<!--5張圖-->
<ul>
<li class="active"><a href=""><img src="img/1.jpeg"/></a></li>
<li><a href=""><img src="img/2.jpeg"/></a></li>
<li><a href=""><img src="img/3.jpeg"/></a></li>
<li><a href=""><img src="img/4.jpeg"/></a></li>
<li><a href=""><img src="img/5.jpeg"/></a></li>
</ul>
<!--5個(gè)點(diǎn)點(diǎn)點(diǎn)-->
<ol>
<li class="active"></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ol>
<!--左右箭頭-->
<a class="prev" href="javascript:;"><</a>
<a class="next" href="javascript:;">></a>
</div>
<script type="text/javascript">
//獲取左右箭頭
var prev = document.getElementsByClassName("prev")[0];
var next = document.getElementsByClassName("next")[0];
//獲取5個(gè)點(diǎn)點(diǎn)點(diǎn)
var ol_lis = document.getElementsByTagName("ol")[0].getElementsByTagName("li");
//獲取5張圖
var ul_lis = document.getElementsByTagName("ul")[0].getElementsByTagName("li");
var num = 0;
//下一張
next.onclick = function(){
num++;
if(num===ul_lis.length){
num = 0;
}
for(var i=0;i<ul_lis.length;i++){
ul_lis[i].className = "";//當(dāng)我點(diǎn)擊下一張是先把所有的圖片隱藏
ol_lis[i].className = "";//當(dāng)我點(diǎn)擊下一張是先把所有的圖片隱藏
}
ul_lis[num].className = "active";
ol_lis[num].className = "active";
}
//上一張
prev.onclick = function(){
num--;
if(num===-1){
num = ul_lis.length-1;
}
for(var j=0;j<ul_lis.length;j++){
ul_lis[j].className = "";//當(dāng)我點(diǎn)擊下一張是先把所有的圖片隱藏
ol_lis[j].className = "";//當(dāng)我點(diǎn)擊下一張是先把所有的圖片隱藏
}
ul_lis[num].className = "active";
ol_lis[num].className = "active";
}
//點(diǎn)點(diǎn)點(diǎn)
for(var k=0;k<ol_lis.length;k++){
//什么時(shí)候需要用索引 2個(gè)及其以上事物相關(guān)聯(lián)的
ol_lis[k].index = k;//我給每一個(gè)點(diǎn)點(diǎn)點(diǎn)加一個(gè)自定義屬性
ol_lis[k].onclick = function(){
for(var q=0;q<ol_lis.length;q++){
ol_lis[q].className = "";
ul_lis[q].className = "";
}
this.className = "active";
ul_lis[this.index].className = "active";
//此時(shí)左右按鈕和點(diǎn)點(diǎn)點(diǎn)是兩條路 我們需要讓他們執(zhí)行同樣的規(guī)則
//所以num = 當(dāng)前被點(diǎn)擊的li的自定義屬性
num = this.index;
}
}
</script>
</body>
</html>
圖片規(guī)格:665px 442px 共六張圖片
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。