2013-10-07 5 views

ответ

1

Новый ответ

Основываясь на том, что вы мне дали, это необходимый код CSS, используя старый верный позиции абсолютного метода.

#highlight_lose { 
    height: 300px; 
    width: 100%; 
    position: absolute; 
    top: 50%; 
    margin-top: -150px; 
} 
div.sad_smileyface { 
    width: 300px; 
    height: 100%; 
    position: relative; 
    margin: 0 auto; 
    ... 
    [your graphic styling code here] 
} 

Следует отметить, что я устанавливаю ширину содержащего div на 100% и центрирует ее по вертикали. Затем я центрировал дочерний элемент smileyface div горизонтально. Это не требуется, просто метод, который я сделал это. Если высота изменяется, отрегулируйте #highlight_lose, если изменения ширины, обновления sad_smileyface

Оригинал ответа

Если высота составляет по меньшей мере decalred (который у вас есть), установите родительский контейнер как position: relative (просто чтобы убедиться), вы должны иметь возможность использовать margin: auto; на вашем дочернем div. Это должно работать в кросс-браузере с IE 6.

Другие варианты включают в себя выполнение вашего метода, задав допустимую границу с отрицательной половиной высоты и ширины. margin: -275px -275px;.

Кроме того, модель Flexbox от CSS3 также исправит это, но сильно префикс и не поддерживается везде.

+0

вот что heppened после того как я попытался это: http://jsfiddle.net/uqcLn/ 32/ – alonblack

+0

Это сработало для меня, есть ли способ упростить ваш jsfiddle. Со всеми этими div и эффектами трудно найти необходимые div. – CP510

+0

вот он: http://jsfiddle.net/uqcLn/35/ – alonblack

-1

http://jsfiddle.net/uqcLn/34/

Вот новая обновленная версия, вы можете также установить маржу вместо преобразования для старых браузеров

+0

Пожалуйста, прикрепите код в ответе –

+0

Не работал для меня вообще. Смайлик по-прежнему находится в углу. – CP510

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