2012-05-31 3 views
1

Я заметил, что если я просмотрю страницу с более широким разрешением, содержимое раздела выравнивается вправо, а не центрируется.CSS центрирование не работает с автоматическим переполнением поля и переполнением

Я использую

margin: 0 auto; 
width: 998px; 
overflow: hidden; 

кажется, есть эта ошибка, по крайней мере, в Safari, Firefox и Chrome. Я попытался отключить overflow: hidden, и он избавился от ошибки, но испортил мои поплавки внутри контента.

Вы можете увидеть пример на странице живого здесь: http://autouncle.dk/da/brugte-biler/Kia или http://autouncle.dk/da/brugte-biler/Ford (вы должны увидеть его, по меньшей мере 1500px широкоэкранный, чтобы увидеть ошибку).

Любые идеи о том, что может вызвать эту ошибку и какие возможные решения?

ответ

1

О причине проблемы: это связанно с page-title элемента вашего заголовка:

#header-outer элемент содержит некоторые плавали элементы, но вы забыли поляну, поэтому смещение слева от основного раздела вашего сайта начинается где заканчивается page-title. (вы можете убедиться в этом, скрывая page-title элемент — при установке display: none страница правильно по центру)

enter image description here

Поэтому добавление

body#basic_page #header-outer { 
    overflow: hidden; 
} 

вы решить проблему

Как sidenote настоятельно избегает пустого div только для целей очистки: есть более чистые методы, которые не требуют дополнительных m arkup, как easyclearing

+0

@Cristian, вы пробовали некоторые из этих решений? – fcalderan

+0

@ Калдер, спасибо за ответ, кажется, что это преступник. Тем не менее, скрытие переполнения на # header-external или inner будет путаться с кнопками Facebook, поскольку они требуют, чтобы переполнение отображалось для отображения наложений. – Cristian

+0

Я решил оставить свойства переполнения в том виде, в каком они есть, и сделать маркер 0 элемента # title-title, вызывающего проблемы с поплавком. Спасибо за подробное объяснение того, что происходит. Делает большой смысл. – Cristian

0

Удалить

overflow:hidden 

от div#content и поставить его содержимое в нем дополнительную <div> который имеет

width:100%; 
overflow:hidden; 

Это решает проблему для меня.

+0

... он написал, я пытался отключить переполнение: скрыто ... – Sajmon

1

Ваше решение является удаление overflow: hidden

Чтобы зафиксировать поплавок ошибку на втором примере вы дали попробовать использовать 100% ширины:

body#basic_page.brands_controller #content .text_info { 
    overflow: hidden; 
    font-size: 12px; 
    width: 100%; /* new rule */ 
} 
+0

Это работает, вы знаете почему? Не может ли быть той же самой причины из ответа @Calderan, что есть неочищенные поплавки из # header-inner div? – Cristian

+0

Спасибо за ваш ответ, вы предоставили действительное решение, но ответ @Calderan привел меня к более ненавязчивому решению. ура! – Cristian

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