Как определяются ширины столбцов в Excel — Office

Twitter LinkedIn Facebook Адрес электронной почты

  • Статья
  • Чтение занимает 3 мин
  • Применяется к:
    Excel 2007, Excel 2000

Аннотация

Ширина стандартного столбца в Microsoft Excel 2000 — 8,43 символа; Однако фактическая ширина, отображаемая на экране, зависит от ширины шрифта, определенного для стиля «Обычный» книги. Изменение шрифта по умолчанию также изменяет ширину столбца. Это происходит из-за того, как Excel хранит сведения о ширине столбца для отдельных шрифтов. В этой статье описывается, как определяются ширины столбцов.

Excel начинается с ширины по умолчанию 8 символов и преобразует ее в заданное количество пикселей в зависимости от шрифта обычного стиля. Затем оно округляет это число до ближайшего кратного 8 пикселей, чтобы ускорить прокрутку по столбцам и строкам. Ширина пикселей хранится внутри Excel для размещения данных на экране. Число, отображаемое в диалоговом окне «Ширина столбца», — это ширина пикселя, повторно заданная в символьные единицы (на основе обычного шрифта) для отображения.

Ширина столбца 8,43 означает, что 8,43 символа шрифта по умолчанию помещаются в ячейку. Шрифт по умолчанию для листа — это шрифт, назначенный стилю «Обычный». В Excel 2000 используется фабриальный шрифт arial 10 по умолчанию.

Примечание.

Изменение DPI принтера может повлиять на метрики шрифта и изменить ширину столбца.

В Microsoft Office Excel 2007 используется тема по умолчанию с именем Office. Эта тема по умолчанию имеет Cambria в качестве шрифта заголовка по умолчанию и Calibri 11 в качестве основного шрифта по умолчанию.

Чтобы определить шрифт по умолчанию на листе, выполните следующие действия.

  1. В меню «Формат» выберите пункт «Стиль».
  2. Прочитайте шрифт, указанный рядом с флажком «Шрифт».

Чтобы изменить шрифт по умолчанию, выполните следующие действия.

  1. В меню «Формат» выберите пункт «Стиль».
  2. Выберите команду «Изменить».
  3. На вкладке «Шрифт» выберите нужный шрифт, стиль и размер.
  4. Нажмите кнопку ОК.

Чтобы изменить шрифт по умолчанию в Excel 2007, выполните следующие действия.

  1. На вкладке «Разметка страницы» в группе «Темы » щелкните » Шрифты».
  2. Нажмите кнопку «Создать шрифты темы».
  3. В полях «Шрифт заголовка » и «Основной шрифт» выберите нужные шрифты. для использования.
  4. В поле «Именованный
    » введите Office , чтобы заменить шаблон по умолчанию.
  5. Щелкните Сохранить.

Если шрифт по умолчанию является непропорциональной (фиксированной шириной), например Courier, то 8,43 символа любого типа (цифры или буквы) помещаются в ячейку с шириной столбца 8,43, так как все символы Courier имеют одну и ту же ширину. Если шрифт является пропорциональным шрифтом, например Arial, 8,43 целых числа (например, 0, 1, 2 и т. д.) помещаются в ячейку с шириной столбца 8,43. Это связано с тем, что числа имеют фиксированное пространство с большинством пропорциональных шрифтов. Тем не менее, поскольку буквы не имеют фиксированного пробела с пропорциональными шрифтами, вместит больше символов «i» и меньше символов «w».

При изменении ширины столбца на дробное число ширина столбца может иметь другое число в зависимости от шрифта, используемого в стиле «Обычный». Например, при использовании шрифта в обычном стиле Arial при попытке изменить ширину столбца на 8,5 столбца устанавливается значение 8,57 или 65 пикселей. Это происходит из-за преобразования символов шрифта в пиксельные единицы. Не удается отобразить дробные пиксели; Таким образом, ширина столбца округляется до ближайшего числа, которое приводит к целой единице пикселей.

Пример поведения ширины столбца

  1. В новой книге Excel выберите ячейку A1.

  2. В меню «Формат» наведите указатель мыши на столбец и выберите пункт «Ширина».

  3. В поле ширины столбца введите 10 (ширина 75 пикселей) и нажмите кнопку «ОК».

  4. В меню «Формат» щелкните «Стиль», а затем убедитесь, что шрифт по умолчанию имеет значение Arial 10.

  5. В ячейке A1 введите 1234567890.

    Примечание.

    Буквы идеально помещаются в ячейку, а ширина столбца по-прежнему 10 (ширина — 75 пикселей).

  6. В меню «Формат» выберите пункт «Стиль».

  7. Выберите команду «Изменить».

  8. На вкладке «Шрифт» измените шрифт на Courier New и дважды нажмите кнопку «ОК».

    Обратите внимание, что поле «Ширина столбца» автоматически обновляется в соответствии с новым шрифтом и что число в ячейке по-прежнему подходит, хотя ширина столбца по-прежнему 10, но увеличена до 85 пикселей в ширину.

