2 u013182001 u013182001 于 2014.12.17 01:55 提问

关于CSS子级float,父级高度变化的问题

网页结构说明:

<body>
  <div id="header">...</div>
    <div id="main">
            <div id="left" class="fleft">...</div>
            <div id="middle" class="fleft">
                    <div id="mtop">...</div>
                    <div id="mview"><!---->
                            <div class="box"></div>
                            <div class="box"></div>
                            <div class="box"></div>
                            <div class="box" style="position:absolute;top: ... ;left: ... ;"></div>
                            <div class="box" style="position:absolute;top: ... ;left: ... ;"></div>
                            <div class="box" style="position:absolute;top: ... ;left: ... ;"></div>
                            <div class="box" style="position:absolute;top: ... ;left: ... ;"></div>
                            <div class="box" style="position:absolute;top: ... ;left: ... ;"></div>
                            <div class="box" style="position:absolute;top: ... ;left: ... ;"></div>
                            ......
                            .....
                            ....
                            ...
                            <div class="box" style="position:absolute;top: ... ;left: ... ;"></div>
                    </div>
            </div>
            <div id="right">...</div>
    </div>
    <div id="footer">...</div>
</body>

<!--
box的style由jquery添加的;
#main { width:960px;overflow: hidden; margin:0 auto;background:url(imgs/bg_content.png) repeat-y right; }
#middle {width: 560px;padding: 20px;position: relative;overflow: hidden;}
#mview {position: relative; overflow: hidden;}
.box {padding: 10px 0 0 10px;float: left;}
.fleft{float:left;}
-->

我想在mview里面做一个局部的瀑布流效果,让每个box瀑布一样的布局。现在jquery也写好了,mview却只显示的一小部分(就第一行的高度那么高),其他的显示不出来,我在网上查了查,没有找到解决办法。诚请达人指点指点。谢谢

4个回答

showbo
showbo   Ds   Rxr 2014.12.17 10:10
已采纳

瀑布流里面的元素是absolute定位不占用空间的,所以你的mview对象只有默认的高度。。你需要在你的瀑布流计算完毕后,获取最后一行的元素计算下这个元素的高度+top位置,重设下mview的高度才行

u013182001
u013182001 哦,谢谢,根据你的提示,我找到了问题的原因。非常感谢。。
接近 3 年之前 回复
showbo
showbo 回复u013182001: 这得具体看你用的那个瀑布流插件了或者你自己写的?这个需要重设容器高度才行
接近 3 年之前 回复
u013182001
u013182001 你能说的详细点吗?或者留个联系方式
接近 3 年之前 回复
danielinbiti
danielinbiti   Ds   Rxr 2014.12.17 09:58


...


...


...

<!---->
1

2

3

4

5

6

7

8

9

10



...


...

danielinbiti
danielinbiti   Ds   Rxr 2014.12.17 09:59


...


...


...

<!---->
1

2

3

4

5

6

7

8

9

10



...


...


danielinbiti
danielinbiti   Ds   Rxr 2014.12.17 09:59
 <body>
  <div id="header">...</div>
    <div id="main">
            <div id="left" class="fleft">...</div>
            <div id="middle" class="fleft">
                    <div id="mtop">...</div>
                    <div id="mview"><!---->
                            <div class="box" style="width:100px">1</div>
                            <div class="box" style="width:300px">2</div>
                            <div class="box" style="width:100px">3</div>
                            <div class="box" style="width:800px">4</div>
                            <div class="box" style="width:100px">5</div>
                            <div class="box" style="width:100px">6</div>
                            <div class="box" style="width:100px">7</div>
                            <div class="box" style="width:200px">8</div>
                            <div class="box" style="width:100px">9</div>
                            <div class="box" style="width:100px">10</div>
                    </div>
            </div>
            <div id="right">...</div>
    </div>
    <div id="footer">...</div>
</body>
Csdn user default icon
上传中...
上传图片
插入图片