Почему, когда я добавляю xmlns в мой тип документа, ширина моих текстовых полей изменяется? - PullRequest
0 голосов
/ 26 августа 2011
<!DOCTYPE html  xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">

Когда я добавил xmlns, текстовые поля стали короче. Это портит все мои стили для моих полей ввода. Почему?

Примечание: я вижу, что в моей консоли разработчика это было добавлено к текстовым полям:

input:not([type="image"]), textarea {
box-sizing: border-box;
}

Что это и как от этого избавиться?

Ответы [ 3 ]

2 голосов
/ 26 августа 2011

Атрибуты xmlns идут в начале тега <html>, а не в типе документа.

Если после <DOCTYPE html и пробела следующий символ не является >, то следующие шесть символов должны быть либо PUBLIC, либо SYSTEM без учета регистра, иначе страница будет обрабатываться в режиме причуд , Ваш тип документа вызывает причуды. Снимите атрибуты xmlns, и тип документа вызовет стандартный режим.

Подробнее см. http://dev.w3.org/html5/spec/tokenization.html#after-doctype-name-state.

0 голосов
/ 26 августа 2011

Чтобы переопределить то, что устанавливается:

input:not([type="image"]), textarea {
    box-sizing: content-box !important;
}

Свойство размера блока по умолчанию: content-box. Когда вы используете xmlns, некоторые браузеры могут изменить блочную модель, так как считают, что так и должно быть. Это, наверное, хорошая вещь. Для мест это вызывает проблемы, просто переопределите их стили.

Редактировать: Я только что заметил, что сделал @Alohci, то есть, вы ставите xmlns на тег doctype вместо тега html. Вы можете исправить это, если хотите, но я бы порекомендовал переместить атрибут на html и посмотреть, сохраняет ли он вещи такими, какими они должны быть.

0 голосов
/ 26 августа 2011

Тег doctype сообщает браузеру, какой тип HTML вы хотите использовать. Каждый браузер будет иметь значение по умолчанию, которое он использует, когда он не указан. Стили отображения по умолчанию для разных типов содержимого HTML будут отличаться. Поэтому, когда вы указали тип документа, вы, вероятно, выбрали тот, который отличается от используемого по умолчанию браузером.

Что потребует от вас указания некоторых стилей, чтобы ваш документ выглядел так, как вы ожидаете во всех браузерах.

...