Как разместить div в центре экрана, когда страница больше экрана
Привет я использую что-то похожее на следующее, Чтобы получить div расположен в середине экрана:
<style type="text/css">
#mydiv {
position:absolute;
top: 50%;
left: 50%;
width:30em;
height:18em;
margin-top: -9em; /*set to a negative number 1/2 of your height*/
margin-left: -15em; /*set to a negative number 1/2 of your width*/
border: 1px solid #ccc;
background-color: #f3f3f3;
}
</style>
<div id="mydiv">Test Div</div>
однако проблема с этим заключается в том, что он позиционирует элемент в середине страницы, а не на экране. Поэтому, если страница находится на несколько экранов выше, и я нахожусь в верхней части страницы (верхняя часть части отображается на экране), когда я делаю div, это даже не на экране. Вы должны прокрутить вниз, чтобы просмотреть его.
может кто-то пожалуйста, скажите мне, как вы бы заставили его появиться в середине экрана?
14 ответов:
просто добавить
position:fixed
и он будет держать его в поле зрения, даже если вы прокрутите вниз. смотрите его по адресу http://jsfiddle.net/XEUbc/1/#mydiv { position:fixed; top: 50%; left: 50%; width:30em; height:18em; margin-top: -9em; /*set to a negative number 1/2 of your height*/ margin-left: -15em; /*set to a negative number 1/2 of your width*/ border: 1px solid #ccc; background-color: #f3f3f3; }
Я думаю, что это простое решение:
<div style=" display: inline-block; position: fixed; top: 0; bottom: 0; left: 0; right: 0; width: 200px; height: 100px; margin: auto; background-color: #f3f3f3;">Full Center ON Page </div>
Если вы знаете размер элемента вы можете просто использовать
margin
свойства:#mydiv { position: fixed; top: 50%; left: 50%; margin-top: -50px; //assuming that #mydiv has the height of 100px margin-left: -100px; //assuming that #mydiv has the width of 200px }
Примечание что вы должны использовать половину ширины и высоты элемента
но если вы не уверены в размере, это будет делать трюк:
#mydiv { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); }
использовать преобразования;
<style type="text/css"> #mydiv { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); } </style>
Javascript Решение:
var left = (screen.width / 2) - (530 / 2); var top = (screen.height / 2) - (500 / 2); var _url = 'PopupListRepair.aspx'; window.open(_url, self, "width=530px,height=500px,status=yes,resizable=no,toolbar=no,menubar=no,left=" + left + ",top=" + top + ",scrollbars=no");
просто поставить
margin:auto;
#mydiv { margin:auto; position:absolute; top: 50%; left: 50%; width:30em; height:18em; margin-top: -9em; /*set to a negative number 1/2 of your height*/ margin-left: -15em; /*set to a negative number 1/2 of your width*/ border: 1px solid #ccc; background-color: #f3f3f3; }
<div id="mydiv">Test Div</div>
<html> <head> <style type="text/css"> #mydiv { position:absolute; top: 0; left: 0; right: 0; bottom: 0; width:100px; height:200px; margin:auto; border: 1px solid #ccc; background-color: #f3f3f3; } </style> </head> <body> <div id="mydiv">Maitrey</div> </body> </html>
Ну, ниже приведен рабочий пример для этого.
это будет обрабатывать центральное положение, если вы измените размер веб-страницы или загрузить в любом размере.
<!DOCTYPE html> <html> <head> <style> .loader { position: absolute; top: 50%; left: 50%; margin-top: -50px; margin-left: -50px; border: 10px solid #dcdcdc; border-radius: 50%; border-top: 10px solid #3498db; width: 30px; height: 30px; -webkit-animation: spin 2s linear infinite; animation: spin 1s linear infinite; } @-webkit-keyframes spin { 0% { -webkit-transform: rotate(0deg); } 100% { -webkit-transform: rotate(360deg); } } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } </style> </head> <body> <div class="loader" style="display:block"></div> </body> </html>
В приведенном выше примере загрузка div всегда будет в центре.
надеюсь это поможет вам :)
на странице скрипта ur...
$('.a-middle').css('margin-top', function () { return ($(window).height() - $(this).height()) / 2 });
используйте a-средний класс В Div...
<div class="a-middle">
<!DOCTYPE html> <html> <head> <style> .loader { position: absolute; top: 50%; left: 50%; margin-top: -50px; margin-left: -50px; border: 10px solid #dcdcdc; border-radius: 50%; border-top: 10px solid #3498db; width: 30px; height: 30px; -webkit-animation: spin 2s linear infinite; animation: spin 1s linear infinite; } @-webkit-keyframes spin { 0% { -webkit-transform: rotate(0deg); } 100% { -webkit-transform: rotate(360deg); } } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } </style> </head> <body> <div class="loader" style="display:block"></div> </body> </html>
Я только что проверил этот точный код на тестовой странице, и он идеально центрировал div на странице, даже с примерно 100
<br />
перед ним, чтобы попытаться нажать его вниз.возможно, попробуйте проверить остальную часть вашего кода, чтобы увидеть, есть ли у вас что-то, что либо переписывает значения DIV, либо влияет на ваш DIV, чтобы вызвать эти проблемы.
для этого вам придется определить размер экрана. Это невозможно с помощью CSS или HTML; вам нужен JavaScript. Вот запись Mozilla Developer Center в свойствах окнаhttps://developer.mozilla.org/en/DOM/window#Properties
определите доступные высоту и положение соответственно.