Поведение ширины столбцов в Excel 2007

Чтобы задать ширину столбца в Excel 2007, выполните следующие действия.

  1. В первом столбце щелкните A , чтобы выбрать столбец, а затем щелкните правой кнопкой мыши и выберите ширину столбца.
  2. Введите ширину столбца.
  3. Нажмите кнопку
    ОК
    .

Поведение ширины столбца в Excel 2007 такое же, как указано выше. Если вы измените шрифты после установки ширины, она будет настраиваться для новых шрифтов в соответствии с шириной пикселей.

Как компьютеры выводят текст на экран

Текст, который вы видите на экране, мог бы выглядеть намного хуже, например так: 

Скриншот операционной системы MS-DOS, которой пользовались в конце 1980-х. Здесь текст выглядит винтажно и грубо, потому что такими были технологии вывода текста

Сегодня разберём, как компьютеры работают с выводом текста, как добиваются плавности и красоты.

Для начала нужно вспомнить наш текст о пиксельной и векторной графике. Вот основное оттуда:

  • Растровая графика состоит из точек: чем больше точек, тем чётче и качественнее выглядит картинка.
  • Такие точки называются пикселями, а по-научному — растром, отсюда и название.
  • Если сильно увеличить растровую картинку, то пиксели тоже увеличатся в размерах и станут заметны. Чем сильнее увеличиваем, тем сильнее видны пиксели и тем хуже становится картинка.
  • Векторная графика основана на векторах — кривых линиях, которые задаются математическими формулами.
  • При изменении размера векторной картинки формулы пересчитываются заново, и мы снова видим чёткую картинку.

Старая школа: единый растровый шрифт на уровне железа

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

Например, в операционной системе MS DOS использовался шрифт, который физически записывался в памяти вашего устройства вывода видео. Чаще всего это был шрифт, известный как Code Page 437. Вот его приближение:

Шрифт More Perfect DOS VGA на основе стандартных букв, использованных в видеоустройствах эпохи VGA. Автор — Адам Мур LÆMEUR

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

Но такого подхода явно недостаточно, если мы хотим видеть на экране красивые шрифты. Тогда нужно использовать векторную графику. 

Векторные шрифты и проблема с ними

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

Из Википедии: пример работы векторной графики. Круг рисуется восемью отрезками, между которыми стоят дополнительные восемь контрольных точек. Можно было обойтись и меньшим количеством, но решили так

Векторные шрифты хороши тем, что их можно бесконечно масштабировать — делать крупнее или мельче, и компьютер пересчитает формулы, чтобы вывести текст как положено. 

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

Без сглаживания

Возьмём векторный шрифт и наложим его векторы на сетку пикселей. Правило такое: если вектор полностью закрыл пиксель — рисуем там чёрную точку. Если вектор не закрыл пиксель полностью — точка белая. Получится вот такое изображение: 

Грубые формы и артефакты из-за отсутствия сглаживания

Здесь плохо не только то, что у букв есть острые края и эффект лесенки. Плохо ещё и то, что эти эффекты в непредсказуемых местах. Какие-то части букв толще, другие тоньше, и всё происходит случайным образом. Нам это не нравится. 

Сглаживание

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

Если прищуриться, вторая строка может показаться гладкой и плавной

В зависимости от коэффициентов и настройки алгоритма одно и то же векторное изображение можно сгладить по-разному. Вы не заметите разницу, если увидите эти тексты по отдельности; но если поставить их рядом — станет очевидно:

Алгоритмы сглаживания в «Фотошопе». Каждый текст выглядит гладким, но по-своему. Не сказать, что какой-то вариант прямо лучше или хуже, просто по-разному

Хинтинг

Параллельно со сглаживанием программисты пытались решить задачу другим способом: двигая влево-вправо те пиксели, которые явно портят букву, но соответствуют всем формулам. Это уже сложная задача, которую чаще всего делают вручную: для каждого размера шрифта и буквы указывают те области, куда можно что-то подвинуть или добавить, чтобы буква выглядела хорошо.

