2014-09-15 2 views
1

У меня есть глификон, который мне нужно выравнивать по середине страницы во все времена, независимо от того, какой размер экрана он отображает на том, как я могу достичь этого и где я иду не так?Как центрировать выравнивание глификона до середины страницы при всех размерах экрана

HTML

<div id='overlay'> 
    <div class="container"> 
     <div class="middle-loading-box"> 
      <div class="center-block"> 
       <span class="glyphicon glyphicon-refresh glyphicon-refresh-animate"></span> 
      </div> 
     </div> 
    </div> 
</div> 

CSS

.glyphicon-refresh-animate { 
    -animation: spin .7s infinite linear; 
    -webkit-animation: spin2 .7s infinite linear; 
} 

@-webkit-keyframes spin2 { 
    from { -webkit-transform: rotate(0deg);} 
    to { -webkit-transform: rotate(360deg);} 
} 

@keyframes spin { 
    from { transform: scale(1) rotate(0deg);} 
    to { transform: scale(1) rotate(360deg);} 
} 

.middle-loading-box .div.center-block .glyphicon{ 
    margin: 0 auto; 

} 
.middle-loading-box{ 
    border: none; 
    width: 38px; 
    height: 36px; 
    margin: 0 auto; 
    display: block; 
    text-align:center; 
    padding-top:1px; 
} 
.glyphicon-refresh:before ,.glyphicon-refresh:after{ 
    color: orange; 
    font-size: 30px; 
    text-align:center; 
} 

Jquery

$(function() { 
    var docHeight = $(document).height(); 
    $("body").append("<div id='overlay'></div>"); 
    $("#overlay") 
    .height(docHeight) 
    .css({ 
     'opacity' : 0.7, 
     'position': 'absolute', 
     'top': 0, 
     'left': 0, 
     'background': '#000000', 
     'width': '100%', 
     'z-index': 5000 
    }); 
}); 

Ссылка на мой JS.fiddle

ответ

3

Добавить

position: fixed; 
    top: 50%; 
    left: 50%; 
    margin-top:-16px; 
    margin-left:-16px; 

в .middle-loading-box

http://jsfiddle.net/f709psLh/2/

+0

Это работает как шарм спасибо большое – Code

3

Это то, что вы ищете?

http://css-tricks.com/centering-in-the-unknown/

+0

спасибо за это действительно здорово ссылку я ценю это братан – Code

+1

Спасибо chriscoyier. И просто помните, если у вас есть связанный с css вопрос ... css-tricks.com может иметь ответ. ;) – henser

2

Может быть, более простое решение:

.glyphicon { 
    position: absolute; 
    top:50%; 
} 
2

Другим решением является использование display: table так:

JS

$(function() { 
    var docHeight = $(document).height(); 
    $("body").append("<div id='overlay'></div>"); 
    $("#overlay") 
     .height(docHeight) 
     .css({ 
     'opacity': 0.7, 
      'position': 'relative',//change position to relative 
      'top': 0, 
      'left': 0, 
      'background': '#000000', 
      'width': '100%', 
      'z-index': 5000, 
      'display': 'table'// add display table 
    }); 
}); 

CSS

.container { 
    display: table-cell;/*Add display table cell*/ 
    vertical-align: middle;/*Add vertical align middle*/ 
} 

fiddle

+1

Большое спасибо, это также отлично работает – Code

Смежные вопросы