Div side by side without float

后端 未结 6 1194
自闭症患者
自闭症患者 2020-12-01 01:31

How can I make div \'left\' and \'right\' look like columns side by side?

I know I can use float:left on them and that will work... but on step 5 and 6 in here http

相关标签:
6条回答
  • 2020-12-01 01:38

    You can also use CSS3 flexbox layout, which is well supported nowadays.

    .container {
        display: flex;
        flex-flow: row nowrap;
        justify-content: space-between;
        background:black;
        height:400px;
        width:450px;
    }
    
    .left {
        flex: 0 0 300px;
        background:blue;
        height:200px;
    }
    
    .right {
        flex: 0 1 100px;
        background:green;
        height:300px;
    }
    

    See Example (with legacy styles for maximum compatiblity) & Learn more about flexbox.

    0 讨论(0)
  • 2020-12-01 01:42

    You can try with margin for right div

    margin: -200px 0 0 350px;
    
    0 讨论(0)
  • 2020-12-01 01:43

    The usual method when not using floats is to use display: inline-block: http://www.jsfiddle.net/zygnz/1/

    .container div {
      display: inline-block;
    }
    

    Do note its limitations though: There is a additional space after the first bloc - this is because the two blocks are now essentially inline elements, like a and em, so whitespace between the two counts. This could break your layout and/or not look nice, and I'd prefer not to strip out all whitespaces between characters for the sake of this working.

    Floats are also more flexible, in most cases.

    0 讨论(0)
  • 2020-12-01 01:52

    I am currently working on this, and i have already a number of solutions. It is nice to have a high quality site, that i can use also for my convenience. Because if you do not write these things down, you will eventually forget some parts. And i can also recommend writing some basic's down if you are starting any kind of new programming/design.

    So if the float functions are causing problems there is a couple of options you can try.

    One is modify the div alignment in the div tag it self like so <div class="kosher" align=left> If this does not suit you then there is another option with margin like so.

    .leftdiv {
        display: inline-block;
        width: 40%;
        float: left;
    }
    .rightdiv {
        display: block;
        margin-right: 20px;
        margin-left: 45%;
    }
    

    Don't forget to remove the <div align=left>.

    0 讨论(0)
  • 2020-12-01 01:52

    Use display:table-cell; for removing space between .Left and .Right

    div.left {
        background:blue;
        height:200px;
        width:300px;
    }
    
    div.right{
        background:green;
        height:300px;
        width:100px;
    }
    
    .container{
        background:black;
        height:400px;
        width:450px;
    }
    
    .container > div {
        display: table-cell;
    }
    <div class="container">
      <div>
        <div class="left">
          LEFT
        </div>
      </div>
      <div>
        <div class="right">
          RIGHT
        </div>
      </div>
    </div>

    0 讨论(0)
  • 2020-12-01 01:53

    A div is a block level element, meaning that will behave as a block, and blocks can't stay side by side without being floated. You can however set them to inline elements with:

    display:inline-block;
    

    Give it a try...


    Another way is to place them using:

    position:absolute;
    left:0;
    

    and/or

    position:absolute;
    right:0;
    

    Note: For this to work as expected, the wrapper element must have a position:relative; so that the elements with absolute positioning stay relative to their wrapper element.

    0 讨论(0)
提交回复
热议问题