由于设计页面需要,要把两个并排显示的 div 实现一样高的效果, n 行 n 列布局,每列高度(事先并不能确定哪列的高度)相同,每个设计师追求的目标。方法有以下几种: 1 JS 实现(判断 2 个 d
2015-01-22 17:04
1416 查看
由于设计页面需要,要把两个并排显示的 div 实现一样高的效果, n 行 n 列布局,每列高度(事先并不能确定哪列的高度)相同,每个设计师追求的目标。方法有以下几种: 1 JS 实现(判断 2 个 div 高) 2 纯 css 方法; 3 加背景图片实现。首先说下本博客实现的 2 个 div 一样高的方法(即 js 方法)
div+css 基本布局:
<div id="mm">
<div id="mm1"></div>
<div id="mm2"></div>
</div>
1 js 实现 div 自适应高度
代码如下:
<script type="text/javascript">
<!--
window.onload=window.onresize=funct {
if document.getElementByIdx_x "mm2" .clientHeight<document.getElementByIdx_x "mm1" .clientHeight {
document.getElementByIdx_x "mm2" .style.height=document.getElementByIdx_x "mm1" .offsetHeight+"px";
}
else{
document.getElementByIdx_x "mm1" .style.height=document.getElementByIdx_x "mm2" .offsetHeight+"px";
}
}
-->
</script>
注:网上公布了不少方法,但代码或多或少有错;上面的无错代码;测试在 IE6.0/IE7.0 下通过,考虑绝大数人仍然用的 IE 所以并没有在 opera 和 firefox 下调试,哪位用的 opera 或 ff 可以协助看看 飘易博客 DIV 否保持了一致的高度。
2 纯 CSS 方法
css 里代码(调试通过,但不会显示 div 下边框,即 border-bottom
#m1,#m2
{
padding-bottom: 32767px !important;
margin-bottom: -32767px !important;
}
@media all and min-width: 0px {
#m1,#m2
{
padding-bottom: 0 !important;
margin-bottom: 0 !important;
}
#m1:before, #m2:before
{
content: '[DO NOT LEAVE IT IS NOT REAL]';
display: block;
background: inherit;
padding-top: 32767px !important;
margin-bottom: -32767px !important;
height: 0;
}
}
3 加背景图片
这个方法,很多大网站在使用,如 163 sina 等。
XHTML 代码:
<div id="wrap">
<div id="column1"> 这是第一列 </div>
<div id="column1"> 这是第二列 </div>
<div class="clear"></div>
</div>
CSS 代码 :
#wrap{ width:776px; background:url bg.gif repeat-y 300px;}
#column1{ float:left; width:300px;}
#column2{ float:right; width:476px;}
.clear{ clear:both;}
还有其他一些方法,但主流就是这几种了如果你还有关于多个 div 自适应高度的好的代码。
4、附上一段采用jquery脚本来控制两个对象高度一致的代码
<script type="text/javascript" src="../js/jquery1.4.2.js">
</script>
<script language="javascript">
$(document).ready(function(){
AdjustColumnsHeight(".content",".bar");
});
AdjustColumnsHeight = function(obj1,obj2)
{
var h1 = $(obj1).outerHeight();
var h2 = $(obj2).outerHeight();
var mh = Math.max( h1, h2);
$(obj1).height(mh);
$(obj2).height(mh);
}
</script>
div+css 基本布局:
<div id="mm">
<div id="mm1"></div>
<div id="mm2"></div>
</div>
1 js 实现 div 自适应高度
代码如下:
<script type="text/javascript">
<!--
window.onload=window.onresize=funct {
if document.getElementByIdx_x "mm2" .clientHeight<document.getElementByIdx_x "mm1" .clientHeight {
document.getElementByIdx_x "mm2" .style.height=document.getElementByIdx_x "mm1" .offsetHeight+"px";
}
else{
document.getElementByIdx_x "mm1" .style.height=document.getElementByIdx_x "mm2" .offsetHeight+"px";
}
}
-->
</script>
注:网上公布了不少方法,但代码或多或少有错;上面的无错代码;测试在 IE6.0/IE7.0 下通过,考虑绝大数人仍然用的 IE 所以并没有在 opera 和 firefox 下调试,哪位用的 opera 或 ff 可以协助看看 飘易博客 DIV 否保持了一致的高度。
2 纯 CSS 方法
css 里代码(调试通过,但不会显示 div 下边框,即 border-bottom
#m1,#m2
{
padding-bottom: 32767px !important;
margin-bottom: -32767px !important;
}
@media all and min-width: 0px {
#m1,#m2
{
padding-bottom: 0 !important;
margin-bottom: 0 !important;
}
#m1:before, #m2:before
{
content: '[DO NOT LEAVE IT IS NOT REAL]';
display: block;
background: inherit;
padding-top: 32767px !important;
margin-bottom: -32767px !important;
height: 0;
}
}
3 加背景图片
这个方法,很多大网站在使用,如 163 sina 等。
XHTML 代码:
<div id="wrap">
<div id="column1"> 这是第一列 </div>
<div id="column1"> 这是第二列 </div>
<div class="clear"></div>
</div>
CSS 代码 :
#wrap{ width:776px; background:url bg.gif repeat-y 300px;}
#column1{ float:left; width:300px;}
#column2{ float:right; width:476px;}
.clear{ clear:both;}
还有其他一些方法,但主流就是这几种了如果你还有关于多个 div 自适应高度的好的代码。
4、附上一段采用jquery脚本来控制两个对象高度一致的代码
<script type="text/javascript" src="../js/jquery1.4.2.js">
</script>
<script language="javascript">
$(document).ready(function(){
AdjustColumnsHeight(".content",".bar");
});
AdjustColumnsHeight = function(obj1,obj2)
{
var h1 = $(obj1).outerHeight();
var h2 = $(obj2).outerHeight();
var mh = Math.max( h1, h2);
$(obj1).height(mh);
$(obj2).height(mh);
}
</script>
相关文章推荐
- 任何国家都无法限制数字货币。为什么呢? 要想明白这个问题需要具备一点区块链的基础知识: 区块链使用的大致技术包括以下几种: a.点对点网络设计 b.加密技术应用 c.分布式算法的实现 d.数据存储技术 e.拜占庭算法 f.权益证明POW,POS,DPOS 原因一: 点对点网络设计 其中点对点的P2P网络是bittorent ,由于是点对点的网络,没有中心化,因此在全球分布式的网
- 任何国家都无法限制数字货币。为什么呢? 要想明白这个问题需要具备一点区块链的基础知识: 区块链使用的大致技术包括以下几种: a.点对点网络设计 b.加密技术应用 c.分布式算法的实现 d.数据存储技术 e.拜占庭算法 f.权益证明POW,POS,DPOS 原因一: 点对点网络设计 其中点对点的P2P网络是bittorent ,由于是点对点的网络,没有中心化,因此在全球分布式的网
- 【转】ie6.0下div 不能实现1px 高度的几种解决方法
- 利用5个标签,4个文本框,2个按钮,自己设计布局实现输入三边求三角形面积。界面如下所示。三角形类的编写可以使用实验4中已经写过的三角形类,当点击“判断三边”时,若能构成三角形,在标签5上显示“可以构成三角形!”,如不能构成三角形,在标签5上显示“不能构成三
- js实现两个div保持相同高度
- 为何firefox不支持insertRow和insertCell。我如何能让firefox显示和ie显示的效果一样?iframe实现高度自适应,兼容FF、Opera、Safari
- table+div+iframe打造高度自适应的后台布局框架(需要用JS控制大小)
- 用div实现像table一样的布局方法
- 实现用户注销后不能后退显示原页面内容的方法
- div+css页面设计--由于流览器默认字体导致的显示差异
- div+css div不设置高度背景颜色或外边框不能显示的解决方法
- CSS在页面布局中实现div垂直居中的方法总结
- js + div 实现无缝隙滚动效果,从右向左循环显示
- javascript html js仿LightBox内容显示效果,div覆盖层,锁定页面
- CSS在页面布局中实现div垂直居中的方法总结(转)
- 用层实现长篇文章分页(用“scrollHeight”获得垂直滚动条的高度,用此值除以div层的高度,取整后就是总的页数。当用户查看某页时,便调用“showPage”方法,实现翻页效果。)
- div如何实现左右两个panel并排,而且高度一致
- CSS在页面布局中实现div水平居中的方法总结(转)
- 实现用户注销后不能后退显示原页面内容的方法
- 在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)