免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6550 | 回复: 4
打印 上一主题 下一主题

[页面] 帮看看CSS布局时div中的文字不自动换行了 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-17 23:33 |只看该作者 |倒序浏览
学CSS和XHTML来了,写一个测试页,用的是顶部+中间三浮动列+底部的布局.因为中间用position:absolute后,下面的footer就要上来重叠显示,所以只好搞成中间全float,据说这样会在IE6中引起长文字被剪短的bug,但也顾不得了.
问题是我现在在中间三列中选一列输文字看,这一输不得了,在IE6中,中间一列就因为内容多,把右边列挤下方了.在FF1.5中,则三列位置没变,但文字长的串到第三列去了.文字没有自动换行,而是变得和用了<pre>标记似的,回车当换行了.
怎么办好?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta http-equiv="Content-Language" content="zh-CN" />
<title>
css测试网页</title>
<style type="text/css">
<!--
body { background : white ; color : black ;}
#siteTop {background: #FE0; height:50px;WIDTH:776px;
MARGIN-RIGHT: auto;
MARGIN-LEFT: auto; }
#main {width:776px;MARGIN-RIGHT: auto;
MARGIN-LEFT: auto;}
#sideBar {float:left; background: #0E0; width:200px;}
#middle {float:left;background: #e00; width: 250px;height:300px}
#mainContent {float:left; background: #00e; width: 300px;}
p {padding:10px;}
.text {font-size:13px}

#footer {clear:both;position:relative;margin-left:0px;background: #CCC;width:700px;display:normal;}
-->
</style>
</head>
<body>
<!-- 最上面的banner -->
<div id="siteTop">
</div>
<div id="main">
<!-- 左边的sidebar-->
<div id="sideBar">
sidebar
</div>
<!-- 中间-->
<div id="middle">
<span class="text">middlemiddlemiddlemiddlemiddlemiddlemiddlemid
dlemiddlemiddlemiddlemiddlemiddlemiddlemiddlemi
ddlemiddlemiddlemiddlemiddlemiddlemiddlemiddle</span>
</div>
<!-- 右边的内容-->
<div id="mainContent">
main
</div>
</div>
<!--页脚-->
<div id="footer">
footer
</div>
</body>
</html>

[ 本帖最后由 HonestQiao 于 2005-11-18 00:57 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2005-11-17 23:45 |只看该作者
注意 word-break:all 以及 nowrap 之类的设定, 强行要自动折行可以这样

body,td,div,p,span { word-break: all }

不折行的地方 <*** nowrap> </***>

论坛徽章:
0
3 [报告]
发表于 2005-11-18 12:18 |只看该作者
二楼的,你那个属性是IE专有的,非w3c标准,在FF中没任何作用.

不过即使这样,在IE中是换了行,但是整个div还是变得很高,远多过文字高度.怎么办?

论坛徽章:
0
4 [报告]
发表于 2005-11-18 12:23 |只看该作者
原帖由 gydoesit 于 2005-11-18 12:18 发表
二楼的,你那个属性是IE专有的,非w3c标准,在FF中没任何作用.

不过即使这样,在IE中是换了行,但是整个div还是变得很高,远多过文字高度.怎么办?


东西多,自然撑开了, 如果要锁定大小, 那么试试:

<div style="border: 2px inset; height: 150px; width: 400px; OVERFLOW: auto">
</div>

参数要适当自行调整

论坛徽章:
0
5 [报告]
发表于 2005-11-18 16:16 |只看该作者
楼上的办法不对.

经过我从昨天到今天的折腾,终于搞清了.原来是我的长串英文字之间没有空格.
用中文就不会这样,英文只要中间有空格就会自动换行.正常情况下是不会有那么长连着的英文的.


哎,怎么搞的呀


另外,在测试过程中发觉浏览器bug不少.一串无序列表的链接在ie中总是要多显示后面几个字,最后终于发现,原来这个div前的两行<!-- -->这样的注释去掉就可以了.FF显示这个没问题.郁闷呀,根本想不通,注释与此有何关,bug厉害.

另发新帖再问其他遇到的问题.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP