Центрирование элемента в элементе (jQuery)

<div class="preview">
  <span class="center">This will be centered</div>
</div>

Предварительный просмотр зафиксировал ширину (120x120), но промежуток может содержать что-либо (изображение, текст). Как я центрирую его вертикально и горизонтально использование jQuery? Я искал некоторые отрывки, но они все центрируют элементы в 'теле' не другой элемент. Я хотел бы избежать, используют 'плагин' для этого, если это возможно.

Большое спасибо!

10
задан 3zzy 23 December 2009 в 17:25
поделиться

3 ответа

Так как вы не возражаете против использования jQuery, вы можете использовать Center Element Plugin

Это так же просто, как и сделать:

$(".preview").center();
4
ответ дан 3 December 2019 в 16:52
поделиться

Вы можете использовать решение только для CSS (без IE)

Это будет по центру
использование display: block также будет работать, но только для горизонтального выравнивания, для вертикального выравнивания вам потребуется либо эмулировать таблицу в соответствии с приведенным выше кодом, либо использовать JavaScript.

2
ответ дан 3 December 2019 в 16:52
поделиться

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

http://docs.jquery.com/CSS/css#properties

  $(.center).css({'display' : 'block', 'text-align' : 'center'});

В зависимости от элемента, вы можете выровнять его по центру без необходимости использовать text-align:center, если вы установите значение поля в

margin: 0 auto 0 auto

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

Для того, чтобы отцентровать элемент по вертикали в jquery, вы можете использовать этот

http://cool-javascripts.com/jquery/vertical-alignment-of-contents-inside-an-element-using-jquery.html

    function ($) {
    $.fn.vAlign = function(container) {
        return this.each(function(i){
    if(container == null) {
       container = 'div';
    }
    var paddingPx = 10; //change this value as you need (It is the extra height for the parent element)
    $(this).html("<" + container + ">" + $(this).html() + "</" + container + ">");
    var el = $(this).children(container + ":first");
    var elh = $(el).height(); //new element height
    var ph = $(this).height(); //parent height
    if(elh > ph) { //if new element height is larger apply this to parent
        $(this).height(elh + paddingPx);
        ph = elh + paddingPx;
    }
    var nh = (ph - elh) / 2; //new margin to apply
    $(el).css('margin-top', nh);
        });
     };
})(jQuery);
3
ответ дан 3 December 2019 в 16:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: