2021-05-01

简单实现微信聊天框。

1.首先使用Visual Studio 2015创建一个HTML文档:


@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>自定义名称</title>
</head>
<body>
    <div> 
    </div>
</body>
</html>

 

2.在<body>内设置微信聊天框的基本框架:

<body>
    <div class="wrap">
        <div class="messagebox">
            <ul id="word">
                <li class="talkA">同学A<span>大家好</span>
                </li>
                <li class="talkB"><span>大家好</span>同学B
                </li>
            </ul>
        </div>
        <div class="box">
            <select id="who">
                <option value="talkA">同学A</option>
                <option value="talkB">同学B</option>
            </select>
            <input type="text" id="talkworld">
            <button id="button">发送</button>
        </div>
    </div>

 

设置一个自定义名称为wrap的div,里面放置两个div,一个名为messagebox,另一个名为box。

第一个div里面放置一组无序列表(<ul><li>…</li></ul>)标签,在li标签内放置行内元素span标签。

第二个div里面放置一组下拉列表<select><option ></option></select>标签。下拉列表中可以进行选择。设置一个文本框 <input type="text">,一个按钮button

 

3.设置微信聊天框的样式:

在head标签里面添加内嵌样式(内联样式)style标签。

*通配符选择到所有元素,设置外边距和内边距为0,把元素默认样式取消掉。*{margin: 0; padding: 0;}

选择到li标签,把无序列表默认的小圆点取消掉。ul,li{list-style:none; }

列表属性:(List-style)

类型list-style-type: disc;(圆点) circle;(圆圈) square;(方块) decimal;(数字) lower-roman;(小罗码数字) upper-roman; lower-alpha; upper-alpha;

位置list-style-position: outside;(外) inside;

图像list-style-image: url(..);

 

依次设置元素的样式:

 

 

<style>
       *{
            margin: 0;
            padding: 0;
        }
        ul,li{
            list-style:none;
        }
        .wrap{
            width: 35%;/*宽度*/
            margin:30px auto 0;/*外边距 */
            padding: 10px;/*内边距 上下左右为10px*/
            border:1px solid #ccc;/*边框 1px 实线 颜色*/
            border-radius:20px;/*边框圆角*/
        }
        .messagebox {
            background-image: url('../../Content/images/picture.jpg');背景图片
            height: 300px;
            overflow-y: auto;
            border: 1px solid #ccc;
            border-radius: 20px;
        }
        .messagebox ul li{
            padding: 10px;
        }
        .messagebox ul li span{
            display: inline-block;
display 属性控制页面元素是否显示或者是堆叠还是并排显示。inline-block 把元素设置为行内块级元素 
            margin: 0 10px;
            padding: 6px 20px;
            border-radius: 5px;
        }
        .talkA span{
            background:#fff;
        }
         .talkB{
            text-align: right;文本设置:靠右边
        }
         .talkB span{
            background:#4cff00;/*颜色值*/
        }
        select,input{
            width: 20%;
            padding: 4px 10px;
            height: 36px;
            font-size: 1rem;字体大小   1rem(单位)
            color: #495057;
            background-color: #fff;
            background-clip: padding-box;/*规定背景的绘制区域。*/
            border: 1px solid #ced4da;
            box-sizing: border-box;
            border-radius: .25rem;
        }
        input{
            width: 50%;
        }
        button{
            display: inline-block;
            font-weight: 400;
            text-align: center;
            vertical-align: middle;/*属性设置元素的垂直对齐方式:把此元素放置在父元素的中部。*/
            border: 1px solid transparent;
            padding: .375rem .75rem;
            font-size: 1rem;
            line-height: 1.5;
            border-radius: .25rem;
            color: #28a745;
            background-color: transparent;
            background-image: none;
            border-color: #28a745;
        }
        .box{
            margin-top: 10px;
        }
    </style>

 

背景属性:(background)

色彩:background-color: #666;

图片:background-image: url();

重复:background-repeat: no-repeat; 不重复

滚动:background-attachment: fixed;(固定) scroll;(滚动)

位置:background-position: left(水平) top(垂直);

简写:background:#333 url(..)

 

border-radius:该属性用于指定圆角边框的圆角半径。

border-top-left-radius:该属性用于指定左上角的圆角半径。

border-top-right-radius:该属性用于指定右上角的圆角半径。

border-bottom-left-radius:该属性用于指定左下角的圆角半径。

border-bottom-right-radius:该属性用于指定右下角的圆角半径。

 

4.body内部引入jquery-3.2.1.min.js

<body>
    <div> 
    </div>
    <script src="~/Content/bootstrap-4.1.3-dist/js/jquery-3.2.1.min.js"></script>
</body>
</html>

在body内部使用内嵌js,

优点:1.使结构分离更清晰(较行内JS)。2.当前页面可以复用 3.利于后期维护和修改

缺点:1.只能当前页面使用,不能多页面复用。2.多页面之间的维护比较麻烦。花费的时间和精力更多。

使用jquery里面的一些方法,更换javascript里面的一些方法,就是可以少写一些代码,简单实用。简单理解jquery就是把javascript里的方法进行封装,可以直接使用。

<script>

//直接获取按钮的ID,给与单击事件(点击事件),声明一个匿名函数

        $("#button").click(function () {

  // 声明一个变量 自定义名称 通过ID获取元素

            var word = $("#word");

//声明一个变量 自定义名称 通过ID获取元素 设置获得匹配元素的当前值

            var who = $("#who").val();

            var world = $("#talkworld").val();

 // if条件判断语句 判断条件为空时,执行{}里的代码-弹出一个警告框

            if (world == "") {

                alert("输入不能为空.");

//当if条件不成立时,执行else里的代码 else里面内嵌一个if-if else语句

            } else {

                if (who == "talkA") {

  // 在文档中创建元素-li 声明变量,变量的名称  createElement创建元素

                    var li = document.createElement("li");

  //设置li的类名为talkA

li.className = "talkA";

   //使用jq方法->把js对象转换成jq对象$(li)

 $(li).html("同学A<span>" + world + "</span>");

  word.append($(li));//append()向每个匹配的元素内部追加内容 在li标签内部追加内容(li)}

                else if (who == "talkB") {

//在文档中创建元素-li 声明变量,变量的名称  createElement创建元素

                    var li = document.createElement("li");

//设置li的类名为talkB

 li.className = "talkB";

//html() 可以用于设定HTML内容的值

                    $(li).html("<span>" + world + "</span>同学B");

//append() 给li标签元素内部追加内容 

                    word.append($(li));

                }

            }

        })

</script>

5.谷歌浏览器显示为:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值