今天考完会计,心情狂不好--结转利润的昨天才看明白,可是今天考试脑袋里竟然一片空白。加上昨天晚上又熬夜,有点抑郁感。
今年变得有点懒,工作不喜欢写心得了。以前一些有趣的bug及解决方法我都会按时记下来,今年都没怎么写了。忽然又想到这个blog,决定以后一定要隔三差五的上来记点什么。
今天记上周遇到一个的bug,为什么用div+css的两栏布局中,操作之后的消息提示框控件一直没有显现出来.而loading控件在页面加载的时候或在操作等待的时候却可以正确的显示在上面?(消息提示框--基于Window类开发的和loading一样其实都是一个层而已!),为什么会出现不同的结果?今天找了一下原因,其实很简单!因为,在消息提示窗口被创建的时候,我是将它插到body的结束标签之前(这时候已经有布局的两个div了),因此受到了上面布局的div的影响!而loading因为在<body>标签之后就被new了(这时候body里其实还没有东西,所以它其实上是插到了布局的两个div之前!),所以不受影响!
所以解决方法就是在消息提示的层加clear:both!
试一下以下的两段html代码就很清楚了:
<div style="float:left;width:50%;height:80%;background-color:red;" id="left">
</div>
<div style="float:right;width:50%;height:80%;background-color:blue;" id="right">
</div>
<div id="message_window" style="z-index: 65535; left: 525px; width: 220px; position: absolute; top: 339px; height: 100px;background-color:green">
消息(没有clear:both;)
</div>
改后:
<div style="float:left;width:50%;height:80%;background-color:red;" id="left">
</div>
<div style="float:right;width:50%;height:80%;background-color:blue;" id="right">
</div>
<div id="message_window" style="clear:both;z-index: 65535; left: 525px; width: 220px; position: absolute; top: 339px; height: 100px;background-color:green">
消息(加了clear:both;)
</div>