用户
 找回密码
 入住 CI 中国社区
搜索
查看: 11561|回复: 31
收起左侧

是不是CI的一个bug?关于div外多了个空格或换行

[复制链接]
发表于 2009-6-6 22:06:08 | 显示全部楼层 |阅读模式
是不是CI的一个bug?关于div外多了个空格或换行

使用CI在开发一个系统,在后台开发中遇到了一个问题,弄了2天丝毫没有进展,简直快要崩溃,请老大HEX和各位高人指点。

同样的一个CSS样式文件,同样调用CI的各种类库,几乎是同样的页面布局,但有的页面就是在DIV区域外多出来一块。在火狐和IE下都是如此,如此否定了浏览器不兼容的可能。怀疑是CI在输出的时候,在某个地方莫名其妙的多了一个空格或换行符。

请看图。

正常的图


不正常的图


附样式文件:
#right_frame { width:100%; margin:0 ; padding:10px 6px 6px 12px; text-align:left; background:url(../images/back_line.gif) left top repeat-y #f5fcff}
#back_title { width:100% ; margin:6px 0; padding:10px;  background:#fff; border-bottom:1px dotted #ccc; border-top:1px solid #ccc; color:#669900; font-weight:bold; overflow:hidden}
#back_content { width:100% ; line-height:1.8em; float:left; padding:0; margin:6px 0; overflow:hidden}
#back_content ul { margin:0 0 0 15px; padding:0; list-style:none}
#back_content li { width:98%; float:left; margin:0; padding-left:10px; line-height:1.8em; background:url(../images/ico_li.gif) 0 9px no-repeat; clear:both}
 楼主| 发表于 2009-6-6 22:10:15 | 显示全部楼层
尝试使用框架(frameset)、表格、DIV,等各种方式,尝试使用各种页面的布局,尝试在utf8和gb2312的编码来回调,google了无数,但没有找到类似问题,简直要崩溃了。
如果实在没有办法解决,只能退回到从前用老办法了,因为这个不是自己用的,是给客户开发的。
 楼主| 发表于 2009-6-6 22:14:06 | 显示全部楼层
望请高手指点,谢谢大家了。
发表于 2009-6-7 03:14:50 | 显示全部楼层
网页布局和CI有什么关系?
发表于 2009-6-7 06:46:33 | 显示全部楼层
如果你那个突出的部分  DIV代码用了 margin  这个属性的话  就要用 display:inline;  强制定位了~
发表于 2009-6-7 06:48:10 | 显示全部楼层
本帖最后由 逆风天 于 2009-6-7 06:50 编辑

你那代码里用了padding:10px;和margin有时候在IE里会起冲突(IE6)


另:楼主加我QQ哈:253999773  我想跟你学习下~~~谢谢
 楼主| 发表于 2009-6-7 09:17:51 | 显示全部楼层
网页布局和CI有什么关系?
visvoy 发表于 2009-6-7 03:14

网页的布局与CI没有关系。但MVC框架中,视图文件有控制器处理数据后的结果填充,这个问题已经不是布局的问题,而是控制器与视图的结合中,出现了在布局,样式以及HTML手段无法解决的问题,不能不怀疑是因CI框架bug造成的。
不知道版主,俺这么说,你明白没有?
 楼主| 发表于 2009-6-7 09:21:06 | 显示全部楼层
7# spt119
IE6\IE7,MOZILA,都是一样的,都多出来一块,都是在我定义为“rightframe”的div之外,而且查看html文件源码,根本看不见这个空格或换行的存在,但浏览器解释执行时,就偏偏有一个空格或换行。
因为css定义宽度是100%,所以各类浏览器对padding和margin到底是里边还是外边的间距,可以无视。俺也是新人,一起学习。
发表于 2009-6-7 09:22:25 | 显示全部楼层
CI的view相当于一段过程式php代码,填充的数据无非是一些key=>value的数组,
布局错乱明显是css问题,和CI有什么关系?
我把我说的话详细解释了,你明白了吗?
 楼主| 发表于 2009-6-7 09:26:47 | 显示全部楼层
如果你那个突出的部分  DIV代码用了 margin  这个属性的话  就要用 display:inline;  强制定位了~
逆风天 发表于 2009-6-7 06:46

是在div之外,多出来的空格或换行,而不是div区域内。
通过给div设置背景色,可以很清楚的看见,多出来的一块不在div(rigjtframe)之内。
而不是全部,有的正常,有的不正常。

本版积分规则