Позднее Ctrl + ↑

Абсолютно относительно

В ЦССе постоянно приходится делать абсолютно позиционированные элементы внутри относительно позиционированных, чтобы «привязаться» к какой-то плавающей точке в нормал-флоу. Это тупизм, потому что это вынуждает в разметке добавлять лишние элементы. Например, нам надо пририсовать к слову значок суффикса, который у нас есть в виде гифовой картинки. Вот что хочется писать в разметке:

слов<img class="suffix" src="i/suffix.gif" />ечко

Но что написать в стилях?

.suffix {
  position: ???
  width: 1.5em; /* на три буквы чтоб */
  bottom: -1em;
}

Относительно позиционированный элемент занимает собой места в нормал-флоу столько же, сколько непозиционированный, а потом может быть сдвинут относительно этого места так, что нормал-флоу этого не заметит. В нашем случае это не подходит, потому что будет разрыв между «слов» и «ечко» шириной в картинку.

Абсолютно позиционированный элемент не участвует в нормал-флоу и позиционируется относительно ближайшего позиционированного предка, либо относительно границ браузера, если позиционированных предков нет. Это нам тоже не подходит, так как нам надо, чтобы позиционировалась картинка именно относительно той точки в слове, куда мы её поставили.

Поэтому всё время приходится делать так:

слов<span class="suffix"><img src="i/suffix.gif" /></span>ечко
.suffix { position: relative }
.suffix img {
  position: absolute;
  width: 1em;
  bottom: -1em;
}

Спан, конечно, красивее было бы закрыть после «ечк», но это не про семантику заметка. Так вот, весь этот спан, получается, существует только для того, чтобы задать «систему координат» для картинки. Но ведь она уже задана тем, куда вы воткнули эту картинку в разметке!

Так почему было не придумать какой-нибудь position: anchored, который бы участвовал в нормал-флоу, но с точки зрения нормал-флоу имел бы размеры 0 на 0? Можно было бы развить идею, введя anchored-x и anchored-y, чтобы, допустим, сделать сноски на поля, висящие на уровне того места, откуда на них ссылаются. Атрибут position: anchored-y означал бы, что left / right для этого элемента имеют смысл по принципу position: absolute; а top / bottom — по принципу position: anchored, т. е. относительно точки, где элемент встретился в разметке. Тогда текст, снесённый на поля, можно было бы размечать так:

Пушкин писал<sup>1</sup><div class="sidenote"><sup>1</sup> В «Капитанской дочке»</div>: «Береги честь смолоду».
.sidenote {
  position: anchored-y;
  left: 110%; /* чтобы отступить от самого текста 10% его ширины */
  top: 0;
}

Почему создатели стандартов придумывают всякую хрень (вроде box-shadow или анимации) раньше, чем решают базовые задачи вёрстки?

Добавлено несколько позже: Оказывается, я ничего не понимаю в вёрстке. Спасибо комментаторам за прояснение ситуации.

Конкурс уважаемых советчиков

Пользуясь случаем (заключающемся в устроении конкурса) пиарю конкурс:

Наше жюри — самое объективное и беспристрастное.

Колэмбия

На улице Энгельса:

Colambia

То есть вот это же какой-то дизайнер нарисовал в своём Кореле. Как его на работу приняли, как у него эту работу приняли — этого никто не знает. А может хозяин магазина даже не заметил?

Нудлс-бар

В заведении «Нудлс-бар» рядом с центральным «Альфа-банком» к драникам принесли майонез вместо сметаны (сметана кончилась, но при этом у меня не переспросили, и не предупредили, что это майонез, то есть ошибка обнаружилась лишь органолептически), а в глясе сначала решили не класть мороженое (но потом положили), и при этом сочли достаточным ограничиться 10-процентной скидкой, да ещё и сделали одолжение, не включив обслуживание в меню (официантка обратила моё внимание на это, как на проявление заведением сногсшибательного героизма).

Совершенно ясно, что любое заведение, где в счёте есть обслуживание, должно бойкотироваться. По этому принципу, например, я в своё время вычеркнул из списка «Аль Капоне» (так, кажется, называется?) на перекрёстке Братьев Кашириных и Кирова.