Проще всего это показать на картинке: слева буква «a» без хинтинга, а справа — с ним. Форма буквы стала более ровной и читать её стало проще, но с пропорциями получилась беда: все утолщения стали одного размера, а ещё потерялся хвостик вниз на верхней части буквы. Такой приём часто использовался на старых мониторах и там, где нет возможности управлять полутонами пикселей. 

Сглаживание + хинтинг

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

Субпиксельное сглаживание

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

Пиксели и субпиксели в разных матрицах дисплеев

Смысл субпиксельного сглаживания в том, что мы можем добавить как бы треть пикселя вместо целого: зажечь красный, синий или зелёный вместо всех троих вместе. Это сделает букву ещё более плавной и естественной. 

Вот примеры на букве W из Википедии: 

Текст на мониторах высокого разрешения

Стандартное разрешение на больших мониторах в 2000–2010-х — 72 точки на дюйм. Этого достаточно, чтобы смотреть на картинку с расстояния примерно полметра. Но когда такой экран применялся в смартфонах, пиксели были конкретно видны — потому что мы держим телефон ближе к глазам. 

В 2010 году Apple в числе первых внедрили в смартфон экран высокого разрешения — 326 точек на дюйм. Это было сделано, чтобы люди не замечали пикселей, когда держали экран на расстоянии 20–30 см от глаз. Разница была заметной. Вот картинки из Википедии: 

Стандартный дисплей с разрешением 72 точки на дюймRetina-дисплей с разрешением 326 точек на дюйм

Дальше подобные экраны просочились во все смартфоны и планшеты. Сейчас даже в ноутбуках часто используют разрешения от 200 точек на дюйм, не говоря уже о смартфонах. 

Это привело к тому, что теперь текст на экране выглядит ещё лучше:

Мы пересчитали одну и ту же надпись с 72 на 300 точек в «Фотошопе». Пересчёт сделал так, что на один старый пиксель теперь приходится 16 новых

Что с этим делать? 

На старых компьютерах с Windows, если у вас монитор низкого разрешения, можно включить системное сглаживание Clear Type. Оно использует субпиксельное сглаживание. 

А в остальном сейчас система сама заботится о том, чтобы красиво вывести текст. Но теперь вы знаете, как это происходит.

Текст:

Михаил Полянин

Редактор:

Максим Ильяхов

Художник:

Алексей Сухов

Корректор:

Ирина Михеева

Вёрстка:

Кирилл Климентьев

Соцсети:

Виталий Вебер

я должен использовать пиксели или рем?

Введение

Должен ли я использовать пиксели или ems/rems?!

Я часто слышу этот вопрос. Часто за словами скрывается нотка беспокойства или разочарования. 😅

Это эмоционально заряженный вопрос, потому что существует много противоречивых мнений, и это может быть ошеломляющим. Возможно, вы слышали, что rems лучше для доступности. Или, может быть, вы слышали, что проблема устранена и с пикселями все в порядке?

Правда в том, что если вы хотите создать максимально доступный продукт, вам нужно использовать оба пикселя и ems/rems. Это не ситуация «или-или». Есть обстоятельства, когда rems более доступны, и другие обстоятельства, когда пикселей более доступны.

Итак, вот что мы собираемся сделать в этом уроке:

  1. Мы кратко рассмотрим, как работает каждый блок, чтобы убедиться, что все мы строим на одном прочном фундаменте.

  2. Мы рассмотрим соображения доступности и то, как каждый модуль может повлиять на эти соображения.

  3. Мы построим ментальную модель, которую сможем использовать, чтобы решить, какой блок использовать в любом сценарии .

  4. Я поделюсь своими любимыми советами и рекомендациями по преобразованию единиц измерения.

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

Ссылка на этот заголовок

Пиксели

Самая популярная единица измерения для всего, что связано с размером, — это пиксель , сокращение от «пиксель»:

Теоретически 1 пиксель равен одной точке в компьютере. экран монитора или телефона. Это наименее абстрактная единица в CSS, самая близкая к металлу. В результате они, как правило, чувствуют себя довольно интуитивными.

Аппаратные и программные пиксели

Итак, единица px — это немного ложь. это не на самом деле аккуратно сопоставляется с аппаратными пикселями.

Если вы посмотрите на современный дисплей под микроскопом, то поймете, что он больше не состоит из четких маленьких прямоугольников R/G/B. Вот снимки экранов Apple Watch и Apple iPhone крупным планом:

(Источники: Apple Watch и iPhone.)

экран и программные пиксели, которые мы пишем в CSS. Каждый раз, когда пользователь меняет разрешение своего экрана или увеличивает масштаб, он меняет то, как программные пиксели отображаются на аппаратные пиксели.

