Коротка відповідь
Коефіцієнт пікселів пристрою - це відношення між фізичними пікселями та логічними пікселями. Наприклад, iPhone 4 та iPhone 4S повідомляють про коефіцієнт пікселів пристрою 2, оскільки фізична лінійна роздільна здатність подвоюється лінійній лінійній роздільній здатності.
- Фізична роздільна здатність: 960 x 640
- Логічна роздільна здатність: 480 x 320
Формула така:
Де:
- фізична лінійна роздільна здатність
і:
є логічним лінійним дозволом
Інші пристрої повідомляють про різні коефіцієнти пікселів пристрою, включаючи не цілі числа. Наприклад, Nokia Lumia 1020 повідомляє 1,6667, Samsumg Galaxy S4 - 3, а Apple iPhone 6 Plus - 2,46 (джерело: dpilove ) . Але це в принципі нічого не змінює, як ви ніколи не повинні проектувати жоден конкретний пристрій.
Обговорення
CSS «піксель» навіть не визначений як «один елемент зображення на екрані якого - то», а скоріше в якості нелінійного кутового вимірювання від кута огляду, який становить приблизно дюйм на відстані витягнутої руки. Джерело: Абсолютні довжини CSS
Це має чимало наслідків щодо веб-дизайну, наприклад, підготовка ресурсів зображення високої чіткості та ретельне застосування різних зображень при різних співвідношеннях пікселів пристрою. Ви не хочете змушувати пристрій низького класу завантажувати зображення дуже високої роздільної здатності, а лише зменшити масштаб локально. Ви також не хочете, щоб пристрої високого класу збільшували масштаби зображень із низькою роздільною здатністю для розмитої роботи користувачів.
Якщо ви застрягли з растровими зображеннями, щоб пристосувати для багатьох різних коефіцієнтів пікселів пристрою, вам слід використовувати CSS Media Queries для надання різних наборів ресурсів для різних груп пристроїв. Поєднайте це за допомогою приємних хитрощів, таких як background-size: cover
або явно встановіть background-size
значення відсотків.
Приклад
#element { background-image: url('lores.png'); }
@media only screen and (min-device-pixel-ratio: 2) {
#element { background-image: url('hires.png'); }
}
@media only screen and (min-device-pixel-ratio: 3) {
#element { background-image: url('superhires.png'); }
}
Таким чином, кожен тип пристрою завантажує лише правильний ресурс зображення. Також пам’ятайте, що px
пристрій у CSS завжди працює на логічних пікселях .
Корпус для векторної графіки
Оскільки все більше і більше типів пристроїв з'являється, стає складніше надавати всім адекватні ресурси растрового зображення. У CSS медіа-запити наразі є єдиним способом, а в HTML5 елемент зображення дозволяє використовувати різні джерела для різних медіа-запитів, але підтримка все ще не на 100%, оскільки більшість веб-розробників все ще повинні підтримувати IE11 ще деякий час ( джерело: канюза ) .
Якщо вам потрібні чіткі зображення для піктограм, лінійного мистецтва, елементів дизайну, які не є фотографіями , вам потрібно почати думати про SVG, який гарно масштабує всі дозволи.
width=device-width
я буду його розтягувати на весь екран?