align images side by side in html

前端 未结 7 1224
太阳男子
太阳男子 2020-12-05 19:40

I want 3 images side by side with caption, at the moment I have 3 images going from top to bottom, with the caption on the left, not on the centre. How do I make the images

相关标签:
7条回答
  • 2020-12-05 19:57

    You mean something like this?

    <div class="image123">
        <div class="imgContainer">
            <img src="/images/tv.gif" height="200" width="200"/>
            <p>This is image 1</p>
        </div>
        <div class="imgContainer">
            <img class="middle-img" src="/images/tv.gif"/ height="200" width="200"/>
            <p>This is image 2</p>
        </div>
        <div class="imgContainer">
             <img src="/images/tv.gif"/ height="200" width="200"/>
            <p>This is image 3</p>
        </div>
    </div>
    

    with the imgContainer style as

    .imgContainer{
        float:left;
    }
    

    Also see this jsfiddle.

    0 讨论(0)
  • 2020-12-05 20:00

    I suggest to use a container for each img p like this:

    <div class="image123">
        <div style="float:left;margin-right:5px;">
            <img src="/images/tv.gif" height="200" width="200"  />
            <p style="text-align:center;">This is image 1</p>
        </div>
        <div style="float:left;margin-right:5px;">
            <img class="middle-img" src="/images/tv.gif/" height="200" width="200" />
            <p style="text-align:center;">This is image 2</p>
        </div>
        <div style="float:left;margin-right:5px;">
            <img src="/images/tv.gif/" height="200" width="200" />
            <p style="text-align:center;">This is image 3</p>
        </div>
    </div>
    

    Then apply float:left to each container. I add and 5px margin right so there is a space between each image. Also alway close your elements. Maybe in html img tag is not important to close but in XHTML is.

    fiddle

    Also a friendly advice. Try to avoid inline styles as much as possible. Take a look here:

    html

    <div class="image123">
        <div>
            <img src="/images/tv.gif" />
            <p>This is image 1</p>
        </div>
        <div>
            <img class="middle-img" src="/images/tv.gif/" />
            <p>This is image 2</p>
        </div>
        <div>
            <img src="/images/tv.gif/" />
            <p>This is image 3</p>
        </div>
    </div>
    

    css

    div{
        float:left;
        margin-right:5px;
    }
    
    div > img{
       height:200px;
        width:200px;
    }
    
    p{
        text-align:center;
    }
    

    It's generally recommended that you use linked style sheets because:

    • They can be cached by browsers for performance
    • Generally a lot easier to maintain for a development perspective

    source

    fiddle

    0 讨论(0)
  • 2020-12-05 20:02

    Try using this format

    <figure>
       <img src="img" alt="The Pulpit Rock" width="304" height="228">
       <figcaption>Fig1. - A view of the pulpit rock in Norway.</figcaption>
    </figure>
    

    This will give you a real caption (just add the 2nd and 3rd imgs using Float:left like others suggested)

    0 讨论(0)
  • 2020-12-05 20:05

    Not really sure what you meant by "the caption in the middle", but here's one solution to get your images appear side by side, using the excellent display:inline-block :

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset=utf-8 />
      <title></title>
      <style>
        div.container {
          display:inline-block;
        }
    
        p {
          text-align:center;
        }
      </style>
    </head>
    <body>
      <div class="container">
        <img src="http://placehold.it/350x150" height="200" width="200" />
        <p>This is image 1</p>
      </div>
      <div class="container">
        <img class="middle-img" src="http://placehold.it/350x150"/ height="200" width="200" />
        <p>This is image 2</p>
      </div>
      <div class="container">
        <img src="http://placehold.it/350x150" height="200" width="200" />
        <p>This is image 3</p>
      </div>
    </div>
    </body>
    </html>
    
    0 讨论(0)
  • 2020-12-05 20:11

    In your CSS:

    .image123{
    float:left;
    }
    
    0 讨论(0)
  • 2020-12-05 20:18

    Here is how I would do it, (however I would use an external style sheet for this project and all others. just makes things easier to work with. Also this example is with html5.

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title></title>
    <style>
      .container {
          display:inline-block;
      }
    </style>
    </head>
    <body>
    
      <div class="container">
        <figure>
        <img src="http://placehold.it/350x150" height="200" width="200">
        <figcaption>This is image 1</figcaption>
        </figure>
    
        <figure>
        <img class="middle-img" src="http://placehold.it/350x150"/ height="200" width="200">
        <figcaption>This is image 2</figcaption>
        </figure>
    
        <figure>
        <img src="http://placehold.it/350x150" height="200" width="200">
        <figcaption>This is image 3</figcaption>
        </figure>
    
      </div>
    </body>
    </html>
    
    0 讨论(0)
提交回复
热议问题