使两列高度相同

时间:2012-03-30 20:28:18

标签: javascript jquery asp.net css

我想要制作两列高度相同但失败的列。 如何更改我的CSS或使用Jquery?请不要一张桌子。我有一个gridview来显示 数据库中的表。 Height

我的代码:

<div id="wrap">
    <div id="header">
          <h1>TEST</h1>
    </div>
    <div id="sidebar">
        <ul>
                <li>nav1</li>
                <li>nav2</li>
                <li>nav3</li>
                <li>nav4</li>
        </ul>
    </div>
    <div id="gridview">

        <asp:GridView ID="GridView1" runat="server">
        </asp:GridView>
    </div>
</div> 

CSS:

 #wrap
 {
     width: 800px;
     background-color: #99c;
     overflow: hidden;
 }

 #header
 {
    border-style: solid;
    border-width: 1px;
    background-color: #ddd;
    width: 800px;
    padding-top: 30px;
    padding-bottom: 30px;
  }
  #sidebar
  {
    float: left;
    width: 125px;
    padding-top: 10px;
    background-color: #C0C0C0;
   }
   #gridview
   {
     float: right;
     width: 675px;
   }

我尝试了假柱但没有运气。

Q1:如何修改CSS或使用jquery?

Q2:表格宽度难以适应#wrap的宽度(此处为800px)。有什么把戏吗? 感谢您提供代码帮助。

3 个答案:

答案 0 :(得分:5)

我喜欢使用jQuery

jQuery(document).ready(function() {
    var divone = jQuery("#sidebar").height();
    var divtwo = jQuery("#gridview").height();

    var maxdiv = Math.max(divone, divtwo);

    jQuery("#sidebar").height(maxdiv);
    jQuery("#gridview").height(maxdiv);

});

这基本上取两个div的高度并获得最大高度,然后将两个div分配相同的高度。这非常适合扩展divs

答案 1 :(得分:2)

试试这个:

function sameHeight(el1,el2) {
  var he1 = $(el1).height();
  var he2 = $(el2).height();

  if(he1 > he2){ $(el2).height(he1); };
  if(he1 < he2){ $(el1).height(he2); };
};

sameHeight(yourhtmlelement1,yourhtmlelement2);

您可以使用各种html元素!

答案 2 :(得分:1)

你需要的是一个clearfix:

<div id="sidebar">
        <ul>
                <li>nav1</li>
                <li>nav2</li>
                <li>nav3</li>
                <li>nav4</li>
        </ul>
    </div>
    <div id="gridview">

        <asp:GridView ID="GridView1" runat="server">
        </asp:GridView>
    </div>
    <span class="clear!></span>

在此locatiob(在两个浮动的div下)添加此范围

并使用此CSS:

.clear
{
    display: block;
    clear: both;
}

两列现在应该是相同的高度。