How to make a div fill a remaining horizontal space?

前端 未结 25 1845
野的像风
野的像风 2020-11-22 00:45

I have 2 divs: one in the left side and one in the right side of my page. The one in the left side has fixed width and I want the one of the right side to f

25条回答
  •  暖寄归人
    2020-11-22 01:48

    The solution comes from the display property.

    Basically you need to make the two divs act like table cells. So instead of using float:left, you'll have to use display:table-cell on both divs, and for the dynamic width div you need to set width:auto; also. The both divs should be placed into a 100% width container with the display:table property.

    Here is the css:

    .container {display:table;width:100%}
    #search {
      width: 160px;
      height: 25px;
      display:table-cell;
      background-color: #FFF;
    }
    #navigation {
      width: auto;
      display:table-cell;
      /*background-color: url('../images/transparent.png') ;*/
      background-color: #A53030;
    }
    
    *html #navigation {float:left;}
    

    And the HTML:

    IMPORTANT:For Internet Explorer you need to specify the float property on the dynamic width div, otherwise the space will not be filled.

    I hope that this will solve your problem. If you want, you can read the full article I wrote about this on my blog.

提交回复
热议问题