前端那些事儿
承蒙大家厚爱,我的《Go语言之路》的纸质版图书已经上架京东,有需要的朋友请点击 此链接 购买。
记录工作中总结的前端部分内容…
HTML
-
给HTML加注释
<!-- 侧边栏开始 --> <div class="menu"> <div> ... </div> </div> <!-- 侧边栏结束 -->
-
元素是可以写一些自定义属性的
<div id="test_id" my-id="something-useful"></div>
CSS
-
样式的定义不建议直接写内联样式
style
,可维护性=0 -
CSS样式的优先级(下面示例中网页中Talk is cheap, show me the code.实际会是什么颜色?)
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Python全栈之前端拾遗</title> <style type="text/css"> /* 内部样式 */ h1 { color: green; } </style> <link rel="stylesheet" type="text/css" href="myStyle.css" /> <!--myStyle.css 中设置 h1{color:blue;}--> </head> <body> <h1 style="color: red">Talk is cheap, show me the code.</h1> </body> </html>
一句话:离HTML标签最近的样式优先级最高。
-
CSS选择器的权重(ICE公式和!important)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>CSS选择器权重示例</title> <style type="text/css"> #test-id a { /* 权值 = 100+1=101 */ color: blue; } #test-id .test-class a { /* 权值 = 100+10+1=111 */ color: green; } #test-id p a { /* 权值 = 100+1+1=102 */ color: red; } </style> </head> <body> <div id="test-id"> <div class="test-class"> <p> <a href="#">Talk is cheap, show me the code.</a> <!-- 上面元素的字体颜色应该是权值最高的green --> </p> </div> </div> </body> </html>
注意:
- 10个元素选择器的权重并不比1个class选择器大,即100 + 10 + 1 的权重大于100 + 0 + 11。
!important
会覆盖其他的样式。建议参考:更多详情请点我
JavaScript
相等的判断务必使用’==='
-
==
会自动转换数据类型再进行比较。false == 0; // true 1 == "1" // true
-
===
不自动转换数据类型,数据类型不一致,直接false;数据类型一致,继续比较。false === 0; // false 1 === "1" . // false
-
Array的sort(),会把数字转换成字符串再比较!!!
[10, 20, 1, 2].sort() // [1, 10, 2, 20]
-
Array中是否含有某个元素的判断,Array中没有的元素indexOf()会返回
-1
[1, 10, 2, 20].indexOf(6) // -1
-
推荐阅读:你不知道的JS
Chrome调试
- 查看hover和focus伪类
- 查看margin和padding
- 查看当前元素的层级
- 动态调试CSS样式
- 如何展开被压缩的JS文件和CSS文件
- 一条命令让chrome变成所见即所得的编辑器
- 想知道更多点我
插件
jQuery
$("#id").data()
BootStrap
- 要使用BootStrap的栅格系统,需要注意:
- row必须放入container中
- column必须放入row中
- column中嵌套column,首先要把被嵌套的column放到row中
col-lg-*
、col-md-*
、col-xs-*
和col-sm-*
- Bootstrap中文教程
Alert类通知
示例:
SweetAlert AJAX提交成功(done)或失败(error)时分别提示不用的内容。
function deleteRecord(recordID) {
swal({
title: "确定要删除这个产品吗?",
text: "删除后可就无法恢复了。",
type: "warning",
showCancelButton: true,
closeOnConfirm: false,
confirmButtonText: "是的,我要删除!",
confirmButtonColor: "#ec6c62",
cancelButtonText: "容我三思"
}, function (isConfirm) {
if (!isConfirm) return;
$.ajax({
type: "post",
url: "/delete/",
data: {"id": recordID},
success: function (data) {
var d_obj = $.parseJSON(data);
if (d_obj.code === "success") { //后端删除成功
swal("删除成功", d_obj.info, "success");
$("#p-" + recordID).remove() //删除页面中那一行数据
} else {
swal("出错啦。。。", d_obj.info, "error"); //后端删除失败
}
},
error: function () { // ajax请求失败
swal("啊哦。。。", "服务器走丢了。。。", "error");
}
})
});
}
其他推荐
-
DateTime Picker:时间插件
-
Flat UI:一套基于BootStrap的主题
-
LayoutIt! :可视化布局
-
jQuery UI:基于jQuery的组件库
通知类消息
附