码迷,mamicode.com
首页 > 其他好文 > 详细

Bootstrap框架

时间:2018-03-25 12:39:35      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:standard   购物   内联   标志位   .com   row   action   leave   cli   

jQuery补充

jQuery中文API文档:http://jquery.cuishifeng.cn/

文档操作

将内容添加到指定元素内部的后面
技术分享图片
$(A).append(B)// 把B追加到A
$(A).appendTo(B)// 把A追加到B

//例子
$("p").append("a");   //把字符a追加到p标签中
$("p").append("<a>aaaa</a>");  //把内容追加到p标签中
$("p").appendTo("a");    //把p标签追加到a标签中

//
var newLiel = document.createElement("p"); //创建dom对象
$(newLiel).text("444444"); //赋值
$("p").append(newLiel);    //将dom对象添加到标签p中
View Code

将内容添加指定元素的前面

技术分享图片
1 $(A).prepend(B)// 把B前置到A
2 $(A).prependTo(B)// 把A前置到B
3 //用法和上面的例子一样
View Code

将元素添加指定的元素外部的后面

技术分享图片
1 $(A).after(B)// 把B放到A的后面
2 $(A).insertAfter(B)// 把A放到B的后面
View Code

将元素添加到指定元素外部的前面

技术分享图片
1 $(A).before(B)// 把B放到A的前面
2 $(A).insertBefore(B)// 把A放到B的前面
View Code

例子:点击按钮在表格上添加一行数据和上删除一行数据

技术分享图片
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>文本操作</title>
 6 </head>
 7 <body>
 8 <button id="b1">新增</button>
 9 <table border="1">
10     <thead>
11     <tr>
12         <th>#</th>
13         <th>姓名</th>
14         <th>爱好</th>
15         <th>操作</th>
16     </tr>
17     </thead>
18     <tbody>
19     <tr>
20         <td>1</td>
21         <td>jack</td>
22         <td>喊麦</td>
23         <td>
24             <button class="delete">删除</button>
25             <button>编辑</button>
26         </td>
27     </tr>
28     </tbody>
29 </table>
30 
31 <script src="../jquery-3.3.1.min.js"></script>
32 
33 <script>
34     //找到新增的按钮
35     $("#b1").click(function () {
36         //生成一条数据 tr
37         var newTrEle = document.createElement("tr");
38         $(newTrEle).html("<td>2</td> <td>shier</td><td>学习</td><td><button class=‘delete‘>删除</button> <button>编辑</button></td>")
39         //把新创建的tr追加到body中去
40         $("tbody").append(newTrEle);
41     });
42 
43     //删除按钮绑定事件
44     $("tbody").on("click",".delete",function () {
45         // this指向的是实际触发事件的元素
46         $(this).parent().parent().remove();
47     })
48 </script>
49 </body>
50 </html>
View Code

替换

replaceWith()
replaceAll()
技术分享图片
clone()// 参数

//实例
<!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>克隆</title>
  <style>
    #b1 {
      background-color: deeppink;
      padding: 5px;
      color: white;
      margin: 5px;
    }
    #b2 {
      background-color: dodgerblue;
      padding: 5px;
      color: white;
      margin: 5px;
    }
  </style>
</head>
<body>

<button id="b1">屠龙宝刀,点击就送</button>
<hr>
<button id="b2">屠龙宝刀,点击就送</button>

<script src="../jquery-3.3.1.min.js"></script>
<script>
  // clone方法不加参数true,克隆标签但不克隆标签带的事件
  $("#b1").on("click", function () {
    $(this).clone().insertAfter(this);
  });
  // clone方法加参数true,克隆标签并且克隆标签带的事件
  $("#b2").on("click", function () {
    $(this).clone(true).insertAfter(this);
  });
</script>
</body>
</html>
克隆

事件

技术分享图片
1 click(function(){...})
2 hover(function(){...})
3 blur(function(){...})
4 focus(function(){...})
5 change(function(){...})
6 keyup(function(){...})
View Code

例子:keydown和keyup事件组合示例

