Почему их вместо px?

Вот демо для вашего вопроса, хотя оно неуклюжие, пока оно работает

import re s = '(((1+0)+1)+1)'

def getContectWithinBraces( x , *args , **kwargs):
    ptn = r'[%(left)s]([^%(left)s%(right)s]*)[%(right)s]' %kwargs
    Res = []
    res = re.findall(ptn , x)
    while res != []:
        Res = Res + res
        xx = x.replace('(%s)' %Res[-1] , '%s')
        res = re.findall(ptn, xx)
        print(res)
        if res != []:
            res[0] = res[0] %('(%s)' %Res[-1])
    return Res

getContectWithinBraces(s , left='\(\[\{' , right = '\)\]\}')
737
задан Ambo100 2 January 2017 в 16:20
поделиться

10 ответов

Причина, которую я задал этому вопросу, состояла в том, что я забыл, как использовать em's, как это было некоторое время, я взламывал счастливо в CSS. Люди не заметили, что я сохранил вопрос общим, поскольку я не говорил о калибровке шрифтов по сути. Я больше интересовался тем, как определить стили на [1 118] любой данный элемент блока на странице.

Как Henrik Paul и другие указал на них, пропорционально размеру шрифта, используемому в элементе. Это - обычная практика для определения размеров на элементах блока в пкс, однако, оценивание шрифтов в браузерах обычно повреждает этот дизайн. Изменение размеров шрифтов обычно делается с сочетаниями клавиш Ctrl + + или Ctrl + - . Таким образом, хорошая практика должна использовать em's вместо этого.

Используя пкс для определения ширины

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

<div class="date-box">
    <p class="month">July</p>
    <p class="day">4</p>
</div>

А простая реализация была бы, определяя ширину date-box класс в пкс:

* { margin: 0; padding: 0; }

p.month { font-size: 10pt; }

p.day { font-size: 24pt; font-weight: bold; }

div.date-box {
    background-color: #DD2222;
    font-family: Arial, sans-serif;
    color: white;
    width: 50px;
}

проблема

Однако, если мы хотим оценить текст в нашем браузере, дизайн повредится. Текст также выйдет за край вне поля, которое является почти тем же, что происходит с дизайном SO как , flodin указывает. Это вызвано тем, что поле останется тем же размером по ширине, как это заблокировано к 50px.

Используя их вместо этого

А более умный путь состоит в том, чтобы определить ширину в Эмсе вместо этого:

div.date-box {
    background-color: #DD2222;
    font-family: Arial, sans-serif;
    color: white;
    width: 2.5em;
}

* { margin: 0; padding: 0; font-size: 10pt; }

// Initial width of date-box = 10 pt x 2.5 em = 25 pt
// Will also work if you used px instead of pt

Тот способ, которым у Вас есть жидкий дизайн на поле даты, т.е. поле, оценит вместе с текстом в пропорции к размеру шрифта, определенному для поля даты. В этом примере размер шрифта определяется в * как 10 ПБ и оценит 2.5 раза к тому размеру шрифта. Таким образом, при калибровке шрифтов в браузере поле будет иметь 2.5 раза размер того размера шрифта.

89
ответ дан 5 revs, 3 users 93% 3 January 2017 в 02:20
поделиться

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

Много сайтов имеют проблемы с этим. Расположение становится все искаженным, текст в кнопках сокращается в половине или исчезает полностью. Даже stackoverflow.com страдает от него:

Screenshot of Firefox at 120% text zoom

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

140
ответ дан Ilmari Karonen 3 January 2017 в 02:20
поделиться

Это полезно для всего, что должно масштабироваться согласно размеру шрифта.

Это особенно полезно на браузерах, которые реализуют масштабирование путем масштабирования размера шрифта. Таким образом, если Вы измеряете все свои элементы с помощью em, они масштабируются соответственно.

48
ответ дан zapping 3 January 2017 в 02:20
поделиться

Неправильно сказать, что каждый - лучший выбор, чем другой (или обоим не дали бы их собственную цель в спецификации). Может даже стоить отметить, что StackOverflow делает широкое применение единиц пкс. Это не плохой выбор, Spoike сказали, что это было.

Определение единиц

  • пкс является абсолютной единицей измерения (как в , pt, или cm), который также, оказывается, 1/96 в единица (больше на почему позже). Поскольку это - абсолютное измерение, это может использоваться любое время, Вы хотите определить что-то, чтобы быть конкретным размером, вместо того, чтобы быть пропорциональными чему-то еще как размер окна браузера или размера шрифта.

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

    элементы Фиксированного размера часто должны включаться в страницу - такую как рекламные баннеры, логотипы или значки. Это гарантирует, чтобы Вам почти всегда были нужны по крайней мере приблизительно основанные на пкс измерения в дизайне. Изображения, например, будут (по умолчанию) масштабироваться таким образом, что каждый пиксель 1*px* в размере, поэтому если Вы разработаете на основе изображения, то Вам будет нужно пкс единицы. Это также очень полезно для точной калибровки шрифта, и для ширины рамки, где должный к округлению его имеет большую часть смысла использовать пкс единицы для большинства экранов.

    Все абсолютные измерения твердо связаны друг с другом; то есть, 1 дюйм всегда 96 пкс , так же, как [1 113], 1 дюйм всегда 72 ПБ . (Обратите внимание, что 1 дюйм почти никогда не является на самом деле медосмотром дюйм при разговоре об основанных на экране медиа). Все абсолютные измерения принимают номинальное разрешение экрана 96 пкс/дюйм и номинальное расстояние просмотра настольного монитора, и на таком экране один , пкс будет равен одному физический , пиксель на экране и одном в [1 120] будет равен 96 физическим пикселям. На экранах, которые значительно отличаются или по плотности пикселей или по расстоянию просмотра, или если пользователь масштабировал страницу с помощью функции масштабирования браузера, , пкс больше не будет обязательно касаться физических пикселей.

  • их не абсолютная единица - это - единица, которая является относительно в настоящее время выбираемого размера шрифта. Если Вы не переопределили стиль шрифта путем установки размера шрифта с абсолютной единицей (такой как [1 122] пкс или pt), это будет затронуто выбором шрифтов в браузере пользователя или ОС, если они сделали один, таким образом, не имеет смысла использовать их в качестве общей единицы длины кроме того, где Вы конкретно хотите, чтобы это масштабировалось, поскольку размер шрифта масштабируется.

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

  • % является также относительной единицей, в этом случае, или относительно высоты или относительно ширины родительского элемента. Они - хорошая альтернатива [1 125] пкс единицы для вещей как общая ширина дизайна, если Ваш дизайн не полагается на определенные размеры пикселя для установки его размера.

    Используя [1 126] % единицы в Вашем дизайне позволяют Вашему дизайну адаптироваться к ширине экрана/устройства, тогда как с помощью абсолютной единицы такой в качестве [1 127] пкс не делает.

539
ответ дан 14 revs, 2 users 96% 3 January 2017 в 02:20
поделиться
  • 1
    Это будет работать, но it' s более безопасный и более соответствующий требованиям завтрашнего дня, чтобы установить среду и позволить JRE выяснить правильные значения для них. – Air 9 May 2012 в 14:42

Очень практическая причина состоит в том, что IE 6 не позволяет Вам изменить размеры шрифта, если он определил пкс использования, тогда как он делает при использовании относительной единицы, такой как они или проценты. Разрешение пользователю изменить размеры шрифта очень плохо для доступности. Хотя это в состоянии упадка, существует все еще много IE 6 пользователей там.

8
ответ дан John Topley 3 January 2017 в 02:20
поделиться

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

7
ответ дан Scott Evernden 3 January 2017 в 02:20
поделиться

Поскольку они ( http://en.wikipedia.org/wiki/Em_ (типография) ) прямо пропорциональны к использующемуся в настоящее время размеру шрифта. Если размер шрифта является, скажем, 16 точками, один их 16 точек. Если Ваш размер шрифта составляет 16 пикселей ( примечание : не то же как точки), один их 16 пикселей.

Это приводит к двум (связанным) вещам:

  1. легко сохранить пропорции, если Вы принимаете решение отредактировать свои размеры шрифта в Вашем CSS позже.
  2. Много браузеров поддерживают размеры пользовательского шрифта, переопределяя Ваш CSS. При разработке всего в пикселях расположение могло бы прервать эти случаи. Но при использовании Эмса это отвержение должно смягчить эти проблемы.
21
ответ дан Henrik Paul 3 January 2017 в 02:20
поделиться

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

Traingamer уже обеспечил необходимые ссылки .

0
ответ дан Community 3 January 2017 в 02:20
поделиться

Общее согласие состоит в том, чтобы использовать проценты для калибровки шрифта, потому что это более последовательно через браузеры/платформы.

Это забавно, хотя, я всегда раньше использовал pt для калибровки шрифта, и я предположил, что все сайты использовали это. Вы обычно не используете размеры пкс в других приложениях (например, Word). Я предполагаю, что это - потому что они для печати - но размер является тем же в веб-браузере как в Word...

-1
ответ дан DisgruntledGoat 3 January 2017 в 02:20
поделиться
  • 1
    Ничего себе, спасибо за это, я задавался вопросом почему мой View' s onDraw () метод никогда не называли. Я вижу, что javadoc говорит " Как правило, при переопределении onDraw (Холст), необходимо очистить этот флаг " так вероятно, если у Вас есть Представление без каких-либо виджетов, кажется, что это должно быть установлено. Просто предположение:) – Shawn Lauzon 16 January 2011 в 18:06

Главная причина для использования их или процентов состоит в том, чтобы позволить пользователю изменять размер текста, не повреждая дизайн. Если Вы разрабатываете со шрифтами, определенными в пкс, они не изменяют размер (в IE 6 и других), если пользователь выбирает размер текста - больше . Это очень плохо для пользователей с визуальными препятствиями.

Для нескольких примеров и статей о проектах как это (существует несметное число для выбора из), посмотрите последний выпуск Списка Независимо: Жидкие Сетки , более старая статья , Как Измерить текст в CSS или Dan Cederholm Пуленепробиваемый веб-дизайн .

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

так, как я лично презираю IE6, это в настоящее время только браузер, утвержденный для объема пользователей в нашей компании Fortune 200.

2
ответ дан Traingamer 3 January 2017 в 02:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: