How to position three divs in html horizontally?

前端 未结 4 2245
夕颜
夕颜 2020-12-13 12:20

I am creating a sample website which has three divisions horizontally. I want the left most div to be 25% width, the middle one to be 50% width, and right to be 25% width so

相关标签:
4条回答
  • 2020-12-13 12:30

    I'd refrain from using floats for this sort of thing; I'd rather use inline-block.

    Some more points to consider:

    • Inline styles are bad for maintainability
    • You shouldn't have spaces in selector names
    • You missed some important HTML tags, like <head> and <body>
    • You didn't include a doctype

    Here's a better way to format your document:

    <!DOCTYPE html>
    <html>
    <head>
    <title>Website Title</title>
    <style type="text/css">
    * {margin: 0; padding: 0;}
    #container {height: 100%; width:100%; font-size: 0;}
    #left, #middle, #right {display: inline-block; *display: inline; zoom: 1; vertical-align: top; font-size: 12px;}
    #left {width: 25%; background: blue;}
    #middle {width: 50%; background: green;}
    #right {width: 25%; background: yellow;}
    </style>
    </head>
    <body>
    <div id="container">
        <div id="left">Left Side Menu</div>
        <div id="middle">Random Content</div>
        <div id="right">Right Side Menu</div>
    </div>
    </body>
    </html>
    

    Here's a jsFiddle for good measure.

    0 讨论(0)
  • 2020-12-13 12:35

    I know this is a very old question. Just posting this here as I solved this problem using FlexBox. Here is the solution

    #container {
      height: 100%;
      width: 100%;
      display: flex;
    }
    #leftThing {
      width: 25%;
      background-color: blue;
    }
    #content {
      width: 50%;
      background-color: green;
    }
    #rightThing {
      width: 25%;
      background-color: yellow;
    }
    <div id="container">
    
      <div id="leftThing">
        Left Side Menu
      </div>
    
      <div id="content">
        Random Content
      </div>
    
      <div id="rightThing">
        Right Side Menu
      </div>
    
    </div>

    Just had to add display:flex to the container! No floats required.

    0 讨论(0)
  • 2020-12-13 12:41

    Most easiest way
    I can see the question is answered , I'm giving this answer for the ones who is having this question in future


    Its not good practise to code inline css , and also ID for all inner div's , always try to use class for styling .Using inline css is a very bad practise if you are trying to be a professional web designer.

    here in your question I have given a wrapper class for the parent div and all the inside div's are child div's in css you can call inner div's using nth-child selector.

    I want to point few things here

    1 - Do not use inline css ( it is very bad practise )

    2 - Try to use classes instead of id's because if you give an id you can use it only once, but if you use a class you can use it many times and also you can style of them using that class so you write less code.


    codepen link for my answer

    https://codepen.io/feizel/pen/JELGyB


                .wrapper{width:100%;}
                .box{float:left; height:100px;}
                .box:nth-child(1){
                   width:25%;
                   background-color:red; 
            
                }
                .box:nth-child(2){
                   width:50%;
                  background-color:green; 
                }
                .box:nth-child(3){
                   width:25%;
                  background-color:yellow; 
                }
     
        <div class="wrapper">
            <div class="box">
            Left Side Menu
            </div>
            <div class="box">
            Random Content
            </div>
            <div class="box">
            Right Side Menu
            </div>
        </div>
    0 讨论(0)
  • 2020-12-13 12:44

    You can use floating elements like so:

    <div id="the whole thing" style="height:100%; width:100%; overflow: hidden;">
        <div id="leftThing" style="float: left; width:25%; background-color:blue;">Left Side Menu</div>
        <div id="content" style="float: left; width:50%; background-color:green;">Random Content</div>
        <div id="rightThing" style="float: left; width:25%; background-color:yellow;">Right Side Menu</div>
    </div>
    

    Note the overflow: hidden; on the parent container, this is to make the parent grow to have the same dimensions as the child elements (otherwise it will have a height of 0).

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