h5新增的表單標簽
原創weixin_46366721 最后發布于2020-02-29 12:27:39 閱讀數 13 收藏
展開
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
/ 谷歌 /
input::-webkit-input-placeholder{
color:blue;
}
/ 火狐19+ /
input::-moz--input-placeholder{
color:blue
}
/ 火狐4-18 /
input:-moz-input-placeholder{
color:blue;
}
/ ie高版本,ie+ /
input::-ms-input-placeholder{
color:blue;
}
/ 歐鵬 /
input::-o-input-placeholder{
color:blue;
}
</style>
</head>
<body>
<form action="" novalidate>
<input type="email">
<input type="submit">
<br>
<input type="url">
<input type="submit">
<br>
<input type="range">
<input type="submit">
<br>
<input type="number">
<input type="submit">
<br>
<input type="search">
<input type="submit">
<br>
<input type="color">
<input type="submit">
<br>
<input type="time">
<br>
<input type="month">
<br>
<input type="week">
<br>
<!-- <input type="datetime-local> -->
<input type="date">
<br>
<!-- <input type="text" required>
<input type="submit"> -->
<br>
<input type="number" step="3">
<input type="submit">
<br>
<input type="text" name="aa" autocomplete="off">
<input type="submit">
<br>
<input type="text" value="" placeholder="請輸入您的姓名:" autofocus>
<input type="submit">
<br>
<input type="text" placeholder="請輸入您的手機號:" pattern="^1[3|5|8]\d{9}$">
<input type="submit">
<br>
<input type="file" multiple>
<br>
<input type="url" list="lll">
<datalist id="lll">
<option value="http://www.baidu.com" label="百度"></option>
<option value="http://www.sina.com" label="新浪"></option>
</datalist>
<input type="submit">
</form>
</body>
</html>
h5新增type類型:
Type=“email” 限制用戶必須輸入email類型
Type=“url” 輸入的網址前面必須加上http://
Type=“range” 產生一個滑動條表單
Type=“number” 必須輸入的是數字,調整數字大小(谷歌瀏覽器輸入字母不可以,但是可以輸入e;火狐可以輸入字母,不能提交)
Type=“search” 產生一個搜索意義的表單(火狐瀏覽器沒有叉號,谷歌有)
Type=“color” 生成一個顏色選擇的表單;
產生很大的兼容問題:
type=“time” 限制用戶必須輸入時間類型
type=“month” 限制用戶必須輸入月份類型(火狐瀏覽器不顯示)
type="week"限制用戶必須輸入周類型
type="datetime-local"選取本地時間
type=“date”
新增表單屬性:
required 檢測是否為空;
min:最小值
max:最大值
step:數值增加的幅度; 如果輸入的是step=“3”,搜索框輸入2,按住上鍵調的話,會是3,因為法定值:-3 0 3 6 9
autocomplete是否自動提示信息 on(默認值)off;和name="" 一起使用;
placeholder:文本框的提示信息(value的值得手動刪除,而placeholder不用刪除,可以直接輸入內容)
autofocus:自動聚焦,一個頁面只能存在一個聚焦(auto:自動)
pattern:后面的屬性值是一個正則表達式
//手機號驗證pattern=“^1[3][5]\d{9}$”
novalidate:取消驗證,放在form里面
multiple:選擇多個文件上傳
list:提示信息;必須結合datalist標簽,綁定datelist (谷歌提示value和label,而火狐只有label提示)
h5:新增的表單標簽
datalist
option
output:計算結果輸出、腳本的輸出
標準格式注意:
super()和this()調用語句不能同時在一個構造器中。
super()或this()調用語句只能作為構造器中的第一句出現。原因:
無論通過哪個構造器創建子類對象,需要保證先初始化父類。
目的是,當子類繼承父類后,“繼承”父類所有的屬性和方法,因此子類有必要知道父類如何為對象進行初始化。
從結果上看:繼承性
子類繼承父類以后,就獲取了父類中聲明的屬性或方法。
創建子類的對象,在堆空間中,就會加載所父類中聲明的屬性。
從過程上看:
當我們通過子類的構造器創建子類對象時,我們一定會直接或間接的調用其父類的構造器,進而調用父類的父類的構造器,…直到調用了java.lang.Object類中空參的構造器為止。正因為加載過所的父類的結構,所以才可以看到內存中父類中的結構,子類對象才可以考慮進行調用。
強調說明:
雖然創建子類對象時,調用了父類的構造器,但是自始至終就創建過一個對象,即為new的子類對象。
html標簽分為兩種,內聯元素和塊級元素,首先我們先了解一下內聯元素和塊級元素的概念:
塊級元素:一般是其它元素的容器,可容納內聯元素和其它塊級元素,塊級元素排斥其它元素與其位于同一行,可設置寬度(width)高度(height)屬性,正常流中的塊級元素會垂直擺放。常見塊狀元素為“div”
內聯元素(行內元素):內聯元素只能容納文本或者其他內聯元素,是塊級元素的后代,它允許其他內聯元素與其位于同一行,不能設置高度(height)和寬度(width)。常見內聯元素為“a”。
根據塊級元素的概念我們可以理解為塊級元素前后帶有換行符,也就相當于元素前后加了一個<br>標簽。我們可以把塊級元素想象成一個塊或一個矩形,所以塊級元素能設置高度寬度屬性
新建一個前端學習qun438905713,在群里大多數都是零基礎學習者,大家相互幫助,相互解答,并且還準備很多學習資料,歡迎零基礎的小伙伴來一起交流。
例:
css文件:
復制代碼
代碼如下:
width:200px;
height:200px;
background:#666
}
div2{
width:200px;
height:200px;
background:#F00
}
html文件:
復制代碼
代碼如下:
<div id="div1">
div1
塊級元素排斥其他元素與其位于同一行
</div>
<div id="div2">
div2
塊級元素排斥其他元素與其位于同一行
</div>
顯示效果:
兩個div元素不位于同一行
根據內聯元素的概念,我們可以理解為內聯元素前后沒有換行符。我們可以把內聯元素想象成一條線,所以它不能設置height屬性和width屬性。
塊級元素(block element)標簽
address -地址
blockquote - 塊引用
center – 居中對齊
dir -目錄列表
div - 常用塊級容易,也是CSS layout的主要標簽
dl - 定義列表
fieldset - form控制組
form - 交互表單
h1 - 大標題
h2 - 副標題
h3 - 3級標題
h4 - 4級標題
h5 - 5級標題
h6 - 6級標題
hr - 水平分隔線
isindex - input prompt
menu - 菜單列表
noframes - frames可選內容,(對于不支持frame的瀏覽器顯示此區塊內容
noscript - 可選腳本內容(對于不支持script的瀏覽器顯示此內容)
ol - 排序表單
p - 段落
pre - 格式化文本
table - 表格
ul - 非排序列表
內聯元素(inline element)
a - 錨點
abbr - 縮寫
acronym - 首字
b - 粗體(不推薦)
bdo - bidi override
big - 大字體
br - 換行
cite - 引用
code - 計算機代碼(在引用源碼的時候需要)
dfn - 定義字段
em - 強調
font - 字體設定(不推薦)
i - 斜體
img - 圖片
input - 輸入框
kbd - 定義鍵盤文本
label - 表格標簽
q - 短引用
s - 中劃線
samp - 定義范例計算機代碼
select - 項目選擇
small - 小字體文本
span - 常用內聯容器,定義文本內區塊
strike - 中劃線
strong - 粗體強調
sub - 下標
sup - 上標
textarea - 多行文本輸入框
tt - 定義打字機文本
————————————————
版權聲明:本文為CSDN博主「前端學習線路」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/webxuexi168/article/details/104382660
一、你能學到什么?
①如何使用css變量 ②實現圣杯布局和雙飛翼的簡單思路 ③了解浮動和margin的特性
css變量設置(兩個布局都有的部分)
:root{
/ 左邊欄寬度 /
--lw:300px;
/負左邊欄寬度/
--lwf:-300px;
/ 右邊欄寬度 /
--rw:400px;
/負左邊欄寬度/
--rwf:-400px;
/ 高度 /
--height:300px;
}
二、圣杯布局的html和css代碼
html部分
<div class="holyGrail">
<div class="hg_main">main</div>
<div class="hg_left">left</div>
<div class="hg_right">right</div>
</div>
css 實現對應的四個class
.holyGrail {
height: var(--height);
/ 留出左右兩欄的布局 為了字體不被覆蓋/
padding-left: var(--lw);
padding-right: var(--rw);
}
.hg_main{
width:100%;
float: left;
height: var(--height);
background-color: blanchedalmond;
}
.hg_left{
position: relative;
left: var(--lwf);
float: left;
margin-left: -100%;
width:var(--lw);
height: var(--height);
background-color: blueviolet;
}
.hg_right{
float: left;
margin-right: var(--rwf);
width:var(--rw);
height: var(--height);
background-color: brown;
}
三、雙飛翼布局的html和css代碼
html部分
<div class="doubleWing">
<div class="dw_main">
<div class="dw_con">main</div>
</div>
<div class="dw_left">left</div>
<div class="dw_right">right</div>
</div>
css 實現對應的五個class
.doubleWing{
padding-right: var(--rw);
}
.dw_left{
float: left;
margin-left: -100%;
width:var(--lw);
height: var(--height);
background-color: blueviolet;
}
.dw_main{
width:100%;
float: left;
height: var(--height);
background-color: blanchedalmond;
}
.dw_con {
margin-left: var(--lw);
}
.dw_right{
float: left;
margin-right: var(--rwf);
width:var(--rw);
background-color: brown;
height: var(--height);
}
四、學會兩個布局的注意點
圣杯布局
在最外邊的類(holyGrail)左右要留出左欄和右欄的寬度(使用padding-left,padding-right)
中間的div.hg_main放在最上面,優先渲染,中間div自適應,width為100%
左中右欄的div都設置浮動,左欄通過margin-left:-100%移動到和中間的div同一起點,然后通過position: relative;
left: -(左欄的寬度);會移動到最外層div的左內邊距的區域(中間div的左邊)
右欄可以通過margin-right:-(右欄的寬度);移動到最外層div的右內邊距的區域(中間div的右邊)
雙飛翼布局
在中欄的div再加一個div,設置margin-left:左欄的寬度,這樣可以省略左欄的div使用postion和left的屬性移動
最外層的div可以不用預留左欄的位置了
五、兩個布局的對比的優缺點
布局 優點 缺點
圣杯 無多余dom 當中間的寬度小于左右的寬度時,結構混亂
雙飛翼 可以支持各種寬度,通用性強較強 需要多加一層dom
代碼下載地址
記得一定要自己去實現一下
javascript中window.open()與window.location.href的區別
window.open(‘index.html’) 表示新增一個窗口打開 index.html 這個頁面,并不刷新
location.href(‘index.html’) 表示在當前窗口重定向到新頁面,打開并刷新 index.html 這個頁面
window.location 是 window 對象的屬性,用來替換當前頁,也就是重新定位當前頁
而window.open 是 window 對象的方法,是用來打開一個新窗口的函數
// 打開新頁面
// 注意:有些瀏覽器的安全設置會將window.open()屏蔽,例如避免彈出廣告窗
window.open('./index.html');
// 在原窗口打開新頁面
window.location.href="./index.html";
window.open()詳解
window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no')
參數解釋: 三個參數
window.open 彈出新窗口的命令;
‘page.html’ 彈出窗口的文件名;
‘newPage’ 彈出窗口的名字(不是文件名),非必須,可用空’'代替;
height=100 窗口高度;
width=400 窗口寬度;
top=0 窗口距離屏幕上方的象素值;
left=0 窗口距離屏幕左側的象素值;
toolbar=no 是否顯示工具欄,yes為顯示;
menubar=no 是否顯示菜單欄,yes為顯示;
scrollbars=no 是否顯示滾動欄,yes為顯示;
resizable=no 是否允許改變窗口大小,yes為允許;
location=no 是否顯示地址欄,yes為允許;
status=no 是否顯示狀態欄內的信息(通常是文件已經打開),yes為允許;
常用的js返回與刷新頁面
在此用a標簽舉例
<a href="javascript: history.back(-1)">返回上一頁</a>
<a href="javascript:history.go(-1)">返回上一頁</a>
<a href="javascript:history.go(-2)">返回前兩頁</a>
<a href="javascript:location.reload()">刷新當前頁面</a>
<a href="javascript:" onclick="self.location=document.referrer;">返回上一頁并刷新</a>
js
// 刷新當前頁面
window.location.Reload();
self.location.reload();
window.location.href = window.location.href;
彈性布局(Flex)
隨著移動互聯網的發展,對于網頁布局來說要求越來越高,而傳統的布局方案對于實現特殊布局非常不方便,比如垂直居中。
2009年,W3C 提出了一種新的方案----Flex 布局,可以簡便、完整、響應式地實現各種頁面布局。目前,它已經得到了所有瀏覽器的支持,這意味著,現在就能很安全地使用這項功能。
下面是一些彈性布局的基本語法:
兩部分:
目錄
介紹
目錄
介紹
學習vue-router做的一些總結筆記,內容會持續更新!
目錄
1、HTML和JS中使用router
2、動態路由
3、嵌套路由
4、編程式導航
5、命名路由、命名視圖
6、重定向、別名
7、路由組件傳參
8、導航守衛
9、路由元信息
10、過度動效
11、數據獲取
12、滾動條位置
使用 vue-cli 創建 vue 項目:
cd 到指定的目錄下 命令行輸入:
vue init webpack-simple <項目名稱>
根據提示設置Project name
設置Project description
設置Author
設置License
設置Use sass?
cd到剛剛創建的項目名稱目錄
命令行輸入:npm install
等待安裝完成后 執行 npm run dev 命令
注:以下部分練習是在https://jsfiddle.net 中進行
創建組件:(創建全局組件)
Html 部分:
<div id="app">
<div>練習</div>
<!-- 這里的 inline-template 取代組件函數中的 template:'' -->
<my-cmp inline-template>
<p>{{ status }}</p>
</my-cmp>
<hr>
<my-cmp inline-template>
<p>第二次使用{{ status }}</p>
</my-cmp>
</div>
Js 部分:
Vue.component('my-cmp',{
data: function () {
return {
status:'Critical'
}
},
methods: {}
});
var vm = new Vue({
el: "#app"
})
如果將data提取成公共的部分,則多次使用同一個組件則這部分數據在內存中使用的是同一塊存儲 如下演示:
html部分:
<div id="app">
<div>練習</div>
<my-cmp></my-cmp>
<hr>
<my-cmp></my-cmp>
</div>
Js 部分
var data = {status:'Critical'};
Vue.component('my-cmp',{
data: function () {
return data
},
template:'<p>Server status {{ status }} (<button @click="changeStatus">Change</button>)</p>',
methods: {
changeStatus(){
this.status = "Nomal"
}
},
});
var vm = new Vue({
el: "#app"
})
上面的js代碼當點擊按鈕的時候兩個組件引用的數據均會發生變化
局部注冊組件:
html部分:
<div id="app">
<div>局部注冊組件練習</div>
<local-cmp></local-cmp>
<hr>
<local-cmp></local-cmp>
</div>
Js 部分:
var cmp = {
data: function () {
return {
status:'Critical'
}
},
template:'<p>Server status {{ status }} (<button @click="changeStatus">Change</button>)</p>',
methods: {
changeStatus(){
this.status = "Nomal"
}
},
};
var vm = new Vue({
el: "#app",
components:{'local-cmp':cmp}
})
環境搭建
首先在微信公眾平臺注冊一個我們自己的賬號:
根據注冊提示完成注冊
閑著沒事兒寫了個小 demo ,獲取手機上已安裝應用信息,系統應用和 非系統應用
MD5 SHA1 SHA256 簽名信息 點擊簽名信息可復制到剪切板,
GitHub:https://github.com/sunan-n/GetAppInfo
如下圖:
<span style="white-space:pre;"> </span>主要就是這個方法,傳參數進來獲取相應的簽名類型 信息<br />
public static String getSignaturesInfo(Context context, String packageName, String tpye) {<br />
// //獲取包管理器<br />
PackageManager pm = context.getPackageManager();<br />
//返回包括在包中的簽名信息<br />
int flags = PackageManager.GET_SIGNATURES;<br />
PackageInfo packageInfo = null;<br />
try {<br />
//獲得包的所有內容信息類<br />
packageInfo = pm.getPackageInfo(packageName, flags);<br />
} catch (PackageManager.NameNotFoundException e) {<br />
e.printStackTrace();<br />
}<br />
//簽名信息<br />
Signature[] signatures = packageInfo.signatures;<br />
byte[] cert = signatures[0].toByteArray();<br />
//將簽名轉換為字節數組流<br />
InputStream input = new ByteArrayInputStream(cert);<br />
//證書工廠類,這個類實現了出廠合格證算法的功能<br />
CertificateFactory cf = null;<br />
try {<br />
cf = CertificateFactory.getInstance("X509");<br />
} catch (CertificateException e) {<br />
e.printStackTrace();<br />
}<br />
//X509證書,X.509是一種非常通用的證書格式<br />
X509Certificate c = null;<br />
try {<br />
c = (X509Certificate) cf.generateCertificate(input);<br />
} catch (CertificateException e) {<br />
e.printStackTrace();<br />
}<br />
String hexString = null;<br />
try {<br />
//加密算法的類,這里的參數可以使MD4,MD5等加密算法<br />
// MessageDigest md = MessageDigest.getInstance("SHA1");<br />
MessageDigest md = MessageDigest.getInstance(tpye);<br />
//獲得公鑰<br />
byte[] publicKey = md.digest(c.getEncoded());<br />
//字節到十六進制的格式轉換<br />
hexString = byte2HexFormatted(publicKey);<br />
} catch (NoSuchAlgorithmException e1) {<br />
e1.printStackTrace();<br />
} catch (CertificateEncodingException e) {<br />
e.printStackTrace();<br />
}<br />
return hexString;<br />
}<br />
<br />
藍藍設計的小編 http://www.syprn.cn