Тем не менее, ничто из этого не должно сильно влиять на то, как мы относимся к устройству px . Это по-прежнему самая конкретная единица, которая у нас есть!

Ссылка на эту рубрику

Ems

Аппарат em интересный товарищ. Это относительная единица , основанная на рассчитанном размере шрифта элемента.

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

По сути, em — это соотношение. Если наш абзац имеет нижнее поле 1,5 em, мы говорим, что оно должно быть в 1,5 раза больше размера шрифта. Это позволяет нам «привязать» одно значение к другому, чтобы они масштабировались пропорционально.

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

Code Playground

HTML

Это

Предложение

тише

и

Тише

РЕЗУЛЬТАТ

Включение чтобы понять, как работает блок em , мы используем здесь размер шрифта в пикселях. Однако, как мы скоро узнаем, это плохая идея. Пожалуйста, не делайте этого в реальных приложениях!

Ссылка на эту рубрику

Ремс

Сейчас это старая новость, но было время когда rem unit был блестящим новым дополнением к языку CSS.

Он был введен из-за общей неприятной проблемы с блоком em : он смешивается.

Например, рассмотрим следующий фрагмент:

Насколько велик в пикселях этот шрифт .intro абзаца?

Чтобы понять это, мы должны умножить каждое отношение. Размер корневого шрифта по умолчанию составляет 16 пикселей, поэтому уравнение выглядит следующим образом: 16 × 1,125 × 0,9 × 1,25 . Ответ: 20,25 пикселей.

Что? Почему?? Это происходит потому, что размер шрифта наследуется . Абзац имеет размер шрифта 1.25em , что означает «в 1,25 раза больше текущего размера шрифта». Но что такое текущий размер шрифта? Ну, он наследуется от родителя: 0. 9em . Таким образом, это 1,25x родитель, что составляет 0,9x его родителя , что составляет 1,125x его родителя .

По сути, нам нужно умножать каждое значение em в дереве, пока мы либо не достигнем «фиксированного» значения (используя пиксели), либо не дойдем до вершины дерева. Это так же грубо, как звучит. 😬

Чтобы решить эту проблему, разработчики языка CSS создали модуль rem . Расшифровывается как «Root EM».

Единица rem аналогична единице em , за исключением того, что она всегда кратна размеру шрифта корневого узла , элемента . Он игнорирует любые унаследованные размеры шрифта и всегда вычисляет на основе узла верхнего уровня.

Документы имеют размер шрифта по умолчанию 16 пикселей, что означает, что 1rem имеет «исходное» значение 16 пикселей.

Мы можем переопределить значение 1rem , изменив размер шрифта на корневом узле:

Мы можем сделать это, но не должны.

Чтобы понять почему, нужно поговорить о доступности.

Основное соображение доступности, когда речь заходит о пикселях и em/rem, это vision . Мы хотим, чтобы люди с ограниченным зрением могли удобно читать предложения и абзацы на наших веб-сайтах и ​​в веб-приложениях.

Есть несколько способов, которыми люди с ограниченным зрением могут увеличить размер текста.

Один из способов — использовать функцию масштабирования браузера. Стандартное сочетание клавиш для этого — + + в MacOS, ctrl + + в Windows/Linux.

В этом уроке я назову этот метод масштабированием .

В Руководстве по обеспечению доступности веб-контента (WCAG) указано, что для того, чтобы сайт был доступным, его можно использовать при 200-процентном увеличении. Я слышал от защитников доступности, что это число на самом деле является минимальным, и что многие люди с нарушениями зрения часто крутят гораздо больше, чем это.

Наконец, есть еще один метод, о котором знает меньше разработчиков. Мы также можем увеличить размер шрифта по умолчанию в настройках нашего браузера:

В этом уроке я назову этот метод масштабированием шрифта .

Масштабирование шрифта работает путем переопределения «базового» размера шрифта, размера шрифта по умолчанию, на котором будут основываться все относительные единицы (бэр, эм, %).

Помните ранее, когда мы говорили, что 1rem равно 16px? Это верно только в том случае, если пользователь не менял размер шрифта по умолчанию! Если они увеличат размер шрифта по умолчанию до 32 пикселей, каждый rem теперь будет равен 9.0009 32px вместо 16.

По сути, вы можете думать о масштабировании шрифта как о изменении определения 1 rem.

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

Вот почему мы должны использовать относительные единицы, такие как rem и em для размера текста. Это дает пользователю возможность переопределить их значение в соответствии со своими потребностями.

Теперь картина не такая мрачная, как раньше, благодаря масштабированию в браузере .