技术分享图片
  1 <!DOCTYPE html>
  2 <html lang="zh-CN">
  3 <head>
  4   <meta charset="UTF-8">
  5   <meta http-equiv="x-ua-compatible" content="IE=edge">
  6   <meta name="viewport" content="width=device-width, initial-scale=1">
  7   <title>键盘事件示例</title>
  8 </head>
  9 <body>
 10 
 11 <table border="1">
 12   <thead>
 13   <tr>
 14     <th>#</th>
 15     <th>姓名</th>
 16     <th>操作</th>
 17   </tr>
 18   </thead>
 19   <tbody>
 20   <tr>
 21     <td><input type="checkbox"></td>
 22     <td>Jack</td>
 23     <td>
 24       <select>
 25         <option value="1">上线</option>
 26         <option value="2">下线</option>
 27         <option value="3">停职</option>
 28       </select>
 29     </td>
 30   </tr>
 31   <tr>
 32     <td><input type="checkbox"></td>
 33     <td>Tom</td>
 34     <td>
 35       <select>
 36         <option value="1">上线</option>
 37         <option value="2">下线</option>
 38         <option value="3">停职</option>
 39       </select>
 40     </td>
 41   </tr>
 42   <tr>
 43     <td><input type="checkbox"></td>
 44     <td>shier</td>
 45     <td>
 46       <select>
 47         <option value="1">上线</option>
 48         <option value="2">下线</option>
 49         <option value="3">停职</option>
 50       </select>
 51     </td>
 52   </tr>
 53   <tr>
 54     <td><input type="checkbox"></td>
 55     <td>EvaJ</td>
 56     <td>
 57       <select>
 58         <option value="1">上线</option>
 59         <option value="2">下线</option>
 60         <option value="3">停职</option>
 61       </select>
 62     </td>
 63   </tr>
 64   <tr>
 65     <td><input type="checkbox"></td>
 66     <td>Gold</td>
 67     <td>
 68       <select>
 69         <option value="1">上线</option>
 70         <option value="2">下线</option>
 71         <option value="3">停职</option>
 72       </select>
 73     </td>
 74   </tr>
 75   </tbody>
 76 </table>
 77 
 78 <script src="../jquery-3.3.1.min.js"></script>
 79 <script>
 80     //判断条件
 81     var flag = false;
 82     //找到shift按下的时候把flag设置为true
 83     $(window).keydown(function (e) {
 84         if (e.keyCode === 16) {
 85             flag = true
 86         }
 87     });
 88 
 89     //shift台上的时候设置flat设置为false
 90     $(window).keyup(function (e) {
 91         if (e.keyCode === 16) {
 92             flag = false
 93         }
 94     });
 95     //给select绑定change实例
 96     $("select").change(function () {
 97         //判断当前的select是否被checkbox选中
 98         var currentCheckbox = $(this).parent().parent().find(":checkbox").prop("checked")
 99         if (flag && currentCheckbox) {
100             //去到当前的select值
101             var selectValue = $(this).val();
102             //对所有选中checkbox的select设置统一的值
103             $("input[type=‘checkbox‘]:checked").parent().parent().find("select").val(selectValue)
104         }
105     });
106 </script>
107 </body>
108 </html>
keydown和keyup事件组合示例
技术分享图片
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4   <meta charset="UTF-8">
 5   <meta http-equiv="x-ua-compatible" content="IE=edge">
 6   <meta name="viewport" content="width=device-width, initial-scale=1">
 7   <title>hover示例</title>
 8   <style>
 9     * {
10       margin: 0;
11       padding: 0;
12     }
13     .nav {
14       height: 40px;
15       width: 100%;
16       background-color: #3d3d3d;
17       position: fixed;
18       top: 0;
19     }
20 
21     .nav ul {
22       list-style-type: none;
23       line-height: 40px;
24     }
25 
26     .nav li {
27       float: left;
28       padding: 0 10px;
29       color: #999999;
30       position: relative;
31     }
32     .nav li:hover {
33       background-color: #0f0f0f;
34       color: white;
35     }
36 
37     .clearfix:after {
38       content: "";
39       display: block;
40       clear: both;
41     }
42 
43     .son {
44       position: absolute;
45       top: 40px;
46       right: 0;
47       height: 50px;
48       width: 100px;
49       background-color: #00a9ff;
50       display: none;
51     }
52 
53     .hover .son {
54       display: block;
55     }
56   </style>
57 </head>
58 <body>
59 <div class="nav">
60   <ul class="clearfix">
61     <li>登录</li>
62     <li>注册</li>
63     <li>购物车
64       <p class="son hide">
65         啥他妈都没有...
66       </p>
67     </li>
68   </ul>
69 </div>
70 <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
71 <script>
72 $(".nav li").hover(
73   function () {
74     $(this).addClass("hover");
75   },
76   function () {
77     $(this).removeClass("hover");
78   }
79 );
80 </script>
81 </body>
82 </html>
houver事件
技术分享图片
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4   <meta charset="UTF-8">
 5   <meta http-equiv="x-ua-compatible" content="IE=edge">
 6   <meta name="viewport" content="width=device-width, initial-scale=1">
 7   <title>实时监听input输入值变化</title>
 8 </head>
 9 <body>
