+ -
当前位置:首页 → 问答吧 → 请问:

请问:

时间:2011-01-19

来源:互联网

<DT>产品分类:</DT>
<DD>&nbsp; </DD>
<DT>标准库名:</DT>
<DD>商务楼</DD>
<DT>主要规格:</DT>
<DD> </DD>
<DT>用  途:</DT>
<DD> </DD>


这个源代码,当dd里没有数据时,下一个Dt里的内容就跑上来了。有什么属性定义下dd,就不会错乱呢?
我的dt和dd是这样定义的。

DT {
       BORDER-BOTTOM: #ccc 1px solid; LINE-HEIGHT: 30px; WIDTH: 80px; FLOAT: left
}
DD {
       BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: left; LINE-HEIGHT: 30px; WIDTH: 350px; FLOAT: left;
}

作者: aftertaste   发布时间: 2011-01-19

你要实现什么效果?
为什么把DT和DD都定义了float:left?
把DD中的 float:left 去掉看看是不是你要的效果?

去掉DD中的float:left 后,如果DD中没有内容,dt就会浮动上去,可以在dt的样式中加上 clear:both;

如下:
dt {
       BORDER-BOTTOM: #ccc 1px solid; LINE-HEIGHT: 30px; WIDTH: 80px; FLOAT: left; clear:both;
}
dd {
       BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: left; LINE-HEIGHT: 30px; height:30px; WIDTH: 350px;
}

作者: llltlove9   发布时间: 2011-01-19

奇怪,你这样是可以的。
但是clear:both加在dt中后,当dd有数据时,dd会跟在dt后,没有换行嘛

作者: aftertaste   发布时间: 2011-01-19

是在IE6下吗?把最外层的dl定一个宽度

作者: llltlove9   发布时间: 2011-01-19

不建议在这种地方写这个结构,考虑到用户可能在比如“用途”填写详情时喜欢用HN的情况,浏览器解析时就会有问题;因为DLDDDT的权重很低,它包不住HN,浏览器解析时会把HN提出来,从而导致一些不可以预知的BUG!
如果是数据列表,直接用CSS控制TABLE就行了;
如果是产品详情页,就平常的DIV就行了,

作者: nuoer0722   发布时间: 2011-01-19