Search code examples
csspopupalignment

How to make popup look at the centre of the screen?


When i click a link, a pop up comes out. The thing is that it is not aligned to the centre of the screen. By the way my code also helps the website (and the pop up) to look perfectly in a mobile version.

The HTML code :

<a href="#" data-reveal-id="exampleModal">POP UP</a>

<div id="exampleModal" class="reveal-modal">
     <h2>POP UP</h2>
     <p>
     <font size="4">window window window.window window window. window.
         </font>
    </p>
    <a class="close-reveal-modal">×</a>
</div>

The css code :

 .reveal-modal     
  {
        background:#e1e1e1; 
        visibility:hidden;
        display:none;
        top:100px; 
        left:50%; 
        width:820px; 
        position:absolute; 
        z-index:41;
        padding:30px; 
        -webkit-box-shadow:0 0 10px rgba(0,0,0,0.4);
        -moz-box-shadow:0 0 10px rgba(0,0,0,0.4); 
        box-shadow:0 0 10px rgba(0,0,0,0.4)
  }

I tried putting some right:50% as well but it didn't work. Shouldn't left work ?


Solution

  • These are the changes to make:

    CSS:

    #container {
        width: 100%;
        height: 100%;
        top: 0;
        position: absolute;
        visibility: hidden;
        display: none;
        background-color: rgba(22,22,22,0.5); /* complimenting your modal colors */
    }
    #container:target {
        visibility: visible;
        display: block;
    }
    .reveal-modal {
        position: relative;
        margin: 0 auto;
        top: 25%;
    }
        /* Remove the left: 50% */
    

    HTML:

    <a href="#container">Reveal</a>
    <div id="container">
        <div id="exampleModal" class="reveal-modal">
        ........
        <a href="#">Close Modal</a>
        </div>
    </div>
    

    JSFiddle - Updated with CSS only