2013-07-05 3 views
1

я пытаюсь горизонтально выровнять элемент (<div id='content'>) в пределах DIV (<div id='container'>)CSS: Горизонтальный Качающаяся элемент внутри DIV

content может быть уже или шире, чем ширина контейнера. Мне нужно, чтобы это было всегда центрировано.

Как вы это используете с помощью CSS3?

Смотрите jsFiddle: http://jsfiddle.net/ja26Z/

+0

Посмотрите на [этот вопрос] (http://stackoverflow.com/questions/114543/how-to-center-a-div-in-a-div-horizontally ? rq = 1) и посмотреть, помогает ли это. :) – icedwater

ответ

2

Или вы можете разместить #content DIV в другой DIV:

http://jsfiddle.net/ja26Z/6/

+0

Я просто понял, что моя ширина контейнера также может измениться. Но это лучший ответ на этот вопрос. – Aximili

+0

так просто, так эффективно. хорошая вещь :) – lukeocom

2

вы в основном было это, просто орфографическую ошибку. Обновление CSS для американской орфографии, text-align:center;

обновленный скрипку http://jsfiddle.net/ja26Z/3/

+0

Ах спасибо, интересно, почему это не сработало. Но это не решает проблему, когда контент шире контейнера. – Aximili

+0

Да, это сложная проблема, которую можно решить только с помощью CSS. Я заинтересован в том, чтобы увидеть решение, если вы его найдете. Хотя, скорее всего, быстрее написать сценарий ... – lukeocom

1

Как об этом: http://jsfiddle.net/wVGrN/3/

#content всегда будет выровнен по центру #container даже когда он шире, чем контейнер.

HTML

<div id='container'> 
    <div id='content'></div> 
</div> 

CSS

#container { 
    position: relative; top: 10px; left: 100px; width: 100px; height: 100px; border: 3px solid #666; 
    text-align: center; 
} 
#content { 
    display: inline-block; 
    height: 94px; 
    border: 3px solid #99ccff; 
    margin: 0 auto; 
    position: absolute; 
    left: 50%; 
} 

Тестирование сценария

/* This script here is only to demonstrate content with various width, it won't be used in production */ 
$(function(){ 
    ResizeContent(); 
}); 
function ResizeContent(){ 
    var width = Math.floor((Math.random()*150)+20); 
    var marginLeft = -width/2; 
    var borderWidth = 3; 
    $('#content').width(width); 
    $('#content').css('margin-left', marginLeft-borderWidth); 
    setTimeout(ResizeContent, 1000); 
} 
Смежные вопросы