CSS左右宽度自适应 中间定宽

html-css040

CSS左右宽度自适应 中间定宽,第1张

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312" />

<title>CSS布局:中栏固定宽度,左右两栏宽度相等同时自适应宽度-懒人图库</title>

<STYLE type="text/css">

*{

margin:0

padding:0

}

body{

font-family:Verdana, Arial, Helvetica, sans-serif

min-width:620px

}

#header,#footer{

clear:both

padding:10px

text-align:center

}

#left,

#right{

float:left

width:50%

margin:0 0 0 -151px

}

#innerLeft,

#innerRight{

margin:0 0 0 151px

background-color:#efefef

}

#middle{

float:left

width:300px

background-color:#ccc

}

.inner {

padding:12px

}

</STYLE>

</head>

<body>

<div style="text-align:centermargin:20px">

<p>作者:<A href="http://www.aoao.org.cn/" target="_blank">aoao</A> 查找更多代码,请访问:<a href="http://www.lanrentuku.com/" target="_blank">懒人图库</a></p>

<p><script type="text/javascript" src="http://d.lanrentuku.com/goto/js-preview-728x90.js"></script></p>

</div>

<DIV id="header">

<H1>固定中栏宽度, 左右两栏宽度相等和自适应</H1></DIV>

<DIV id="left">

<DIV id="innerLeft" class="inner">

<P><STRONG>表现:</STRONG>中间一栏居中与固定宽度,左右两栏宽度相等同时自适应宽度。</P></DIV></DIV>

<DIV id="middle">

<DIV id="innerMiddle" class="inner">

<P><STRONG>原理:</STRONG>利用margin的负值错别固定的宽度,因为要分两边,所以只要错开一中间的固定宽度就行</P></DIV>

</DIV>

<DIV id="right">

<DIV id="innerRight" class="inner">

<P><STRONG>问题:</STRONG>IE对宽度乘百分比的计算不大好,有必要牺牲一两px的显示,IE6也没最小宽度。</P></DIV></DIV>

</body>

</html>。

实现方式:左右元素浮动,中间元素左右marign值撑开两边距离。

例:

此时看似没有问题,可是如果中间内容过多,超出左右两边高度,我们将看到 文字环绕 问题,如下如所示。

解决办法:

补充flex左右布局,左边固定,右边自适应,并且两列等高自适应