Когда пользователь увеличивает или уменьшает масштаб, все становится больше. По сути, он применяет множитель к каждой единице, включая пиксели. Это влияет на все, кроме единиц измерения окна просмотра (например, vw и vh ). Так было уже много лет во всех основных браузерах.

Итак, если пользователи всегда могут масштабировать изображение, чтобы увеличить размер шрифта, нужно ли нам беспокоиться о поддержке масштабирования шрифта? Разве одного варианта недостаточно?

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

(Давайте также помнить, что не каждый может легко вызвать сочетание клавиш. Несколько лет назад я получил травму нерва, из-за которой я не мог пользоваться клавиатурой. Я взаимодействовал с компьютером, используя диктовку и отслеживание взгляда. Внезапно , каждое «нажатие клавиши» стало намного тяжелее!)

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

Итак, вы можете подумать: если единица rem учитывается как при масштабировании , так и при масштабировании шрифта , не должен ли я всегда использовать значения rem ? Зачем мне вообще использовать пиксели?

Хорошо, давайте посмотрим, что произойдет, когда мы используем rem значения для заполнения:

Помните, что значения rem масштабируются с размером шрифта пользователя по умолчанию. Это хорошая вещь, когда дело доходит до типографики. Однако хорошо ли это, когда дело доходит до других вещей? Действительно ли я хочу, чтобы все масштабировались с размером шрифта?

Существует неявный компромисс, когда речь идет о размере текста. Чем больше текст, тем меньше символов может поместиться в каждой строке. Когда пользователь увеличивает текст на 250%, мы можем уместить только несколько слов в строке.

Когда мы используем значения rem для горизонтального отступа, несмотря на , мы усиливаем этот негативный побочный эффект! Мы сокращаем объем полезного пространства, еще больше ограничивая количество слов, которое может поместиться в каждой строке.

Это плохо
потому что
абзацы
как этот
только с
несколькими словами на
строку
неприятно читать
.

Аналогично, как насчет ширины границ? На самом деле не имеет смысла увеличивать толщину границы по мере того, как пользователь увеличивает свой предпочтительный размер текста, не так ли?

Вот почему мы хотим использовать эти единицы стратегически . Выбирая между пикселями и rems, вот вопрос, который вы должны задать себе:

Должно ли это значение увеличиваться по мере того, как пользователь увеличивает размер шрифта своего браузера по умолчанию?

Этот вопрос лежит в основе моей ментальной модели. Если значение должно увеличиваться с размером шрифта по умолчанию, я использую rem . В противном случае я использую px .

При этом ответ на этот вопрос не всегда очевиден. Давайте посмотрим на некоторые примеры.

Ссылка на этот заголовок

Медиа-запросы

Должны ли мы использовать пиксели или rems для значений наших медиа-запросов?

Вероятно, не очевидно, в чем здесь различие, поэтому давайте разберем его.

Предположим, пользователь установил размер текста по умолчанию на 32 пикселя, что вдвое больше стандартного размера текста. Это означает, что 50rem теперь будет равно 1600px вместо 800px.

Сдвинув точку останова таким образом, пользователь увидит mobile , пока ширина их окна не станет не менее 1600 пикселей. Если они на ноутбуке, скорее всего, они увидят макет для мобильных устройств, а не макет для рабочего стола.

Сначала я подумал, что это плохо. На самом деле они не являются мобильными пользователями, так зачем нам показывать им мобильную раскладку??

Однако я понял, что мы обычно делаем хотим использовать rems для медиа-запросов.

Давайте рассмотрим реальный пример.

На платформе моего курса у меня есть список навигации слева, содержимое которого отображается справа:

На небольших экранах я хочу максимально увеличить пространство для содержимого, чтобы навигация стала переключаемой:

Давайте посмотрим, что происходит, когда пользователь посещает сайт с размером шрифта по умолчанию 32 пикселя, используя как пиксели, так и rem медиазапросы:

Pixel Media Query

Rem Media Query

По мере увеличения размера текста левая навигация становится все шире и шире (поскольку она использует ширину на основе rem). В результате область основного контента сжимается все меньше и меньше.

Однако, когда мы используем медиа-запрос на основе rem, мы возвращаемся к «мобильному» макету. В результате контент становится намного более читабельным, а опыт значительно улучшается.

Мы так привыкли думать о медиа-запросах с точки зрения мобильных устройств/планшетов/настольных компьютеров, но я думаю, что полезнее думать о доступном пространстве.

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

Ссылка на этот заголовок

Вертикальные поля

Давайте рассмотрим другой сценарий. Вертикальные поля:

Вертикальные поля текста (при условии, что мы работаем на языке с горизонтальным написанием, таком как английский) обычно используются для улучшения его удобочитаемости. Мы добавляем дополнительное пространство между абзацами, чтобы мы могли быстро сказать, где заканчивается один абзац и начинается следующий.

Это пространство имеет «функциональное» назначение, когда речь идет о тексте. Мы не используем его эстетически.

По этим причинам я думаю, что имеет смысл масштабировать эти поля с выбранным пользователем корневым размером шрифта.

Редкая возможность для единицы «em»

Когда мне нужна относительная единица, я почти всегда беру rem . Это намного проще и предсказуемее, чем em , для «составных» проблем, обсуждавшихся ранее.

Тем не менее, 9Единица 0051 em особенно хорошо работает, когда речь идет о полях заголовков и абзацев.

Ссылка на эту рубрику

Ширина и высота

Хорошо, рассмотрим еще один вариант. Здесь у нас есть кнопка с фиксированной шириной:

Итак, мы знаем, что размер шрифта кнопки должен быть установлен в бэрах… но как насчет ширины ?

Здесь действительно интересный компромисс:

  • Если мы установим ширину равной 240px , кнопка не будет увеличиваться с размером шрифта, что приведет к переносу строк и увеличению высоты кнопки.

  • Если мы установим ширину 15rem , кнопка станет шире вместе с размером шрифта.

Какой подход лучше? Ну, это смотря по обстоятельствам!

В большинстве случаев, я думаю, имеет смысл использовать rems. Это сохраняет пропорции кнопки, ее эстетику. И это снижает риск переполнения, если на кнопке есть особенно длинное слово.

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

Ограничения

В общем, мы должны быть очень осторожными при установке фиксированной ширины и высоты.

В приведенном выше примере установка width: 15rem во многих случаях нарушит работу мобильных макетов, поскольку может привести к слишком большому значению для своего контейнера, когда пользователь увеличит размер шрифта по умолчанию!

Часто мы можем смягчить это, зафиксировав его максимум на 100%:

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

Итак, мы узнали, что значения rem следует использовать, когда мы хотим масштабировать значение с размером шрифта пользователя по умолчанию.

Что, если не очевидно, какой вариант лучше? Как с шириной кнопки?

В таких случаях лучше всего протестировать его. Измените размер шрифта по умолчанию в браузере на 32 или 48 пикселей и посмотрите, как выглядит ваше приложение. Попробуйте использовать пиксели, а затем попробуйте использовать rems. Какой вариант обеспечивает наилучший пользовательский опыт и наиболее читаемый контент?

Со временем ваша интуиция будет становиться все сильнее и сильнее, поскольку вы сами будете видеть, что делать в конкретных обстоятельствах.

Не знаете, как изменить размер шрифта по умолчанию в браузере? Вот документация для наиболее часто используемых браузеров:

  • Chrome

  • Firefox

  • SAFARI

  • Edge

9119, если ваш брус не будет. A aefted a a a Щидно. включите его!

У меня есть философия, когда дело доходит до обучения: Лучше развить интуицию, чем полагаться на механическую практику и заучивание.

Этот пост в блоге мог бы быть кратким списком правил: «Используйте пиксели для X, используйте габариты для Y». Но насколько это было бы полезно на самом деле?

Правда в том, что реальный мир запутан и сложен. Никакой набор правил не может быть достаточно всеобъемлющим, чтобы охватить все возможные сценарии. Даже после 15 лет написания CSS я все еще постоянно сталкиваюсь с новыми проблемами макета!

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

И все же большинство из нас учится на «быстрых трюках». Подбираем интересный самородок в Твиттере. Мы запоминаем небольшой фрагмент, чтобы центрировать div или применить гибкую сетку. И, неизбежно, мы сталкиваемся с препятствиями, когда фрагмент не работает, как мы ожидали, и мы понятия не имеем, почему.

Я думаю, именно поэтому так много разработчиков не любят писать CSS. У нас неоднородная ментальная модель, и эти дыры делают язык хрупким и непредсказуемым, как карточный домик, который всегда на грани краха.

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

Я хотел разделить эту радость, поэтому я уволился с работы и потратил год на создание всеобъемлющего онлайн-курса для самостоятельного обучения. Это называется CSS для разработчиков JavaScript.

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

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

Он создан специально для разработчиков JavaScript, которые используют фреймворк на основе компонентов, такой как React или Vue. Помимо основных концепций языка, мы также изучаем такие вещи, как создание библиотеки компонентов с нуля.

Если вам надоело не понимать, как работает CSS, этот курс для вас. 💖

Узнайте больше здесь: https://css-for-js.dev/

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

