Выравнивание по вертикали не работает с XHTML 1.0 Переходный тип документа? - PullRequest
2 голосов
/ 01 апреля 2011

Хорошо, так что я долго бездельничал, пытаясь отцентрировать изображение по вертикали внутри div, используя вертикальное выравнивание: среднее (при этом также центрируя его горизонтально с выравниванием текста: центр), и я ломал голову, пытаясь вычислитьпочему в мире это не сработало.

.container{
    height:200px;
    width:200px;
    text-align:center;
    line-height:200px;
    }

    .image{
    vertical-align:middle;
    }

Мне показалось, что должно, но не получилось, оказалось, что то, что решило проблему, изменило тип документа с

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 

до

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

Когда я это делаю, изображение центрируется.

Как получилось?У меня сложилось впечатление, что строгий тип документа допускает меньше атрибутов, чем переходный, не так ли?Кажется, я не могу найти какую-либо информацию о вертикальном выравнивании и XHTML 1.0 Transitional, когда речь идет о строгом, однако я нахожу всевозможную информацию о нем, не допускающую того и этого, поэтому я немного запутался.Я бы предпочел не использовать Strict для этого конкретного сайта, но мне нужно использовать вертикальное выравнивание.

Кто-нибудь может пролить свет на это, пожалуйста?Спасибо

1 Ответ

0 голосов
/ 01 апреля 2011

Тип документа не влияет на то, что делает CSS. Тем не менее, второй использованный вами тип документа запускает режим причуд, в котором вы не хотите участвовать, поскольку он использует неправильную блочную модель. Новые веб-страницы также не должны использовать переходные типы документов. Всегда используйте строгий или более новый тип документа: <!doctype html>

...