12 個實用的前端開發(fā)技巧總結(jié)
1. 利用 CSS 穿透覆蓋默認樣式
常見發(fā)生場景:假如我們需要通過 input,type="file"來上傳文件,而這個 input 的默認樣式,可以說是非常地丑。所以我們希望通過一張圖片,與這個 input 大小一樣,位置一致地蓋在上面。這個時候,顯然,這個時候點擊圖片,input 是不會起作用的。就是因為 img 隔絕了 click 的穿透,而我們希望的是,這個 img 只是視覺上遮擋了 input 的樣式,但是點擊的時候還是點擊到 input。所以,只要讓 img 可穿透即可。
css 代碼如下:
img?{
??pointer-events:?none;
}
2. 實現(xiàn)自定義原生 select 控件的樣式
由于 select 移動端原生樣式很丑,但是原生彈出效果是符合我們設(shè)計的原則。直接修改 select 的樣式的時候,一個奇怪的現(xiàn)象出現(xiàn)了,在 chrome 上調(diào)試的時候,自己定義的樣式起了作用,在 Android 手機上也起了作用,但是到了 ios 手機上就不行了,典型的不兼容問題,這個時候禁用原生的樣式即可。
css 代碼如下:
select?{
??-webkit-appearance:?none;
}
3. 文本溢出處理
移動設(shè)備相對來說頁面較小,很多時候顯示的一些信息都需要省略部分。最常見的是單行標題溢出省略,多行詳情介紹溢出省略。現(xiàn)在都用框架開發(fā)了,這種建議需求建議形成一個基礎(chǔ)組件,方便快捷。
css 代碼如下:
//單行
.single?{
??overflow:?hidden;
??white-space:?nowrap;
??text-overflow:?ellipsis;
}
//多行
.more?{
??display:?-webkit-box?!important;
??overflow:?hidden;
??text-overflow:?ellipsis;
??work-break:?break-all;
??-webkit-box-orient:?vertical;
??-webkit-line-clamp:?2;?//指定行數(shù)
}
4. 開啟彈性滾動
css 代碼如下:
body?{
??overflow:?scroll;
??-webkit-overflow-scrolling:?touch;
}
注意:Android 不支持原生的彈性滾動,但可以借助第三方庫 iScroll 來實現(xiàn)。
5. 一像素邊框設(shè)置
很多時候,想保持邊框的大小在任何設(shè)置上都是 1px,但是因為 1px 使用 2dp 渲染,也就是說會顯示為 2px 大小。所以,要采用 css3 縮放一下。
css 代碼如下:
.folder?li?{
??position:?relative;
??padding:?5px;
}
.folder?li?+?li:before?{
??position:?absolute;
??top:?-1px;
??left:?0;
??content:?"?";
??width:?100%;
??height:?1px;
??border-top:?1px?solid?#ccc;
??-webkit-transform:?scaleY(0.5);
}
6. 防止鼠標選中事件
<div?class="mask"?onselectstart="return?false">div>
<div?class="link">
??<a?href="javascrip;;">登錄a>
div>
給元素添加了onslectstart="return false",就可以防止鼠標選中事件。
7. 給動態(tài)添加的元素綁定事件
利用事件代理達到這個效果即可。如:
$(document).on("click",?".large",?slide);?//jq中的寫法
//第一個參數(shù)表示的是對應(yīng)事件,第二個是需要綁定事件的元素的id或class,第三個是綁定的對應(yīng)的事件函數(shù)名
8. 兼容 IE 瀏覽器的透明度處理
.ui?{
??width:?100%;
??height:?100%;
??opacity:?0.4;
??filter:?Alpha(opacity=40);?//兼容IE瀏覽器的處理
}
9. 常用的全屏居中 JS 函數(shù)
//獲取元素
function?getElement(ele)?{
??return?document.getElementById(ele);
}
//自動居中函數(shù)
function?autoCenter(el)?{
??var?bodyX?=?document.documentElement.offsetWidth?||?document.body.offsetWidth;
??var?bodyY?=
????document.documentElement.offsetHeight?||?document.body.offsetHeight;
??var?elementX?=?el.offsetWidth;
??var?elementY?=?el.offsetHeight;
??el.style.left?=?(bodyX?-?elementX)?/?2?+?"px";
??el.style.top?=?(bodyY?-?elementY)?/?2?+?"px";
}
10. 常用的全屏居中 CSS 函數(shù)
body?{
??height:?100vh;
??text-align:?center;
??line-height:?100vh;
}
11. 在輸入框輸入完內(nèi)容并按回車的時候進行判斷
比如說輸入完 11000 在按下回車的時候。
"textbox"?id="textbox1"?onkeypress="CheckInfo"?/>
????<script?language="javascript"?type="text/javascript">
????function?CheckInfo()
????{
????if?(event.keyCode==13)?{
??????????alert(textbox1.text);
???????}
????}
????script>
12. chrome 調(diào)試快捷鍵
① ctrl+shift+f 全文查找
② ctrl+o 查找文件名
③ ctrl+shift+o 查找 js 函數(shù)名
最后
如果你覺得這篇內(nèi)容對你挺有啟發(fā),我想邀請你幫我三個小忙:
點個「在看」,讓更多的人也能看到這篇內(nèi)容(喜歡不點在看,都是耍流氓 -_-)
歡迎加我微信「qianyu443033099」拉你進技術(shù)群,長期交流學習...
關(guān)注公眾號「前端下午茶」,持續(xù)為你推送精選好文,也可以加我為好友,隨時聊騷。

