读书人

有一个页面从左到右分成三块中间一块

发布时间: 2013-10-16 11:29:46 作者: rapoo

有一个页面从左到右分为三块,中间一块div高度是随着数据的增加而边长,怎样使左右2边的div也边长?
有一个页面从左到右分成三块,中间一块div高度是随着数据的增加而边长,怎样使左右2边的div也边长

最右边的窄边,高度是repeat的。
css如下:

.rightLine {
height: 955px;
background-image: url(/LogService/images/right.jpg);
background-repeat: repeat-y;
width: 26px;
position: absolute;
top: 54px;
left: 1225px;;
}


中间的数据是跟微博一样,每次拉倒最下面加载新数据,所以中间的数据div越来越长。

但是左右两边div的长度不会跟着变化,有没有人有好的办法?
[解决办法]
<div class="left"></div>
<div class="center"></div>
<div class="right"></div>



$(".left").height($(".showListDiv").height());
$(".right").height($(".showListDiv").height());


ajax每次加载数据之后,在for循环后面加上这两句话就OK了,试试吧!!!
[解决办法]
引用:
Quote: 引用:

<div class="div1">
<div class="div2">
</div>
</div>
.div1 {background:url(img/left.png) repeat-y 0 0;}
.div2 {background:url(img/right.png) repeat-y right 0;}
这能看明白吗 只要中间的内容 增加 左右两块的背景 也会变高

<div class="div1">
<div class="div2 clears">
<div class="left"></div>
<div class="center"></div>
<div class="right"></div>
</div>
</div>
里面的布局当然 你知道了,只是 背景不太明白,用我上面的方法 应该能理解吧
这样 里面 任何一个高度增加 父级的两个背景都会 增高 也就是等高



我感觉你理解错我的意思了。
<div class="left"></div>
<div class="center"></div>
<div class="right"></div>

我的布局这是这样的 ,center就是数据div,高度一直变大,left和right需要随着center Div变化.
不知道这个怎么实现




难道不是这样吗,左右两边增高,并一定div高度变高,你的不就是背景吗?
两边是图, 这个方法可行
如果你觉得两边是 高度要变化或内容 增高,那 得用js
看你怎么理解了,
[解决办法]
我有个办法可以不用js,利用table的td特性,当然你也可以不用table标签,用display:table和table-cell,效果一样的。demo代码如下:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<meta charset="utf-8">
<style type="text/css">
.green{
background-color:green;
}
.yellow{
background-color:yellow;
}
.red{
background-color:red;
}
table{
height:500px;
}
td{
width:200px;
}
</style>
</head>
<body>
<table>
<tr>
<td class="green"></td>
<td class="yellow" id="main"></td>
<td class="red"></td>
</tr>
</table>
<script type="text/javascript" >


window.onload = function(){
var obj = document.getElementById('main');
function getData(){
var str = obj.innerHTML, i, len, temp = "";
for(i=0,len=20;i<len;i++){
temp += i+"<br/>";
}
obj.innerHTML = str + temp;
}
setTimeout(function(){
getData();
setTimeout(arguments.callee, 2000);
},2000);
}
</script>

</body>
</html>


[解决办法]
引用:
我有个办法可以不用js,利用table的td特性,当然你也可以不用table标签,用display:table和table-cell,效果一样的。demo代码如下:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<meta charset="utf-8">
<style type="text/css">
.green{
background-color:green;
}
.yellow{
background-color:yellow;
}
.red{
background-color:red;
}
table{
height:500px;
}
td{
width:200px;
}
</style>
</head>
<body>
<table>
<tr>
<td class="green"></td>
<td class="yellow" id="main"></td>
<td class="red"></td>
</tr>
</table>
<script type="text/javascript" >
window.onload = function(){
var obj = document.getElementById('main');
function getData(){
var str = obj.innerHTML, i, len, temp = "";
for(i=0,len=20;i<len;i++){
temp += i+"<br/>";


}
obj.innerHTML = str + temp;
}
setTimeout(function(){
getData();
setTimeout(arguments.callee, 2000);
},2000);
}
</script>

</body>
</html>


觉得LS的方案可行,LZ可以在外面套上TABLE,单行三列,左右两列的高度设为Auto,中间列高度变化后,左右两列列高会自动增加。
或者使用JS控制,当中间DIV高度发生变化,就改变左右两个DIV的高度

读书人网 >CSS

热点推荐