Подтвердить что ты не робот

Как центрировать элемент html в окне браузера?

Как разместить некоторый элемент html, например div, в середине окна браузера (а не страницы, а не экрана)? Не зависит от размера окна браузера, разрешения экрана, расположения панели инструментов и т.д. Я хочу, чтобы он находился в середине окна браузера.

Спасибо

4b9b3361

Ответ 1

Я удивился, что никто не сказал о положении = исправлено. Он делает именно то, что я просил, и работает во всех "человеческих" браузерах и IE с 7.

Ответ 2

Для этого вам нужно знать размер элемента, который вы центрируете. Будут выполняться любые измерения (т.е. Px, em, percent), но он должен иметь фиксированный размер.

css будет выглядеть следующим образом:

 // Replace X and Y with a number and u with a unit. do calculations
 // and remove parens
.centered_div {
   width: Xu;
   height: Yu;
   position: absolute;
   top: 50%;
   left: 50%;
   margin-left: -(X/2)u;
   margin-top: -(Y/2)u;
}

Изменить. Это центрируется в окне просмотра. Вы можете сосредоточиться только в окне браузера с помощью JavaScript. Но в любом случае это может быть достаточно хорошим, так как вы, вероятно, хотите отобразить всплывающее окно/модальное поле?

Ответ 3

Это возможно только с помощью CSS - JavaScript не нужен: Вот пример

Вот исходный код этого примера:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>  
<meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
<title>Dead Centre</title>  
<style type="text/css" media="screen"><!--
body 
    {
    color: white;
    background-color: #003;
    margin: 0px
    }

#horizon        
    {
    color: white;
    background-color: transparent;
    text-align: center;
    position: absolute;
    top: 50%;
    left: 0px;
    width: 100%;
    height: 1px;
    overflow: visible;
    visibility: visible;
    display: block
    }

#content    
    {
    font-family: Verdana, Geneva, Arial, sans-serif;
    background-color: transparent;
    margin-left: -125px;
    position: absolute;
    top: -35px;
    left: 50%;
    width: 250px;
    height: 70px;
    visibility: visible
    }

.bodytext 
    {
    font-size: 14px
    }

.headline 
    {
    font-weight: bold;
    font-size: 24px
    }

#footer 
    {
    font-size: 11px;
    font-family: Verdana, Geneva, Arial, sans-serif;
    text-align: center;
    position: absolute;
    bottom: 0px;
    left: 0px;
    width: 100%;
    height: 20px;
    visibility: visible;
    display: block
    }

a:link, a:visited 
    {
    color: #06f;
    text-decoration: none
    }

a:hover 
    {
    color: red;
    text-decoration: none
    }

--></style>
</head>
<body>
<div id="horizon">
    <div id="content">
        <div class="bodytext">
        This text is<br>
        <span class="headline">DEAD CENTRE</span><br>
        and stays there!</div>
    </div>
</div>
<div id="footer">
    <a href="http://www.wpdfd.com/editorial/thebox/deadcentre4.html">view construction</a></div>
</body>
</html>

Ответ 4

Вот:

  • Решение только HTML + CSS - не требуется JavaScript
  • Не требуется заранее знать размер контента
  • Консоли контента сосредоточены на изменении размера окна

И пример:

<!DOCTYPE html>
<html>
    <head>
        <title>HTML centering</title>

        <style type="text/css">
        <!--
        html, body, #tbl_wrap { height: 100%; width: 100%; padding: 0; margin: 0; }
        #td_wrap { vertical-align: middle; text-align: center; }
        -->
        </style>
    </head>

    <body>
        <table id="tbl_wrap"><tbody><tr><td id="td_wrap">
        <!-- START: Anything between these wrapper comment lines will be centered -->


<div style="border: 1px solid black; display: inline-block;">
This content will be centered.
</div>

        <!-- END: Anything between these wrapper comment lines will be centered -->
        </td></tr></tbody></table>
    </body>
</html>

Взгляните на исходный URL для полной информации: http://krustev.net/html_center_content.html

Вы можете делать все, что захотите, с помощью этого кода. Единственное условие состоит в том, что любая производная работа должна иметь ссылку на оригинального автора.

Ответ 5

div#wrapper {
    position: absolute;
    top:  50%;
    left: 50%;
    transform: translate(-50%,-50%);
}

Ответ 6

Если вы не знаете размер браузера, вы можете просто центрироваться в CSS со следующим кодом:

Код HTML:

<div class="firstDiv">Some Text</div>  

Код CSS:

 .firstDiv {
  width: 500px;

  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);

  background-color: #F1F1F1;
 }

Это также помогает в любых непредвиденных изменениях в будущем.

Ответ 7

У меня было много проблем с центрированием и выравниванием, пока я не нашел Flexbox в качестве рекомендации в руководстве.

Полное руководство по Flexbox

Я разместил фрагмент (который работает с Chrome) здесь для удобства:

<head>
    <style type="text/css">
        html
        {
            width: 100%;
            height: 100%;
        }

        body
        {
            display: flex;
            justify-content: center;
            align-items: center;
        }
    </style>
</head>

<body>
    This is text!
</body>

Подробнее см. в статье.

Ответ 8

Чтобы центрировать выравнивание div, вы должны применить стиль

div 
{
    margin: 0 auto;
}

Ответ 9

<div align="center">

или

<div style="margin: 0 auto;">

Ответ 10

Это проверено и работает во всех браузерах.

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

        <style type="text/css">
            html, body { margin: 0; padding: 0; height: 100%; }

            #outer {height: 100%; overflow: hidden; position: relative; width: 100%;}
            #outer[id] {display: table; position: static;}

            #middle {position: absolute; top: 50%; width: 100%; text-align: center;}
            #middle[id] {display: table-cell; vertical-align: middle; position: static;}

            #inner {position: relative; top: -50%; text-align: left;}
            #inner {margin-left: auto; margin-right: auto;}
            #inner {width: 300px; } /* this width should be the width of the box you want centered */
        </style>
    </head>
    <body>

        <div id="outer">
            <div id="middle">
                <div id="inner">
                    centered
                </div>
            </div>
        </div>

    </body>
</html>

Ответ 11

Это отличный отзывчивый подход к Абсолютное центрирование

Совместимость с браузером: Chrome, Firefox, Safari, Mobile Safari, IE8-10.

Преимущества:

  • Кросс-браузер (включая IE8-10)
  • Никакой специальной разметки, минимальных стилей
  • Отзывчивая с процентами и min-/max -
  • Используйте один класс для центра любого контента
  • Центрируется независимо от заполнения (без выбора размера окна!)
  • Блоки могут быть легко изменены
  • Отлично работает на изображениях

Предостережение:

  • Высота должна быть объявлена ​​(см. Высота переменной)
  • Рекомендуем переполнение настроек: автоматически, чтобы предотвратить переполнение контента (см. Переполнение)
  • Не работает на Windows Phone

Ответ 12

Я не думаю, что вы можете это сделать. Вы можете быть в середине документа, однако вы не знаете макет панели инструментов или размер элементов управления браузера. Таким образом, вы можете сосредоточиться в документе, но не в середине окна браузера.

Ответ 13

Если я понимаю вас правильно, вы хотите центрировать элемент вертикально и горизонтально на основе окна, а не документа. Это может быть немного больно, но вы можете использовать javascript для определения размера окна, положения прокрутки, размера элемента и т.д., А затем поместите элемент в центр окна (а не документ, а окно просмотра).

Если вы хотите, чтобы этот элемент оставался в расписании окна при прокрутке, вам нужно было бы зафиксировать событие прокрутки и отрегулировать позицию.

Код для этого отличается от одного браузера к другому.

Ответ 14

Вы можете написать JavaScript, чтобы найти высоту и ширину окна и сделать его до половины, чтобы найти центральную точку.

Добавьте материал внутри тега и установите верхнюю часть div и слева от javascript к координатам центра, которые вы нашли, используя Javascript.

Сообщите мне, нужен ли вам код.

Ответ 15

Надеюсь, это поможет. Trick - использовать абсолютное позиционирование и настраивать верхний и левый столбцы. Конечно, "мертвый центр" будет зависеть от размера объекта /div, который вы встраиваете, поэтому вам нужно будет выполнить определенную работу. Для окна входа в систему я использовал следующее: он также имеет некоторую безопасность с максимальной шириной и максимальной высотой, которая может быть действительно полезной для вас в вашем примере. Настройте значения ниже для ваших требований.

div#wrapper {
    border: 0;
    width: 65%;
    text-align: left;
    position: absolute;
    top:  20%;
    left: 18%;
    height: 50%;
    min-width: 600px;
    max-width: 800px;
}

Ответ 16

вы можете центрировать любой объект в окне просмотра, вот пример использования jquery

$(document).ready(function()
{


posicionar("#midiv");
$(window).on("resize", function() {
    posicionar("#midiv");   
});

function posicionar(elemento){
    var altoDocumento = $(window).height();//alto
    var anchoDocumento = $(window).width();
    //console.log(altoDocumento);
    //console.log(anchoDocumento);
    var centroXDocumento = anchoDocumento / 2;
    var centroYDocumento = altoDocumento / 2;
    //console.log(centroXDocumemnto,centroYDocumento);
    var altoElemento = $(elemento).outerHeight(true);//ancho real del elemento
    var anchoElemento = $(elemento).outerWidth(true);//alto 

    var centroXElemento = anchoElemento / 2;// centro x del elemento
    var centroYElemento = altoElemento / 2; // centro y del elemento

    var posicionXElemento = centroXDocumento - centroXElemento;
    var posicionYElemento = centroYDocumento - centroYElemento;

    $(elemento).css("position","absolute");
    $(elemento).css("top", posicionYElemento);
    $(elemento).css("left", posicionXElemento);
}
});

html

<div id="midiv"></div>

Примечание: вы должны выполнить функцию onDomReady и при изменении размера окна.

здесь находится jsfiddle http://jsfiddle.net/geomorillo/v82x6/

Ответ 17

Рабочее решение.

<html>
          <head>
            <style type="text/css">
                html
                {
                    width: 100%;
                    height: 100%;
                }

                body
                {
                    display: flex;
                    justify-content: center;
                    align-items: center;
                }
            </style>
        </head>

        <body>
            Center aligned text.(horizontal and vertical side)
        </body>
</html>