Two divs, one fixed width, the other, the rest

前端 未结 10 1157
死守一世寂寞
死守一世寂寞 2020-11-27 11:28

I\'ve got two div containers.

Whilst one needs to be a specific width, I need to adjust it, so that, the other div takes up the rest of the space. Is there any way I

相关标签:
10条回答
  • 2020-11-27 11:57

    You can use calc() Function of CSS.

    Demo: http://jsfiddle.net/A8zLY/543/

    <div class="left"></div>
    <div class="right"></div>
    
    .left {
    height:200px;
    width:calc(100% - 200px);
    background:blue;
    float:left;
    }
    
    .right {
    width:200px;
    height:200px;
    background:red;
    float:right;   
    }
    

    Hope this will help you!!

    0 讨论(0)
  • 2020-11-27 11:57

    If you can wrap them in a container <div> you could use positioning to make the left <div> anchored at left:0;right:250px, see this demo. I'll say now that this will not work in IE6 as only one corner of a <div> can be absolutely positioned on a page (see here for full explanation).

    0 讨论(0)
  • 2020-11-27 11:57

    1- Have a wrapper div, set the padding and margin as you like
    2- Make the left side div the width you need and make it float left
    3- Set the right side div margin equal to the left side width

    .left
    {
        ***width:300px;***
        float: left;
        overflow:hidden;
    
    }
    
    .right
    {
        overflow: visible;
        ***margin-left:300px;***
    }
    
    
    
    <div class="wrapper">
        <div class="left">
            ...
        </div>
    
        <div class="right" >
            ...
        </div>
    
    </div>
    

    Hope this works for you!

    0 讨论(0)
  • 2020-11-27 12:01

    set your right to the specific width and float it, on your left just set the margin-right to 250px

    .left {
    vertical-align: middle;
    min-height: 50px;
    margin-right: 250px;
    overflow: auto
    

    }

    .right {
    width:250px;
    text-align: right;
    display: table-cell;
    vertical-align: middle;
    min-height: 50px;
    height: 100%;
    overflow: auto
    }
    
    0 讨论(0)
  • 2020-11-27 12:04

    It's 2017 and the best way to do it is by using flexbox, which is IE10+ compatible.

    .box {
      display: flex;
    }
    
    .left {
      flex: 1;  /* grow */
      border: 1px dashed #f0f;
    }
    
    .right {
      flex: 0 0 250px; /* do not grow, do not shrink, start at 250px */
      border: 1px dashed #00f;
    }
    <div class="box">
      <div class="left">Left</div>
      <div class="right">Right 250px</div>
    </div>

    0 讨论(0)
  • 2020-11-27 12:07

    If you need a cross browser solution, you can use my approach, clear and easy.

    .left{
            position: absolute;
            height: 150px;
            width:150px;
            background: red;
            overflow: hidden;
            float:left;
    }
    .right{
            position:relative;
            height: 150px;
            width:100%;
            background: red;
            margin-left:150px;
            background: green;
            float:right;
    }
    
    0 讨论(0)
提交回复
热议问题