Pull to refresh

Comments 21

Как найду какой-либо неоткрытый хак с min-width — обязательно.
UFO just landed and posted this here
Да, меня тоже немного напрягло что в CSS 2.1 всё не так досконально прописано и даже IE умудряется выдать хороший результат.
Table-layout: fixed; конечно пуленепробиваемый вариант, но слишком скучный, с ним особо непоэкспериментируешь :)
Кстати, если в твоём примере убрать max-width и посмотреть на вариант с шириной 10 и 5 % то правый блок себя вообще ведёт непонятно как.
UFO just landed and posted this here
Тут точно замешана MCW, но ещё и каким-то странным образом влияет фактическая ширина ячейки. Даже когда не хватает места браузер всё-равно пытается как-то укоплектовать контент и тут как раз видно что фактическая ширина левой ячейки тоже влияет на увеличение правой.
jsfiddle.net/CyberAP/NUHTk/17/
Сделал пример со сравнением фактических процентов и тех, что получаются в непомещающихся ячейках, плюс MCW для примера. Ясности всё-равно нет :)
jsfiddle.net/CyberAP/NUHTk/21/
Пока что главная особенность — это процентные величины. Если задать размеры в пикселях то такого эффекта уже не будет.
UFO just landed and posted this here
Я вроде как разгадал механизм работы. Если не задавать никакой ширины то ячейки примут оптимальную ширину (OCW), то есть весь инлайн идёт в одну строчку, но это не MCW, который максмально компактно ужимает контент. Факт в том что процентная ширина высчитывается исходя не из размеров родителя, а из OCW с какой-то специальной формулой, насколько я это вижу.
Ширина 50% у одной ячейки или 0% у обеих = 100% OCW.
Ширина 0% и более у одной >= MCW.
Ширина ниже 50% увеличивает ширину соседней ячейки на ровно такое же количество которое убавили от 50, при этом надо учитывать что берётся процент от OCW. Допустим левая 40%, значит правая теперь 60% OCW, хотя это и не прописано в её свойствах. Вопрос лишь в формуле рассчёта этого процента, потому что он явно не такой простой, до 80% рост вообще никакой, а после сразу очень резкий. И вот как только мнимая обёртка display: table; по ширине достигает ширины контейнера эти ячейки начинают вести себя как положено.
И это только вариант когда я изменяю ширину одной ячейки.
Можешь проверить, поставь у обеих ячеек ширину 2%, их ширина никак не зависит от контейнера. А потом обе ширины можно увеличивать вполть до 50% пока обе ячейки не примут размеры OCW. После 50% произойдёт магия, получается что левая ячейка растёт и так, а правая добавляет ей в размерах, исходя из правила выше. То есть тот кто левее и будет расти в первую очередь, если размеры мнимой табличной обёртки превышают размеры контейнера.
UFO just landed and posted this here
Про флоат я ошибся, потом уже поправил коммент :) Там не важно флоат или нет, главное чтобы не table-cell;
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
Может вы путаете выход контейнера за рамки, а не ячейки? Там у контейнера стоит фиксированная ширина, а jsfiddle вроде как на ширину экрана подгоняет свои окна и контейнер туда мог просто не поместиться.
Sign up to leave a comment.

Articles