为什么在IE浏览器里面乱码

为什么在IE浏览器里面乱码

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <style type="text/css">
    html,
    body {
        margin: 0;
        padding: 0;
    }
    div:not(:nth-of-type(2)) {
        width: 500px;
        height: 100%;
        background-color: #00c4ff7a;
        margin: 0 auto;
    }
    /*ul默认有外边距*/
    ul {
        width: 300px;
        height: 100%;
        background-color: #f9c3e6d6;
        list-style: none;
        /*清除默认边距*/
        margin: 0;
        padding: 0;
        margin: 20px auto;
        margin-bottom: 30px;
    }
    li {
        width: 200px;
        height: 30px;
        line-height: 30px;
        margin: 30px auto;
        background-color: #cdffc0;
    }
    </style>
</head>
<body>
    <div id="box">
        <button id="btnAdd">添加元素</button>
        <button id="btnRemove">删除元素</button>
        <ul id="list">我是ul
            <li>我是li1</li>
            <li>我是li2</li>
            <li>我是li3</li>
        </ul>
    </div>
    <script type="text/javascript">
        //此处填写代码
        var list = document.getElementById('list');
        var li = list.getElementsByTagName('li');
        var btnAdd = document.getElementById('btnAdd');
        var btnRemove = document.getElementById('btnRemove');
        for(var i=0, len=li.length; i<len; i++){
            li[i].onmouseover = function(){
                this.style.backgroundColor="#9400ff";
            }
            li[i].onmouseout = function(){
                this.style.backgroundColor="#EC7C7D";
            }
        }
        btnAdd.onclick = function(){
            var txt = document.createTextNode('我是li' + (li.length+1));
            var newLi = document.createElement('li');
            newLi.appendChild(txt);
            list.appendChild(newLi);
        }
        btnRemove.onclick = function(){
            list.removeChild(list.lastElementChild);
        }
    </script>
</body>
</html>

http://img1.sycdn.imooc.com//climg/5e35441f096bf05025201357.jpg

问题2:

http://img1.sycdn.imooc.com//climg/5e35443209caefd609300434.jpg

老师的效果图里面ul是在蓝色背景垂直并水平居中的。为什么在我的ul里面有margin 上边能撑开为啥下面撑不开,并且他还是在底下?如何才能让ul在蓝色背景水平并垂直居中呢 ?我做的如下图:http://img1.sycdn.imooc.com//climg/5e35452a090b305709130658.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
卡布琦诺 2020-02-02 16:08:48

同学你好,关于同学的问题解答如下:

1、想要实现下边距有一定的距离(效果是上是垂直居中显示)需要使用padding-bottom撑开下边距,具体代码参考如下:

http://img1.sycdn.imooc.com//climg/5e36838a09387fd105110490.jpg

2、因为代码执行过一遍之后就不会再次执行了,所以事件只能给最初的几个li绑定上。如果想要给新添加的绑定,那么就在添加按钮事件中,为新按钮也绑定一次事件。如下:

http://img1.sycdn.imooc.com//climg/5e3683420993b80b07360392.jpg

如果我的回答帮助了你,望采纳,祝学习愉快!

  • 提问者 陈立天 #1
    这里加一个len++是做什么的?我测试了一下代码不用加len++也可以达到效果
    2020-02-02 16:46:06
  • 卡布琦诺 回复 提问者 陈立天 #2
    表示每添加一个元素,ul的节点的长度都+1,不加也可以。
    2020-02-02 16:56:34
  • 提问者 陈立天 #3
    老师回答漏了一个问题,就是为什么代码用IE浏览器打开是乱码,chrome正常显示中文
    2020-02-02 20:36:25
提问者 陈立天 2020-02-01 17:34:47

还有一个问题是。。。点击按钮添加元素以后  那些添加的元素 鼠标经过不能改变颜色。。要怎么弄才能改变颜色?

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师