[Перевод] Вчера CSS исполнилось 20 лет. Интервью с Хоконом Виумом Ли (Часть 2)

Продолжение. Первая часть была опубликована вчера.Почему вы предпочли блочную модель, в которой отступы, границы и поля добавляются к заданной ширине, а не модель box-sizing: border-box из IE5?

Есть подходящие случаи использования для обеих моделей. Если вы хотите, чтобы изображение растягивалось, чтобы заполнить блок — оригинальная модель CSS подходит лучше. А если надо, чтобы поля и границы не выходили за пределы определённой области, лучше модель IE5. Лично я думаю, что случаев, для которых лучше подходит стандартная модель CSS, больше, но некоторые люди, которых я очень уважаю, считают иначе. Этот конфликт был изящно разрешён добавлением свойства box-sizing, которое сейчас поддерживают все браузеры.

Я никогда не любил абсолютное позиционирование. Я не прав? Как оно появилось в спецификации?

Ваш вопрос возвращает меня в 1996 год, когда по этому поводу шли жаркие дебаты. В двух словах: Microsoft предлагала ввести абсолютное позиционирование в черновике CSS Regions: Absolute Positioning and Z-Ordering (к сожалению, обсуждение проходило в закрытом списке рассылки W3C, вот ближайший по смыслу общедоступный документ). У некоторых членов сформированной недавно рабочей группы по CSS возникли сомнения, и Берт и я написали упрощенное встречное предложение. В нём мы предлагали избавиться от свойства position (и использовать вместо него display) и описали только относительно позиционирование (что давало нам время хорошенько продумать позиционирование абсолютное). Тем не менее, Microsoft уже реализовала собственное предложение и не хотела убирать эту функцию. В конце концов единственными существенными изменениями были добавление свойств right и bottom в дополнение к left и top и position: fixed. В таком виде спецификация стала частью стандарта CSS2.

Как и вам, мне никогда не было приятно работать с абсолютным позиционированием. Тем не менее, оно нашло своё место в веб-разработке, и иногда я его использую, чтобы сделать то, что по-другому сделать трудно или невозможно.Иногда мне приходится слышать, что неправильно использовать плавающие блоки для вёрстки, так как они для этого «не предназначены» — они были задуманы только чтобы задавать обтекание картинок текстом. Разве это имеет значение, если такой метод верстки хорошо работает?

Обтекание картинок текстом — одна из базовых техник вёрстки, так что плавающие блоки безусловно могут использоваться в ней. Одно из направлений, в котором, по-моему должен развиваться стандарт CSS — разбитые на страницы презентации. Когда ваш контент явным образом разбит на страницы, плавающие блокаи становятся ещё более важными, так как можно привязывать их к верху и низу страницы.

Если бы у вас была волшебная палочка, какую часть CSS вы бы удалили бесследно, и что бы вы наоборот, добавили повсеместно?

Я бы выбросил любой код, привязанный к конкретным версиям браузеров, вроде