HTML CSS DIV 前端
看我详细说明,div1里面有两个DIV分别是A和B,
A设置有固定高度,B的高度为auto,
B里面有一个8个ul,ul的高度为auto,并且设置了向左浮动,
ul里面有一个li,li设置了固定高度,
问题是:我给div1、B、ul设置了边框线后发现,这三个的高度居然是0,这是什么原因?(div1、A、B、ul均未设置浮动)
æ好çæ¹æ³å°±æ¯æ代ç å®ç°ä¸éï¼ç¶åå 为å¾å¤å ç´ æ²¡æ设置é«åº¦å宽度ï¼æ¯è¢«æä¸èµ·æ¥çï¼ä½ çå°çä¹å°±æ¯ç©ºçäºï¼è®¾ç½®äºè¾¹æ¡åªçå°äºä¸æ¡çº¿ãä¸æ¯é«åº¦ä¸º0ï¼èæ¯ä½ éé¢æ²¡æå¡«å å 容ï¼è¦ä¸é«åº¦æ²¡è¢«æèµ·æ¥ï¼è¦ä¸å®½åº¦æ²¡è¢«æèµ·æ¥ã
注ï¼ä½ ä¸å¼å§è¯´ul设置左浮å¨ï¼æåæ¬å·éæåå°ul没æ设置浮å¨ã
å¦ä¸ä»£ç ï¼ul为浮å¨ï¼å®ç°è¿ç¨ï¼
<!DOCTYPE html>å¦ä¸ä»£ç ï¼ulä¸æµ®å¨ï¼å®ç°è¿ç¨ï¼
<!DOCTYPE html>ul没有浮动 li设置了浮动
我加一下你,给你发代码你帮我看看
追答那就对了。你在li的后面清除一下浮动,比如加一个 ,那再看看div1、B、ul的高度是不是0
追问我试试
还是不可以
追答<div class=div1>
<div class=B>
<ul>
<li>....</li>
<br style="clear:both"/>
</ul>
</div>
</div>
追问这样啊
好的 谢谢
强
果然是这个问题
现在好了
这个clear:both就只能写在标签里吗,还能怎么用
追答可以用在任何的块级元素内啊,比如
补充说一下:
元素浮动后,它在父元素中占用的位置就会被去掉,这时候如果父元素中没有其他内容,而且父元素的height设为auto,那么父元素的height自然就是0咯。只要在浮动元素的后面清除浮动,就是告诉父元素从这里开始就不是浮动内容了,这样父元素就会把浮动元素原来(即在没有浮动的情况下)所占用的位置还回来,然后后面假如还有内容就会从这个位置开始继续显示,这样的话父元素的高度就会自然被撑开了,height也就不是0了