Течь

Самая непростительная форма издевательства над английским на почве необразованности — это когда tech читают как «течь». Хочется немедленно ввести за это смертную казнь. Течь — это когда течёт, где ваши уши-то? Вентиль старый, пропускает воду помаленьку — течь. А tech — это тек!

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

Правильные книги

Роберт Брингхерст (Robert Bringhurst) учит нас типографике. Он зануден и порой невыносимо медлителен, но сильно повышает разрешение. Интерлиньяж, пробелы, капитель — после Брингхерста видишь эти вещи существенно лучше.

Артемий Лебедев учит нас делать сайты. Он остроумен и уверен в себе, и, главное, он действительно откуда-то знает, как надо. Здравый смысл — это главный инструмент, который удаётся освоить внимательному и критичному читателю Лебедева.

Эдвард Тафти (Edward Tufte) учит нас представлению информации. Он великолепен, бесконечно интересен везде кроме скульптур, полностью промывает мозги и делает любого внимательного читателя вдесятеро более крутым дизайнером. Таблицы, графики и диаграммы, карты и схемы — после Тафти можешь делать всё это бесконечно понятнее и чище.

Но мне этого мало: я хочу повышать разрешение и в других областях. Я зеваю, глядя на дизайнерские книги вроде сборников «Лучшие логотипы XX века», фотоальбомов «1000 вывесок, набранных Гельветикой» или трогательных толстых изданий об истории творческих достижений и неудач какого-нибудь именитого дизайнера. Наверное, я очень ленивый, а Тафти избаловал меня своей системностью и умением представить выжимку на блюдечке с голубой каёмочкой. Видимо, мне нужно учиться собирать информацию по крупицам, искать ответы на вопросы самостоятельно.

Но может быть вы знаете другие книги тафтианского уровня полезности и применимости на практике? Может быть есть суперкнига, которая учит нас делать фирменные стили и логотипы? Проектировать системы навигации? Поделитесь, пожалуйста, своими открытиями.

Обсуждаем трудности перехода с Александром Плющевым

В третьем выпуске «говорильного подкаста» я расспрашиваю Александра Плющева о том, как он плакал, кололся, но всё-таки переходил на Мак. Я специально старался задавать вопросы так, чтобы ему было, что поругать: недостатка проэпловской пропаганды, кажется, никто не испытывает.

Среди затронутых тем:

  • Александр рассказывает о своём опыте эпизодического общения с Маками в «Ньюсвике». Я вспоминаю, как он написал мне, что у него взорвался мозг, когда ему летом подарили Макбук.
  • Первые ощущения, что мешало жить в начале. Непонятые Айтюнс, Айфото и Аймуви. Как Александр хотел сделать фильм про свой пылесос, но Аймуви ему не дал. Айтюнс и вся эта инфраструктура может быть и хорошо работает там, но ведь мы-то здесь, и Маки здесь продаются вполне официально.
  • Среди преимуществ Макбука яркий экран и офигенный звук. Я делаю несколько попыток добиться от Александра ответа на вопрос: почему бы тогда не поставить Винду, раз софт не нравится? Ещё одно преимущество — Макбук лучше и быстрее ловит вайфай. Если бы сегодня не было ноутбука, Александр купил бы себе Мак. Нравится тачпад, особенно двухпальцевый скроллинг. Очень нравится клавиатура по тактильным ощущениям. Вопрос о том, почему бы, всё-таки, не поставить Виндоус, остаётся без ответа.
  • Александр объясняет про меня всё (почему я перешёл на Мак, и почему он мне нравится). Всё неправда!
  • Плюсы и минусы Мака, которые мы бы назвали третьему человеку, спроси он у нас совета. Офис плохой. Для дома всё есть из коробки. С принтерами дружит хорошо. Адиум плохой (но в этом есть польза: уход от аськозависимости). Единая почта на всех компьютерах совершенно не противоречит использованию нормального почтового клиента вместо веб-интерфейса, объясняю я.
  • О религиозности многих пользователей Эпла. «Любая секта старается вовлечь новых членов». Пытаемся разобраться, как соотносится ощущение «избранности» и «особенности», которое для многих ассоциируется в продуктами Эпла, с тем фактом, что Айфоны и Айподы есть у всех. Александр для индивидуализации использует совсем другие геджеты, например телефон-бритву. Тут стоит посмотреть видеодиалог: суперкепка, суперфутболка, супертелефон. И вот ещё ролик про супертачку до кучи.

