How to align iframe always in the center

前端 未结 6 1488
臣服心动
臣服心动 2021-01-02 12:58

I have an iframe surrounded by div element and I am simply trying to position it always in the center. here is my jsfiddle effort : jsfiddle

and tr

相关标签:
6条回答
  • 2021-01-02 13:18

    center iframe

    one solution is:

    <div>
      <iframe></iframe>
    </div>
    

    css:

    div {
      text-align:center;
      width:100%;
    }
    iframe{
      width: 200px;
    }
    

    fiddle: http://jsfiddle.net/h9gTm/

    edit: vertical align added

    css:

    div {
        text-align: center;
        width: 100%;
        vertical-align: middle;
        height: 100%;
        display: table-cell;
    }
    .iframe{
      width: 200px;
    }
    div,
    body,
    html {
        height: 100%;
        width: 100%;
    }
    body{
        display: table;
    }
    

    fiddle: http://jsfiddle.net/h9gTm/1/

    Edit: FLEX solution

    using display: flex on the <div>

    div {
        display: flex;
        align-items: center;
        justify-content: center;
    }
    

    fiddle: http://jsfiddle.net/h9gTm/867/

    0 讨论(0)
  • 2021-01-02 13:19

    You could easily use display:table to vertical-align content and text-align:center to horizontal align your iframe. http://jsfiddle.net/EnmD6/7/

    html {
        display:table;
        height:100%;
        width:100%;
    }
    body {
        display:table-cell;
        vertical-align:middle;
    }
    #top-element {
        position:absolute;
        top:0;
        left:0;
        background:orange;
        width:100%;
    }
    #iframe-wrapper {
        text-align:center;
    }
    

    version with table-row http://jsfiddle.net/EnmD6/9/

    html {
        height:100%;
        width:100%;
    }
    body {
        display:table;
        height:100%;
        width:100%;
        margin:0;
    }
    #top-element {
        display:table-row;
        background:orange;
        width:100%;
    }
    #iframe-wrapper {
        display:table-cell;
        height:100%;
        vertical-align:middle;
        text-align:center;
    }
    
    0 讨论(0)
  • 2021-01-02 13:20

    First remove position:absolute of div#iframe-wrapper iframe, Remove position:fixed and all other css from div#iframe-wrapper

    Then apply this css,

    div#iframe-wrapper {
      width: 200px;
      height: 400px;
      margin: 0 auto;
    }
    

    FIDDLE DEMO

    0 讨论(0)
  • 2021-01-02 13:29

    Try this:

    #wrapper {
        text-align: center;
    }
    
    #wrapper iframe {
        display: inline-block;
    }
    
    0 讨论(0)
  • 2021-01-02 13:32

    I think if you add margin: auto; to the div below it should work.

    div#iframe-wrapper iframe {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        margin: auto;
        right: 100px;
        height: 100%;
        width: 100%;
    }
    
    0 讨论(0)
  • 2021-01-02 13:35

    If all you want to do is display an iframe on a page, the simplest solution I was able to come up with doesn't require divs or flex stuff is:

    html {
        width: 100%;
        height: 100%;
        display: table;
    }
    
    body {
        text-align: center;
        vertical-align: middle;
        display: table-cell;
    }
    

    And then the HTML is just:

    <html>
      <body>
         <iframe ...></iframe>
      </body>
    </html>
    

    If this is all you need you don't need wrapper divs to do it. This works for text content and stuff, too.

    Fiddle.

    Also this looks even simpler.

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