10 <input type="text" id="i1">
11 
12 <script src="../jquery-3.3.1.min.js"></script>
13 <script>
14   /*
15   * oninput是HTML5的标准事件
16   * 能够检测textarea,input:text,input:password和input:search这几个元素的内容变化,
17   * 在内容修改后立即被触发,不像onchange事件需要失去焦点才触发
18   * oninput事件在IE9以下版本不支持,需要使用IE特有的onpropertychange事件替代
19   * 使用jQuery库的话直接使用on同时绑定这两个事件即可。
20   * */
21   $("#i1").on("input propertychange", function () {
22     alert($(this).val());
23   })
24 </script>
25 </body>
26 </html>
监听input值的变化

事件绑定

技术分享图片
1 .on( events [, selector ],function(){})
2 events: 事件
3 selector: 选择器(可选的)
4 function: 事件处理函数
View Code
事件移除
技术分享图片
1 .off( events [, selector ][,function(){}])
2 off() 方法移除用 .on()绑定的事件处理程序。
3 events: 事件
4 selector: 选择器(可选的)
5 function: 事件处理函数
View Code
住址后续事件的执行
技术分享图片
 1 return false; // 常见阻止表单提交等
 2 
 3 //注意:
 4 像click、keydown等DOM中定义的事件,我们都可以使用`.on()`方法来绑定事件,但是`hover`这种jQuery中定义的事件就不能用`.on()`方法来绑定了。
 5 
 6 //想使用事件委托的方式绑定hover事件处理函数,可以参照如下代码分两步绑定事件
 7 $(‘ul‘).on(‘mouseenter‘, ‘li‘, function() {//绑定鼠标进入事件
 8     $(this).addClass(‘hover‘);
 9 });
10 $(‘ul‘).on(‘mouseleave‘, ‘li‘, function() {//绑定鼠标划出事件
11     $(this).removeClass(‘hover‘);
12 });
View Code
页面加载
技术分享图片
1 //No.1
2 $(document).ready(function(){
3 // 在这里写你的JS代码...
4 })
5 
6 //No.2
7 $(function(){
8 // 你在这里写你的代码
9 })
View Code
技术分享图片
 1 <!DOCTYPE html>
 2 <html lang="zh-CN">
 3 <head>
 4   <meta charset="UTF-8">
 5   <meta http-equiv="x-ua-compatible" content="IE=edge">
 6   <meta name="viewport" content="width=device-width, initial-scale=1">
 7   <title>登录注册示例</title>
 8   <style>
 9     .error {
10       color: red;
11     }
12   </style>
13 </head>
14 <body>
15 
16 <form id="myForm">
17   <label for="name">姓名</label>
18   <input type="text" id="name">
19   <span class="error"></span>
20   <label for="passwd">密码</label>
21   <input type="password" id="passwd">
22   <span class="error"></span>
23   <input type="submit" id="modal-submit" value="登录">
24 </form>
25 
26 <script src="../jquery-3.3.1.min.js"></script>
27 <!--<script src="s7validate.js"></script>-->
28 <script>
29   function myValidation() {
30     // 多次用到的jQuery对象存储到一个变量,避免重复查询文档树
31     var $myForm = $("#myForm");
32     $myForm.find(":submit").on("click", function () {
33       // 定义一个标志位,记录表单填写是否正常
34       var flag = true;
35       $myForm.find(":text, :password").each(function () {
36         var val = $(this).val();
37         if (val.length <= 0 ){
38           var labelName = $(this).prev("label").text();
39           $(this).next("span").text(labelName + "不能为空");
40           flag = false;
41         }
42       });
43       // 表单填写有误就会返回false,阻止submit按钮默认的提交表单事件
44       return flag;
45     });
46     // input输入框获取焦点后移除之前的错误提示信息
47     $myForm.find("input[type!=‘submit‘]").on("focus", function () {
48       $(this).next(".error").text("");
49     })
50   }
51   // 文档树就绪后执行
52   $(document).ready(function () {
53     myValidation();
54   });
55 </script>
56 </body>
57 </html>
文档事件绑定完毕之后,阻止默认事件的发生
委托事件
技术分享图片
1 事件委托是通过事件冒泡的原理,利用父标签去捕获子标签的事件。
2 
3 示例:
4 
5 表格中每一行的编辑和删除按钮都能触发相应的事件。
6 $("table").on("click", ".delete", function () {
7   // 删除按钮绑定的事件
8 })
View Code