К сожалению, работать с этим юнитом довольно сложно. Не так-то просто произвести математику преобразования в уме. И мы получим A LOT десятичных декораций:

  • 14PX → 0,875REM

  • 15PX → 0,9375REM

  • 16PX → 1REM 7

  • 16PX → 1REM 7

  • 16PX → 1REM 7

  • 16PX → 1REM 7

  • 16PX → 1REM 7

  • 16PX → 1REM 7

  • 16PX → 1REM 7

  • 16PX. → 1.125rem

  • 19px → 1.1875rem

  • 20px → 1.25rem

  • 21px → 1.3125rem

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

Ссылка на этот заголовок

Трюк на 62,5%

Начнем с одного из самых распространенных вариантов, которые я видел в Интернете.

Вот как это выглядит:

Идея состоит в том, что мы уменьшаем размер корневого шрифта, чтобы каждая единица rem равнялась 10px вместо 16px.

Людям нравится это решение, потому что математика становится намного проще. Чтобы получить rem , эквивалентный 18px, вы перемещаете десятичную дробь (1,8 rem) вместо того, чтобы делить 18 на 16 (1,125 rem).

Но, честно говоря, я не рекомендую такой подход. Есть несколько причин.

Во-первых, это может нарушить совместимость со сторонними пакетами. Если вы используете библиотеку всплывающих подсказок, которая использует размер шрифта на основе rem, текст в этих всплывающих подсказках будет на 37,5% меньше, чем должен быть! Точно так же он может сломать расширения браузера, которые есть у конечного пользователя.

В Интернете существует базовое предположение, что 1rem создаст читаемый текст. Я не хочу связываться с этим предположением.

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

Давайте рассмотрим несколько альтернативных вариантов.

Ссылка на этот заголовок

Расчетные значения

CSS-функцию calc можно использовать для преобразования значений пикселей в rems:

(Спасибо пользователю Twitter Cahnory за улучшение моей первоначальной идеи!)

Довольно круто, правда ? Мы можем посчитать прямо внутри объявления CSS, и calc выдаст правильный ответ.

Это жизнеспособный подход, но он слишком многословен. Каждый раз, когда вы хотите использовать 9, приходится много печатать.0051 rem значение.

Рассмотрим еще один подход.

Ссылка на этот заголовок

Использование переменных CSS

Это мой любимый вариант. Вот как это выглядит:

Мы можем сделать все вычисления один раз и использовать переменные CSS для хранения этих параметров. Когда нам нужно их использовать, это почти так же просто, как ввести значения пикселей, но полностью доступно! ✨

Немного необычно начинать переменные CSS с такого числа, но оно соответствует спецификации и работает во всех основных браузерах.

Если вы используете систему дизайна со шкалой интервалов, мы можем использовать тот же трюк:

Переменные CSS просто восхитительны. Мы изучаем множество интересных вещей, которые мы можем сделать с ними в CSS для разработчиков JavaScript!

В конечном итоге все эти методы сработают. У меня, конечно, есть свои предпочтения, но главное — это опыт конечного пользователя. Пока они могут регулировать размер всего текста на странице, вы все делаете правильно. 💯

Последнее обновление

29 ноябряth, 2022

Что такое пиксель и является ли это единственной мерой размера шрифта? - CSS FAQ

вики-бот

1

Вопрос

Что такое пиксель и является ли он единственной мерой размера шрифта?

Ответ

Пиксель — это одна из нескольких единиц измерения в веб-разработке. Это абсолютная единица, равная 1/96 дюйма.

Rems и ems — это масштабируемые типографские единицы, которые обычно используются с размер шрифта свойство. В отличие от пикселей, обе эти единицы являются относительными. Например, em измеряется относительно размера шрифта элемента. При работе с ems важно понимать, что

размер шрифта элемента часто наследуется от элемента-предка. С другой стороны, rems определяются на основе font-size элемента html . Если размер шрифта не определен в элементе html , браузер по умолчанию 9Вместо этого используется 0051 размер шрифта (обычно 16 пикселей).

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

32 лайков

мтф

2

вики-бот:

Вместо этого используется браузер по умолчанию размер шрифта (обычно 16px).

Мы можем (и, вероятно, должны) сделать явное заявление о принятии размера браузера по умолчанию во время загрузки.

 корпус {
    размер шрифта: 100%;
}
 

Пользователям с нарушениями зрения часто нужны более крупные шрифты для всего, и они могут настроить свой браузер на размер, который им подходит. Пользователь — самый важный человек, и, приняв настройки браузера по умолчанию, а затем сопоставив все наши шрифты с ними, мы создаем условия для этих пользователей, соответствующие их потребностям.