Скачать выпуск можно на Арподе (или по прямой ссылке), там же можно подписаться на подкаст. Разговариваем около 50 минут.

Иллюстратор и Джаваскрипт

Любой человек с мозгом программиста противится рутинной работе. Он понимает в душе, что делает то, что должна делать машина. Достаточно ведь написать код один раз и завернуть в цикл.

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

Иногда нужно табличные данные вставить и покрасить каждое значение оттенком, зависящим от этого значения. Иногда нужно во всей таблице взять и во всех значения после запятой оставить ровно два знака, набрав их шрифтом чуть меньше. Иногда нужно классы чисел разделить полупробелами. Иногда придуманный удачный формат для каких-то данных хочется опробовать для других данных (например, таблицеграфик каких-то спортивных результатов перестроить для другого матча или заплыва).

Всё это довольно муторная работа, которую хочется автоматизировать.

Так вот, кто-нибудь знает, как это сделать лучше всего? Кажется, адобовские программы как-то поддерживают Джаваскрипт. Как этим воспользоваться? Где задокументированна их объектная модель? Есть ли там консольный режим? Типа, пишешь команду — она сразу же выполняется по энтеру.

Хочется строить график в Иллюстраторе так:

if (line = document.layerNamed ('rus medals')) line.clear ()
else line = document.layers.add ('rus medals')
line.select ()
document.pen (0, 0)
for (i = 0; i <= 16; ++ i) {
  document.pen (i * 10, -medalsByCountryAndDate ('RUS', i + 12))
}

Ну или что-то вроде того. То есть пишем, что хотим от машины, а не делаем это руками. Я чувствую, как вам хочется придраться к этому коду или придумать свой, но это никому не интересная хрень. Смысл в другом: захотели построить график Новергии — бац, построили. Решили, что 10 пикселей плохое расстояние — исправили на 12, перестроили. Захотели поставить восклицательный знак на графике каждый раз, когда его поднимает золотая медаль — дописали строчку. Захотели воткнуть грустный норвежский флаг везде, где проиграли золото Бьёрндалену — дописали ещё пару строчек.

Кто так умеет, научите меня, а?

Нужна техпомощь

У меня есть некоммерческий проект, который я всё никак не могу доделать. Проблема там чисто техническая: нужно кое-что напрограммить, что мне напрограммить самому, кажется, слабо. Дизайн давно есть, весь материал тоже. Просто без небольшой технической связки всё это не имеет смысла.

Мне нужен человек, который по техзаданию, сформулированному в свободной форме, напишет за выходные десяток-другой (как я думаю) килобайтов ПХП-кода, даже не предполагая, что ему за это что-то дадут, а просто из любви к искусству. А если потом окажется, что всё работает не совсем так, как предполагалось, то за следующие выходные устранит недочёты. Имя героя навсегда войдёт на страницу, рассказывающую о проекте на моём сайте (которая появится в день запуска проекта).

Если вы вызоветесь помочь, это никак вас не обяжет действительно помочь: после того, как вы услышите задачу, вы легко сможете передумать. Единственное, о чём я прошу — это конфиденциальность. То есть, короче, не болтать о проекте до его запуска.

Мне неинтересно знать о том, что вам это неинтересно; интересно знать только если интересно.

Добавлено через несколько часов: Большое спасибо всем откликнувшимся! С моей стороны было бы нечестно загружать задачей сразу всех, так что я буду связываться с вами по очереди, пока с кем-нибудь не договоримся.

Ранее Ctrl + ↓