动画效果

技术分享图片
 1 // 基本
 2 show([s,[e],[fn]])
 3 hide([s,[e],[fn]])
 4 toggle([s],[e],[fn])
 5 // 滑动
 6 slideDown([s],[e],[fn])
 7 slideUp([s,[e],[fn]])
 8 slideToggle([s],[e],[fn])
 9 // 淡入淡出
10 fadeIn([s],[e],[fn])
11 fadeOut([s],[e],[fn])
12 fadeTo([[s],o,[e],[fn]])
13 fadeToggle([s,[e],[fn]])
14 // 自定义(了解即可)
15 animate(p,[s],[e],[fn])
View Code
技术分享图片
 1 <!DOCTYPE html>
 2 <html lang="zh-CN">
 3 <head>
 4   <meta charset="UTF-8">
 5   <meta http-equiv="x-ua-compatible" content="IE=edge">
 6   <meta name="viewport" content="width=device-width, initial-scale=1">
 7   <title>点赞动画示例</title>
 8   <style>
 9     div {
10       position: relative;
11       display: inline-block;
12     }
13     div>i {
14       display: inline-block;
15       color: red;
16       position: absolute;
17       right: -16px;
18       top: -5px;
19       opacity: 1;
20     }
21   </style>
22 </head>
23 <body>
24 
25 <div id="d1">点赞</div>
26 <script src="jquery-3.2.1.min.js"></script>
27 <script>
28   $("#d1").on("click", function () {
29     var newI = document.createElement("i");
30     newI.innerText = "+1";
31     $(this).append(newI);
32     $(this).children("i").animate({
33       opacity: 0
34     }, 1000)
35   })
36 </script>
37 </body>
38 </html>
点赞按钮

each函数

技术分享图片
 1 描述:一个通用的迭代函数,它可以用来无缝迭代对象和数组。数组和类似数组的对象通过一个长度属性(如一个函数的参数对象)来迭代数字索引,从0到length - 1。其他对象通过其属性名进行迭代。
 2 
 3 //例如
 4 li =[10,20,30,40]
 5 $.each(li,function(i, v){
 6   console.log(i, v);//index是索引,ele是每次循环的具体元素。
 7 })
 8 //输出
 9 010
10 120
11 230
12 340
View Code
遍历一个jquery对象,为每个匹配元素执行一个函数。
描述:遍历一个jQuery对象,为每个匹配元素执行一个函数。
.each() 方法用来迭代jQuery对象中的每一个DOM元素。每次回调函数执行时,会传递当前循环次数作为参数(从0开始计数)。由于回调函数是在当前DOM元素为上下文的语境中触发的,所以关键字 this 总是指向这个元素。
1 // 为每一个li标签添加foo
2 $("li").each(function(){
3   $(this).addClass("c1");
4 });
5 注意: jQuery的方法返回一个jQuery对象,遍历jQuery集合中的元素 - 被称为隐式迭代的过程。当这种情况发生时,它通常不需要显式地循环的 .each()方法:
6 也就是说,上面的例子没有必要使用each()方法,直接像下面这样写就可以了:
7 $("li").addClass("c1");  // 对所有标签做统一操作
注意:
在遍历的过程中可以使用return false提前结束each循环。return false提前结束each循环。
1 //终止each循环
2 return false
data方法
在匹配的元素集合中的所有元素上存储任意相关数据或返回匹配的元素集合中的第一个元素的给定名称的数据存储的值。
描述:在匹配的元素上存储任意相关数据。
技术分享图片
 1 No.1:data(key, value):
 2 $("div").data("k",100);//给所有div标签都保存一个名为k,值为100
 3 
 4 No.2: data(key):
 5 描述: 返回匹配的元素集合中的第一个元素的给定名称的数据存储的值—通过 .data(name, value)或 HTML5 data-*属性设置。
 6 
 7 $("div").data("k");//返回第一个div标签中保存的"k"的值
 8 
 9 removeData(key):
10 描述:移除存放在元素上的数据,不加key参数表示移除所有保存的数据。
11 $("div").removeData("k");  //移除元素上存放k对应的数据
View Code

bootstrap框架

Bootstrap是Twitter开源的基于HTML、CSS、JavaScript的前端框架。
它是为实现快速开发Web应用程序而设计的一套前端工具包。
它支持响应式布局,并且在V3版本之后坚持移动设备优先。
官方地址:https://getbootstrap.com
中文地址:http://www.bootcss.com/
bootstrap的全局样式
技术分享图片
1 排版、按钮、表格、表单、图片等我们常用的HTML元素,Bootstrap中都提供了全局样式。
2 
3 我们只要在基本的HTML元素上通过设置class就能够应用上Bootstrap的样式,从而使我们的页面更美观和谐。
View Code
标题样式
技术分享图片
 1 <h1>一级标题36px</h1>
 2 <h2>二级标题30px</h2>
 3 <h3>三级标题24px</h3>
 4 <h4>四级标题18px</h4>
 5 <h5>五级标题14px</h5>
 6 <h6>六级标题12px</h6>
 7 <!--除了使用h标签,Bootstrap内置了相应的全局样式-->
 8 <!--内联标签应用标题样式-->
 9 <span class="h1">一级标题36px</span>
10 <span class="h2">二级标题30px</span>
11 <span class="h3">三级标题24px</span>
12 <span class="h4">四级标题18px</span>
13 <span class="h5">五级标题14px</span>
14 <span class="h6">六级标题12px</span>
View Code
文本对齐
技术分享图片
 1 <!--文本对齐-->
 2 <p class="text-left">文本左对齐</p>
 3 <p class="text-center">文本居中</p>
 4 <p class="text-right">文本右对齐</p>
 5 
 6 //文本大小写
 7 <!--大小写-->
 8 <p class="text-lowercase">Lowercased text.</p>
 9 <p class="text-uppercase">Uppercased text.</p>
10 <p class="text-capitalize">Capitalized text.</p>
View Code
表格

Class

描述

.table-striped

条纹状表格

.table-bordered

带边框的表格

.table-hover

鼠标悬停变色的表格

.table-condensed

紧缩型表格

.table-responsive

响应式表格

 

状态类

Class

描述

.active

鼠标悬停在行或单元格上时所设置的颜色

.success

标识成功或积极的动作

.info

标识普通的提示信息或动作

.warning

标识警告或需要用户注意

.danger

标识危险或潜在的带来负面影响的动作

 

按钮样式
技术分享图片
 1 <a class="btn btn-default" href="#" role="button">Link</a>
 2 <button class="btn btn-default" type="submit">Button</button>
 3 <input class="btn btn-default" type="button" value="Input">
 4 <input class="btn btn-default" type="submit" value="Submit">
 5     
 6 //样式
 7 <!-- Standard button -->
 8 <button type="button" class="btn btn-default">(默认样式)Default</button>
 9 <!-- Provides extra visual weight and identifies the primary action in a set of buttons -->
10 <button type="button" class="btn btn-primary">(首选项)Primary</button>
11 <!-- Indicates a successful or positive action -->
12 <button type="button" class="btn btn-success">(成功)Success</button>
13 <!-- Contextual button for informational alert messages -->
14 <button type="button" class="btn btn-info">(一般信息)Info</button>
15 <!-- Indicates caution should be taken with this action -->
16 <button type="button" class="btn btn-warning">(警告)Warning</button>
17 <!-- Indicates a dangerous or potentially negative action -->
18 <button type="button" class="btn btn-danger">(危险)Danger</button>
19 <!-- Deemphasize a button by making it look like a link while maintaining button behavior -->
20 <button type="button" class="btn btn-link">(链接)Link</button>  
21 
22 //按钮大小
23 <p>
24   <button type="button" class="btn btn-primary btn-lg">(大按钮)Large button</button>
25   <button type="button" class="btn btn-default btn-lg">(大按钮)Large button</button>
26 </p>
27 <p>
28   <button type="button" class="btn btn-primary">(默认尺寸)Default button</button>
29   <button type="button" class="btn btn-default">(默认尺寸)Default button</button>
30 </p>
31 <p>
32   <button type="button" class="btn btn-primary btn-sm">(小按钮)Small button</button>
33   <button type="button" class="btn btn-default btn-sm">(小按钮)Small button</button>
34 </p>
35 <p>
36   <button type="button" class="btn btn-primary btn-xs">(超小尺寸)Extra small button</button>
37   <button type="button" class="btn btn-default btn-xs">(超小尺寸)Extra small button</button>
38 </p>
View Code
图片样式
技术分享图片
1 <img src="..." class="img-responsive" alt="Responsive image">
2     
3 //形状
4 <img src="..." alt="..." class="img-rounded">
5 <img src="..." alt="..." class="img-circle">
6 <img src="..." alt="..." class="img-thumbnail">    
View Code
辅助类
技术分享图片
 1 //文本颜色
 2 p class="text-muted">...</p>
 3 <p class="text-primary">...</p>
 4 <p class="text-success">...</p>
 5 <p class="text-info">...</p>
 6 <p class="text-warning">...</p>
 7 <p class="text-danger">...</p>
 8 
 9 //背景颜色
10 <p class="bg-primary">...</p>
11 <p class="bg-success">...</p>
12 <p class="bg-info">...</p>
13 <p class="bg-warning">...</p>
14 <p class="bg-danger">...</p>
15 
16 //关闭按钮
17 <button type="button" class="close" aria-label="Close"><span aria-hidden="true">&times;</span></button>
18     
19 //下拉三角
20 <span class="caret"></span>
21 //快速浮动
22 <div class="pull-left">...</div>
23 <div class="pull-right">...</div>
24 //内容快居中
25 <div class="center-block">...</div>
26 //清除浮动
27 <div class="clearfix"></div>
28 //显示与隐藏
29 <div class="show">...</div>
30 <div class="hidden">...</div>
View Code

实例:模拟滚动条

技术分享图片
 1 var $d1 = $("#d1");
 2 var width = 0;
 3 var theID = setInterval(setValue, 200);
 4 
 5 function setValue() {
 6   if (width === 100) {
 7     clearInterval(theID);
 8   } else {
 9     width++;
10     $d1.css("width", width+"%").text(width+"%");
11   }
12 }
View Code
为什么要进行响应式开发
随着移动设备的流行,网页设计必须要考虑到移动端的设计。同一个网站为了兼容PC端和移动端显示,就需要进行响应式开发。
什么是响应式
利用媒体查询,让同一个网站兼容不同的终端(PC端、移动端)呈现不同的页面布局
所用技术
用于查询设备是否符合某一特定条件,这些特定条件包括屏幕尺寸、是否可触摸、屏幕精度、横屏竖屏等信息。
常见属性:
  • device-width, device-height 屏幕宽、高
  • width,height 渲染窗口宽、高
  • orientation 设备方向
  • resolution 设备分辨率

 

 

 

 
 
 
 
 
 
 
 

Bootstrap框架

标签:standard   购物   内联   标志位   .com   row   action   leave   cli   

原文地址:https://www.cnblogs.com/jianlin/p/8643784.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!