163 лайка

oreva20

3

@wiki-bot в своем ответе вы сказали, что «em измеряется относительно размера шрифта элемента». Не совсем понимаю это утверждение, пожалуйста, может ли кто-нибудь пролить больше света на этот

7 лайков

мтф

4

 <дел>
  

Этот текст будет размером 24 пикселя, унаследованным от родительского элемента

Этот текст будет иметь размер 70% от родительского размера

 24 * 0,7 => ~17 пикселей 

85 лайков

10 апреля 2019 г., 10:24

5

Как использовать единицы ems и rems, пожалуйста?

3 нравится

морковь и палочка

6

можно еще примеры проставить на примере ems и rems отдельно.?

Спасибо…

3 лайка

мтф

7

Их отличие исходит от родителей. em имеет прямой родительский элемент, дочерним элементом которого он является. А rem имеет только одного родителя — тело документа. Я различаю их, думая, что base вместо rem s и parent вместо em s.

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

 корпус {
    размер шрифта: 100%;
}
 

С этого момента использовать относительный размер шрифта совсем несложно. Нам никогда не нужно использовать px , если мы не хотим масштабирования. Даже в этом случае нет гарантии, что браузер не произведет собственное масштабирование, если пользователь увеличит масштаб.

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

Если эти правила назначены в каскаде, они будут следовать каскадным правилам. Создайте эти правила селектора ближе к нижней части каскада, с em правила написаны над ними.


Aside

Из этого следует, что мы никогда не будем использовать rem unit в правиле выбора body . Какой в ​​этом смысл?

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

 html,
тело {
    размер шрифта: 100%;
}
 

23 лайков

мтф

8

Чтобы опровергнуть мое собственное заявление…

 html {
    размер шрифта: 100%;
}
тело {
    размер шрифта: 1rem;
}
 

https://www.sitepoint.com/understanding-and-using-rem-units-in-css/:

1rem соответствует размеру шрифта элемента html

13 лайков

мтф

10

Кристофербехм62253:

Абсолютная единица, равная 1/96 дюйма.

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

4 лайка

самядель

14

Вот мое понимание блоков rem и em . Пожалуйста, поправьте меня, если я ошибаюсь, и добавьте важную информацию, которую я пропустил. В большинстве случаев по умолчанию размер шрифта элемента html равен 16px, что означает, что 1rem = 16px. Следуя этому правилу, 2rem = 32px и 2.5rem = 40px

em равно размеру шрифта родительского элемента. Таким образом, если элемент

, содержащий элемент

, имеет размер шрифта , равный 2rem (что по умолчанию будет 32 пикселя), а элемент

имеет размер Размер шрифта равен 2em, элемент

будет иметь размер 64 пикселя (32 пикселя * 2). Если бы мы добавили к элементу

и присвоили ему размер шрифта из 2em, это будет равно 64px * 2 = 128px

6 лайков

самядель

15

Когда я читал эту статью, я наткнулся на Codepen, в котором приводится пример использования px, em и rem: https://codepen.io/samyAdel/pen/rNxXYYa?editors=1100. h3 с содержимым «Заголовок раздела h3» имел размер шрифта 37,5 пикселей, когда я его проверил:

Этот

вложен внутри
с классом «контента». Размер шрифта этого элемента
не был задан явно. Однако, когда я осмотрел его, я увидел, что он имеет размер шрифта 15px :

Почему это?

Кроме того, может ли кто-нибудь также объяснить, что происходит с

с содержимым «Боковое меню h3» и
с классом «боковой панели»

hasib033

16

18px и 18% одно и то же или разные?

МТФ

17

Очень разные. 18% от 18 пикселей — это примерно 3,2 пикселя.

2 лайков

jose_bravo_yance

18

Вся моя любовь к вам за этот ответ

1 Нравится

wwydola555

19

Я использовал единицу измерения «pt», когда возился (впервые изучая css), и похоже, что это должна быть единица измерения, используемая в документах Word? 18pt значительно больше, чем 18px на дисплее моего ноутбука.

Используются ли единицы измерения размера шрифта относительно разрешения экрана? Или, может быть, это будет зависеть от используемого устройства?

неэтан

20

Они разных размеров, потому что это разные единицы измерения. И нет, они не относятся к размеру экрана, потому что это абсолютные единицы. Узнайте больше здесь: https://www.codecademy.com/resources/docs/css/units

1 Нравится

wwydola555

21

Спасибо, что ответили на все мои вопросы… пока!

1 Нравится

мтф

Автор записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *