ÐдапÑивнÑе изобÑажениÑ
Рданной ÑÑаÑÑе Ð¼Ñ Ð¸Ð·ÑÑим конÑепÑÐ¸Ñ Ð³Ð¸Ð±ÐºÐ¸Ñ (responsive) изобÑажений â ÑÐ°ÐºÐ¸Ñ , коÑоÑÑе оÑобÑажаÑÑÑÑ Ñ Ð¾ÑоÑо на ÑÑÑÑойÑÑÐ²Ð°Ñ Ñ ÑилÑно оÑлиÑаÑÑимиÑÑ ÑазмеÑами ÑкÑана, ÑазÑеÑением, и дÑÑгими Ñ Ð°ÑакÑеÑиÑÑиками â и ÑаÑÑмоÑÑим инÑÑÑÑменÑÑ, коÑоÑÑе имеÑÑÑÑ Ð² HTML Ð´Ð»Ñ Ð¸Ñ ÑеализаÑии. Responsive images - ÑолÑко одна ÑаÑÑÑ (и Ñ Ð¾ÑоÑее наÑало) гибкого веб-дизайна, ÑемÑ, коÑоÑÐ°Ñ Ð±ÑÐ´ÐµÑ ÑаÑÑмоÑÑена подÑобнее в бÑдÑÑем модÑле на ÑÐµÐ¼Ñ CSS.
| ТÑебованиÑ: | ÐÑедполагаеÑÑÑ, ÑÑо Ð²Ñ Ñже Ð·Ð½Ð°ÐºÐ¾Ð¼Ñ Ñ Ð¾Ñновами HTML и ÑмееÑе добавлÑÑÑ ÑÑаÑиÑнÑе изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð½Ð° веб-ÑÑÑаниÑÑ. |
|---|---|
| ЦелÑ: | УзнаÑÑ, как иÑполÑзоваÑÑ Ñакие ÑлеменÑÑ, как srcset и <picture> ÑÑÐ¾Ð±Ñ Ð¾Ð±ÐµÑпеÑиÑÑ ÑабоÑÑ Ð³Ð¸Ð±ÐºÐ¸Ñ
изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð½Ð° веб-ÑайÑаÑ
. |
ÐоÑÐµÐ¼Ñ Ð°Ð´Ð°Ð¿ÑивнÑе изобÑажениÑ?
ÐакÑÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð¼Ñ Ð¿ÑÑаемÑÑ ÑеÑиÑÑ Ð°Ð´Ð°Ð¿ÑивнÑми изобÑажениÑми? ÐавайÑе ÑаÑÑмоÑÑим ÑипиÑнÑй ÑÑенаÑий. ÐбÑÑнÑй веб-ÑÐ°Ð¹Ñ Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ Ð¸Ð·Ð¾Ð±Ñажение в заголовке, Ð´Ð»Ñ ÑлÑÑÑÐµÐ½Ð¸Ñ Ð²Ð¸Ð·ÑалÑного воÑпÑиÑÑÐ¸Ñ Ð¿Ð¾Ð»ÑзоваÑелем, а Ñакже неÑколÑко изобÑажений в конÑенÑе под ним. ÐÑ, веÑоÑÑно, Ð·Ð°Ñ Ð¾ÑиÑе, ÑÑÐ¾Ð±Ñ Ð¸Ð·Ð¾Ð±Ñажение в заголовке занимало вÑÑ ÑиÑÐ¸Ð½Ñ Ð¾ÐºÐ½Ð°, а изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð² конÑенÑе ÑазмеÑалиÑÑ Ð³Ð´Ðµ-Ñо внÑÑÑи колонки Ñ ÐºÐ¾Ð½ÑенÑом. ÐавайÑе поÑмоÑÑим на ÑледÑÑÑий пÑоÑÑой пÑимеÑ:

Ð¢Ð°ÐºÐ°Ñ Ð²ÑÑÑÑка Ñ Ð¾ÑоÑо вÑглÑÐ´Ð¸Ñ Ð½Ð° ÑиÑокоÑоÑмаÑнÑÑ ÑкÑÐ°Ð½Ð°Ñ Ð½Ð¾ÑÑбÑков и наÑÑолÑнÑÑ ÐÐ, (Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе поÑмоÑÑеÑÑ Ð¿Ð¾ÑмоÑÑеÑÑ Ð´ÐµÐ¼Ð¾-пÑÐ¸Ð¼ÐµÑ Ð¸ найÑи иÑÑ Ð¾Ð´Ð½Ñй код на Github.) ÐÑ Ð½Ðµ бÑдем подÑобно ÑаÑÑмаÑÑиваÑÑ CSS, Ñкажем ÑолÑко ÑледÑÑÑее:
- СодеÑÐ¶Ð¸Ð¼Ð¾Ð¼Ñ Ñега
mainзадана макÑималÑÐ½Ð°Ñ ÑиÑина 1200 пикÑелей. ÐÑли ÑиÑина окна бÑаÑзеÑа болÑÑе ÑÑого знаÑениÑ, Ñо ÑодеÑжимое ÑайÑа оÑÑаÑÑÑÑ Ð½Ð° 1200 пикÑелей и ÑенÑÑиÑÑÐµÑ ÑÐµÐ±Ñ Ð² доÑÑÑпном пÑоÑÑÑанÑÑве. ÐÑли ÑиÑина окна бÑаÑзеÑа менÑÑе, ÑодеÑжимое ÑÑÑанавливаеÑÑÑ Ð² 100% Ð¾Ñ ÑиÑÐ¸Ð½Ñ ÑкÑана. - ÐзобÑажение в Ñапке вÑегда бÑÐ´ÐµÑ Ð¾ÑÑаваÑÑÑÑ Ð² ÑенÑÑе Ñега header вне завиÑимоÑÑи Ð¾Ñ ÑиÑÐ¸Ð½Ñ Ð±ÑаÑзеÑа. ÐÑли ÑÐ°Ð¹Ñ Ð±ÑÐ´ÐµÑ Ð¿ÑоÑмаÑÑиваÑÑÑÑ Ð½Ð° ÑÐ·ÐºÐ¸Ñ ÑкÑÐ°Ð½Ð°Ñ , Ñо важнÑе деÑали в ÑенÑÑе изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ (лÑди) вÑÑ Ñавно бÑдÑÑ Ð²Ð¸Ð´Ð½Ñ. ÐÑе, ÑÑо вÑÑ Ð¾Ð´Ð¸Ñ Ð·Ð° пÑÐµÐ´ÐµÐ»Ñ ÑиÑÐ¸Ð½Ñ ÑкÑана бÑÐ´ÐµÑ ÑкÑÑÑо. ÐÑÑоÑа Ñапки 200 пикÑелей.
- ÐзобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð² ÑодеÑжимом Ð·Ð°Ð´Ð°Ð½Ñ Ñак, ÑÑо еÑли ÑиÑина body ÑÑановиÑÑÑ Ð¼ÐµÐ½ÑÑе Ñем ÑиÑина изобÑажениÑ, Ñо изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð½Ð°ÑинаÑÑ ÑжимаÑÑÑÑ Ð¸ оÑÑаÑÑÑÑ Ð²Ñегда внÑÑÑи body и не вÑÑÑÑпаÑÑ Ð·Ð° его пÑеделÑ.
ÐÑÑ Ñ Ð¾ÑоÑо, однако пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð½Ð°ÑинаÑÑÑÑ, когда Ð²Ñ Ð¿ÑоÑмаÑÑиваеÑе ÑÐ°Ð¹Ñ Ð½Ð° ÑÑÑÑойÑÑве Ñ Ð½ÐµÐ±Ð¾Ð»ÑÑим ÑкÑаном â Ñапка Ð²Ð½Ð¸Ð·Ñ Ð²ÑглÑÐ´Ð¸Ñ Ð½Ð¾ÑмалÑно, но ÑепеÑÑ Ð¾Ð½Ð° Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð·Ð½Ð°ÑиÑелÑнÑÑ Ð²ÑÑоÑÑ ÑкÑана; пеÑвое изобÑажение в конÑенÑе напÑоÑив, вÑглÑÐ´Ð¸Ñ ÑжаÑно â пÑи Ñаком ÑазмеÑе едва можно ÑаÑÑмоÑÑеÑÑ Ð»Ñдей!

ÐÑло Ð±Ñ Ð½Ð°Ð¼Ð½Ð¾Ð³Ð¾ лÑÑÑе показÑваÑÑ Ð¾Ð±ÑезаннÑÑ Ð²ÐµÑÑÐ¸Ñ Ð¸Ð·Ð¾Ð±ÑажениÑ, на коÑоÑом Ð²Ð¸Ð´Ð½Ñ Ð²Ð°Ð¶Ð½Ñе деÑали Ñнимка, когда ÑÐ°Ð¹Ñ Ð¾ÑобÑажаеÑÑÑ Ð½Ð° Ñзком ÑкÑане, и, возможно, ÑÑо-Ñо ÑÑеднее Ð¼ÐµÐ¶Ð´Ñ Ð¾Ð±ÑезаннÑм и оÑигиналÑнÑм изобÑажениÑми Ð´Ð»Ñ ÑкÑанов ÑÑедней ÑиÑинÑ, ÑÐ°ÐºÐ¸Ñ ÐºÐ°Ðº планÑеÑÑ â ÑÑо извеÑÑно как art direction problem.
ÐÑоме Ñого, Ð½ÐµÑ Ð½ÑÐ¶Ð´Ñ Ð²ÑÑÑаиваÑÑ Ñакие болÑÑие изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð½Ð° ÑÑÑаниÑÑ, еÑли она пÑоÑмаÑÑиваеÑÑÑ Ð½Ð° маленÑком ÑкÑане мобилÑного ÑÑÑÑойÑÑва; ÑÑо назÑваеÑÑÑ resolution switching problem â ÑаÑÑÑовое изобÑажение пÑедÑÑавлÑÐµÑ Ñобой ÑоÑно-заданное колиÑеÑÑво пикÑелей по ÑиÑине и вÑÑоÑе; как Ð¼Ñ ÑÑпели замеÑиÑÑ, когда ÑаÑÑмаÑÑивали векÑоÑнÑÑ Ð³ÑаÑикÑ, ÑаÑÑÑовое изобÑажение ÑÑановиÑÑÑ Ð·ÐµÑниÑÑÑм и вÑглÑÐ´Ð¸Ñ ÑжаÑно, еÑли оно оÑобÑажаеÑÑÑ Ð² ÑазмеÑе болÑÑем, Ñем оÑигиналÑнÑй (Ñогда как векÑоÑное изобÑажение неÑ). Ð Ñо же вÑемÑ, еÑли изобÑажение оÑобÑажаеÑÑÑ Ð² гоÑаздо менÑÑем ÑазмеÑе, Ñем оÑигиналÑнÑй, ÑÑо пÑиведÑÑ Ðº напÑаÑной ÑÑаÑе ÑÑаÑика â полÑзоваÑели мобилÑнÑÑ ÑÑÑÑойÑÑв бÑдÑÑ Ð³ÑÑзиÑÑ Ð±Ð¾Ð»ÑÑое изобÑажение Ð´Ð»Ñ ÐºÐ¾Ð¼Ð¿ÑÑÑеÑа, вмеÑÑо маленÑкого Ð´Ð»Ñ Ð¸Ñ ÑÑÑÑойÑÑва. ÐдеалÑно бÑло Ð±Ñ Ð¸Ð¼ÐµÑÑ Ð½ÐµÑколÑко Ñайлов в ÑазнÑÑ ÑазÑеÑениÑÑ , и оÑобÑажаÑÑ Ð½ÑжнÑй ÑÐ°Ð·Ð¼ÐµÑ Ð² завиÑимоÑÑи Ð¾Ñ ÑÑÑÑойÑÑва, обÑаÑаÑÑегоÑÑ Ðº веб-ÑайÑÑ.
СложноÑÑÑ Ð² Ñом, ÑÑо Ð´Ð»Ñ Ð½ÐµÐºÐ¾ÑоÑÑÑ ÑÑÑÑойÑÑв Ñ Ð±Ð¾Ð»ÑÑим ÑазÑеÑением ÑкÑана нÑÐ¶Ð½Ñ Ð¸Ð·Ð¾Ð±ÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÑÑего Ñем ожидаеÑÑÑ ÑазмеÑа, ÑÑÐ¾Ð±Ñ ÑÑÑÑе оÑобÑажалоÑÑ. Ðо ÑÑÑи ÑÑо вÑÑ Ð¾Ð´Ð½Ð° задаÑа в ÑазнÑÑ ÑÑловиÑÑ .
Ðожно пÑедположиÑÑ, ÑÑо векÑоÑнÑе изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³Ð»Ð¸ Ð±Ñ ÑеÑиÑÑ ÑÑи пÑоблемÑ. Ркакой-Ñо ÑÑепени ÑÑо Ñак. У Ð½Ð¸Ñ Ð½ÐµÐ±Ð¾Ð»ÑÑой Ð²ÐµÑ Ð¸ ÑазмеÑ, поÑÑÐ¾Ð¼Ñ Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзоваÑÑ Ð¿Ð¾ÑÑи в лÑбом ÑлÑÑае. Ðни Ñ Ð¾ÑоÑи Ð´Ð»Ñ Ð¿ÑоÑÑой гÑаÑики, ÑзоÑов, ÑлеменÑов инÑеÑÑейÑа и Ñ. д. Сложнее ÑоздаÑÑ Ð²ÐµÐºÑоÑное изобÑажение Ñ Ð±Ð¾Ð»ÑÑим колиÑеÑÑвом деÑалей, как, напÑимеÑ, на ÑоÑо. РаÑÑÑовÑе изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ (JPEG) Ð´Ð»Ñ Ð½Ð°Ñего пÑимеÑа Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑ Ð±Ð¾Ð»ÑÑе.
Такого Ñода пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð½Ðµ бÑло в наÑале ÑÑÑеÑÑÐ²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²ÐµÐ±Ð°, в пеÑвой половине 90-Ñ Ð³Ð¾Ð´Ð¾Ð² â Ñогда единÑÑвеннÑми ÑÑÑÑойÑÑвами Ð´Ð»Ñ Ð¿ÑоÑмоÑÑа веб-ÑÑÑÐ°Ð½Ð¸Ñ Ð±Ñли наÑÑолÑнÑе компÑÑÑеÑÑ Ð¸ ноÑÑбÑки, Ñак ÑÑо ÑоздаÑели бÑаÑзеÑов и авÑоÑÑ ÑпеÑиÑикаÑий даже не задÑмÑвалиÑÑ Ð¾ Ñоздании ÑеÑениÑ. Ð¢ÐµÑ Ð½Ð¾Ð»Ð¾Ð³Ð¸Ð¸ оÑзÑвÑивÑÑ Ð¸Ð·Ð¾Ð±Ñажений бÑли ÑÐµÐ°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½Ñ Ð½ÐµÐ´Ð°Ð²Ð½Ð¾ Ð´Ð»Ñ ÑеÑÐµÐ½Ð¸Ñ Ð¿Ñоблем, ÑказаннÑÑ Ð²ÑÑе. Ðни позволÑÑÑ Ð²Ð°Ð¼ пÑедоÑÑавиÑÑ Ð±ÑаÑзеÑÑ Ð½ÐµÑколÑко изобÑажений, каждое из коÑоÑÑÑ Ð¾ÑобÑÐ°Ð¶Ð°ÐµÑ Ð¾Ð´Ð½Ð¾ и Ñо же, но ÑодеÑÐ¶Ð¸Ñ Ñазное колиÑеÑÑво пикÑелей (resolution switching), или ÑазнÑе изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ñ Ð¾ÑделÑнÑми облаÑÑÑми оÑновного изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ (art direction).
ÐÑимеÑание:
ÐовÑе возможноÑÑи обÑÑждаÑÑÑÑ Ð² ÑÑаÑÑе â srcset/sizes/<picture> â вÑе они поддеÑживаÑÑÑÑ Ð¿Ð¾Ñледними веÑÑиÑми ÑовÑеменнÑÑ
наÑÑолÑнÑÑ
и мобилÑнÑÑ
бÑаÑзеÑов (вклÑÑÐ°Ñ Microsoft Edge, но не Internet Explorer).
Ðак ÑделаÑÑ Ð¸Ð·Ð¾Ð±ÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¾ÑзÑвÑивÑми?
Ð ÑÑом Ñазделе ÑаÑÑмоÑÑим две вÑÑеопиÑаннÑе пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð¸ покажем, как иÑ
ÑеÑиÑÑ Ñ Ð¸ÑполÑзованием инÑÑÑÑменÑов HTML <img>. Ðак показано на пÑимеÑе вÑÑе - изобÑажение в заголовке иÑполÑзÑеÑÑÑ ÑолÑко как ÑкÑаÑение ÑайÑа и ÑÑÑановлено как Ñоновое Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ CSS. CSS болÑÑе подÑ
Ð¾Ð´Ð¸Ñ Ð´Ð»Ñ Ð°Ð´Ð°Ð¿Ñивного дизайна Ñем HTML, об ÑÑом поговоÑим в ÑледÑÑÑем модÑле о CSS.
РазнÑе ÑазÑеÑениÑ: РазнÑе ÑазмеÑÑ
ÐÑак, какÑÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ ÑеÑаÑÑ ÑазнÑе ÑазÑеÑениÑ? РзавиÑимоÑÑи Ð¾Ñ ÑÑÑÑойÑÑва нÑжно оÑобÑазиÑÑ Ð¾Ð´Ð½Ð¾ и Ñо же изобÑажение, но ÑазнÑÑ
ÑазмеÑов. ÐоÑмоÑÑиÑе на вÑоÑÑÑ ÐºÐ°ÑÑÐ¸Ð½ÐºÑ Ð² пÑимеÑе. СÑандаÑÑнÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ <img> обÑÑно позволÑÐµÑ ÑказаÑÑ ÑолÑко один пÑÑÑ Ðº ÑайлÑ:
<img src="elva-fairy-800w.jpg" alt="Elva dressed as a fairy" />
Ðднако еÑÑÑ Ð´Ð²Ð° новÑÑ
аÑÑибÑÑа â srcset и sizes â позволÑÑÑиÑ
добавиÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ñ Ð¿Ð¾Ð¼ÐµÑками, ÑÑÐ¾Ð±Ñ Ð±ÑаÑÐ·ÐµÑ Ð²ÑбÑал подÑ
одÑÑее. ÐÑÐ¸Ð¼ÐµÑ Ð½Ð° Github: responsive.html (Ñакже ÑмоÑÑи иÑÑоÑник кода).
<img
srcset="
elva-fairy-320w.jpg 320w,
elva-fairy-480w.jpg 480w,
elva-fairy-800w.jpg 800w
"
sizes="(max-width: 320px) 280px,
(max-width: 480px) 440px,
800px"
src="elva-fairy-800w.jpg"
alt="Elva dressed as a fairy" />
ÐÑÑибÑÑÑ srcset и sizes кажÑÑÑÑ ÑложнÑми, но они не Ñак плоÑ
и, еÑли Ð²Ñ Ð¾ÑÑоÑмаÑиÑÑеÑе иÑ
как в пÑимеÑе вÑÑе: ÐºÐ°Ð¶Ð´Ð°Ñ ÑаÑÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð°ÑÑибÑÑа Ñ Ð½Ð¾Ð²Ð¾Ð¹ ÑÑÑоки. ÐнаÑение ÑоÑÑÐ¾Ð¸Ñ Ð¸Ð· ÑпиÑка ÑлеменÑов ÑеÑез запÑÑÑÑ, каждÑй из коÑоÑÑÑ
вклÑÑÐ°ÐµÑ ÑÑи ÑаÑÑи. ÐавайÑе ÑаÑÑмоÑÑим ÑÑи знаÑениÑ:
srcset вклÑÑÐ°ÐµÑ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ð¸Ð·Ð¾Ð±Ñажений, ÑÑеди коÑоÑÑÑ
бÑаÑÐ·ÐµÑ Ð²ÑбеÑÐµÑ Ð½Ñжное и иÑ
ÑазмеÑÑ. ÐеÑед каждой запÑÑой ÑаÑÑи знаÑÐµÐ½Ð¸Ñ Ð² Ñаком поÑÑдке:
-
Ðазвание изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ (
elva-fairy-480w.jpg.) -
ÐÑобел.
-
ÐкÑÑалÑÐ½Ð°Ñ ÑиÑина каÑÑинки в пикÑÐµÐ»Ð°Ñ (
480w) â замеÑÑÑе, ÑÑо здеÑÑ Ð¸ÑполÑзÑеÑÑÑwвмеÑÑоpx, как Ð²Ñ Ð¼Ð¾Ð³Ð»Ð¸ ожидаÑÑ. ÐÑа наÑÑоÑÑÐ°Ñ ÑиÑина изобÑажениÑ, коÑоÑÐ°Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑоÑмоÑÑена в ÑвойÑÑÐ²Ð°Ñ ÐºÐ°ÑÑинки на ваÑем компÑÑÑеÑе (напÑимеÑ, на Mac нÑжно оÑкÑÑÑÑ ÐºÐ°ÑÑÐ¸Ð½ÐºÑ Ð² Finder и нажаÑÑCmd
+
I
, ÑÑÐ¾Ð±Ñ Ð²ÑвеÑÑи инÑоÑмаÑÐ¸Ñ Ð½Ð° ÑкÑан).
sizes опÑеделÑÐµÑ Ð¿ÐµÑеÑÐµÐ½Ñ Ð¼ÐµÐ´Ð¸Ð°Ð²ÑÑажений (напÑимеÑ, ÑиÑÐ¸Ð½Ñ ÑкÑана) и ÑказÑÐ²Ð°ÐµÑ Ð¿ÑедпоÑÑиÑелÑнÑÑ ÑиÑÐ¸Ð½Ñ Ð¸Ð·Ð¾Ð±ÑажениÑ, когда опÑеделÑнное медиавÑÑажение иÑÑинно â ÑÑо Ñо, о ÑÑм Ð¼Ñ Ð³Ð¾Ð²Ð¾Ñили вÑÑе. РнаÑем ÑлÑÑае, пеÑед каждой запÑÑой Ð¼Ñ Ð¿Ð¸Ñем:
- Ðедиа-ÑÑловие (
(max-width:480px)) â Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе болÑÑе ÑзнаÑÑ Ð¾Ð± ÑÑом в CSS topic, но ÑейÑÐ°Ñ Ð´Ð°Ð²Ð°Ð¹Ñе Ñкажем, ÑÑо медиа-ÑÑловие опиÑÑÐ²Ð°ÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ðµ ÑоÑÑоÑние ÑкÑана. Ð ÑÑом ÑлÑÑае, Ð¼Ñ Ð³Ð¾Ð²Ð¾Ñим "когда viewport width менÑÑе или Ñавен 480 пикÑелÑм". - ÐÑобел.
- ШиÑÐ¸Ð½Ñ ÑлоÑа (в оÑигинале "width of the slot"), занимаемÑÑ Ð¸Ð·Ð¾Ð±Ñажением, когда медиа-ÑÑловие иÑÑинно. (
440px)
ÐÑимеÑание:
ÐÐ»Ñ ÑиÑÐ¸Ð½Ñ ÑлоÑа, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑказаÑÑ Ð°Ð±ÑолÑÑнÑе знаÑÐµÐ½Ð¸Ñ (px, em) или знаÑение оÑноÑиÑелÑно окна пÑоÑмоÑÑа (vw), но ÐРпÑоÑенÑÑ. ÐÑ Ð¼Ð¾Ð³Ð»Ð¸ замеÑиÑÑ, ÑÑо Ñ Ð¿Ð¾Ñледнего ÑлоÑа Ð½ÐµÑ Ð¼ÐµÐ´Ð¸Ð°-ÑÑÐ»Ð¾Ð²Ð¸Ñ â ÑÑо знаÑение по ÑмолÑаниÑ, коÑоÑое ÑÑÐ°Ð½ÐµÑ Ð°ÐºÑÑалÑнÑм, еÑли ни одно из пÑедÑдÑÑиÑ
медиа-ÑÑловий не бÑÐ´ÐµÑ Ð¸ÑÑинно. ÐÑаÑÐ·ÐµÑ Ð¸Ð³Ð½Ð¾ÑиÑÑÐµÑ Ð²Ñе поÑледÑÑÑие пÑовеÑки поÑле пеÑвого ÑовпадениÑ, Ñак ÑÑо бÑдÑÑе внимаÑелÑнее к поÑÑÐ´ÐºÑ Ð¸Ñ
обÑÑвлениÑ.
ÐÑак, Ñ Ñакими аÑÑибÑÑами, бÑаÑÐ·ÐµÑ ÑÐ´ÐµÐ»Ð°ÐµÑ ÑледÑÑÑее:
- ÐоÑмоÑÑÐ¸Ñ Ð½Ð° ÑиÑÐ¸Ð½Ñ ÑкÑана ÑÑÑÑойÑÑва.
- ÐопÑÑаеÑÑÑ Ð¾Ð¿ÑеделиÑÑ Ð¿Ð¾Ð´Ñ
одÑÑее медиа-ÑÑловие из ÑпиÑка в аÑÑибÑÑе
sizes. - ÐоÑмоÑÑÐ¸Ñ Ð½Ð° ÑÐ°Ð·Ð¼ÐµÑ ÑлоÑа к ÑÑÐ¾Ð¼Ñ Ð¼ÐµÐ´Ð¸Ð°Ð²ÑÑажениÑ.
- ÐагÑÑÐ·Ð¸Ñ Ð¸Ð·Ð¾Ð±Ñажение из ÑпиÑка из
srcset, коÑоÑое Ð¸Ð¼ÐµÐµÑ ÑÐ¾Ñ Ð¶Ðµ ÑазмеÑ, ÑÑо и вÑбÑаннÑй ÑлоÑ, или, еÑли Ñакого неÑ, Ñо пеÑвое изобÑажение, коÑоÑое болÑÑе ÑазмеÑа вÑбÑанного ÑлоÑа.
Ð ÑÑо вÑÑ! Ðа ÑекÑÑий моменÑ, еÑли поддеÑживаÑÑий бÑаÑÐ·ÐµÑ Ñ viewport width 480px загÑÑÐ·Ð¸Ñ ÑÑÑаниÑÑ, медиа-ÑÑловие (max-width: 480px) бÑÐ´ÐµÑ Ð¸ÑÑинно, ÑледоваÑелÑно, бÑÐ´ÐµÑ Ð²ÑбÑан ÑÐ»Ð¾Ñ 440px, Ñогда бÑÐ´ÐµÑ Ð·Ð°Ð³ÑÑжено изобÑажение elva-fairy-480w.jpg, Ñак как ÑвойÑÑво ÑиÑÐ¸Ð½Ñ (480w) наиболее близко знаÑение 440px. УÑловно, изобÑажение 800px Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð½Ð° диÑке 128KB, в Ñо вÑÐµÐ¼Ñ ÐºÐ°Ðº веÑÑÐ¸Ñ Ð² 480px ÑолÑко 63KB â ÑÐºÐ¾Ð½Ð¾Ð¼Ð¸Ñ Ð² 65KB. ТепеÑÑ Ð¿ÑедÑÑавÑÑе, ÑÑо Ñ Ð²Ð°Ñ ÑÑÑаниÑа, на коÑоÑой много изобÑажений. ÐÑполÑзÑÑ ÑÑо ÑеÑ
никÑ, Ð²Ñ Ð¾Ð±ÐµÑпеÑиÑе мобилÑнÑм полÑзоваÑелÑм болÑÑÑÑ Ð¿ÑопÑÑкнÑÑ ÑпоÑобноÑÑÑ.
СÑаÑÑе бÑаÑзеÑÑ, не поддеÑживаÑÑие ÑÑи возможноÑÑи, пÑоÑÑо пÑоигноÑиÑÑÑÑ Ð¸Ñ
и возÑмÑÑ Ð¸Ð·Ð¾Ð±Ñажение по адÑеÑÑ Ð¸Ð· аÑÑибÑÑа src.
ÐÑимеÑание:
РопиÑании ÑлеменÑа <head> Ð²Ñ Ð½Ð°Ð¹Ð´ÑÑе ÑÑÑÐ¾ÐºÑ <meta name="viewport" content="width=device-width">: ÑÑо заÑÑавлÑÐµÑ Ð¼Ð¾Ð±Ð¸Ð»ÑнÑе бÑаÑзеÑÑ Ð°Ð´Ð°Ð¿ÑиÑоваÑÑ Ð¸Ñ
ÑеалÑнÑй viewport width Ð´Ð»Ñ Ð·Ð°Ð³ÑÑзки web-ÑÑÑÐ°Ð½Ð¸Ñ (некоÑоÑÑе мобилÑнÑе бÑаÑзеÑÑ Ð½ÐµÑеÑÑÐ½Ñ Ð½Ð°ÑÑÑÑ Ñвоего viewport width, вмеÑÑо ÑÑого они загÑÑжаÑÑ ÑÑÑаниÑÑ Ð² болÑÑем viewport width, а заÑем ÑжимаÑÑ ÐµÑ, ÑÑо не оÑÐµÐ½Ñ Ñ
оÑоÑо ÑказÑваеÑÑÑ Ð½Ð° наÑиÑ
оÑзÑвÑивÑÑ
изобÑажениÑÑ
или дизайне. ÐÑ ÑаÑÑкажем вам об ÑÑом болÑÑе в бÑдÑÑем модÑле.)
ÐолезнÑе инÑÑÑÑменÑÑ ÑазÑабоÑÑика
ÐÑÑÑ Ð½ÐµÑколÑко полезнÑÑ
бÑаÑзеÑнÑÑ
инÑÑÑÑменÑов ÑазÑабоÑÑика, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð¼Ð¾ÑÑ Ñ Ð¾Ð¿Ñеделением необÑ
одимой ÑиÑÐ¸Ð½Ñ ÑлоÑов и Ñ. д., коÑоÑÑе вам нÑжно иÑполÑзоваÑÑ. Ðогда Ñ ÑабоÑал над ними, Ñ ÑнаÑала загÑÑжал ÑикÑиÑованнÑÑ Ð²ÐµÑÑÐ¸Ñ Ð¼Ð¾ÐµÐ³Ð¾ пÑимеÑа (not-responsive.html), заÑем оÑкÑÑвал Responsive Design View (Tools > Web Developer > Responsive Design View), коÑоÑÑй позволÑÐµÑ Ð²Ð·Ð³Ð»ÑнÑÑÑ Ð½Ð° layout ваÑей веб-ÑÑÑаниÑÑ ÐºÐ°Ðº еÑли Ð±Ñ Ð¾Ð½Ð¸ бÑли пÑоÑмоÑÑÐµÐ½Ñ ÑеÑез ÑÑÑÑойÑÑва Ñ ÑазлиÑнÑми ÑазмеÑами ÑкÑана.
Я ÑÑÑанавливал viewport width на 320px, заÑем на 480px; Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ Ñ Ð¾Ð±ÑаÑалÑÑ Ðº DOM Inspector, кликал по ÑлеменÑÑ <img> в коÑоÑом Ð¼Ñ Ð·Ð°Ð¸Ð½ÑеÑеÑованÑ, далее ÑмоÑÑел ÑÐ°Ð·Ð¼ÐµÑ Ð²Ð¾ вкладке Box Model Ñ Ð¿Ñавой ÑÑоÑÐ¾Ð½Ñ Ð´Ð¸ÑплеÑ. ÐÑо должно даÑÑ Ð²Ð°Ð¼ необÑ
одимÑÑ ÑиÑÐ¸Ð½Ñ Ð¸Ð·Ð¾Ð±ÑажениÑ

РдалÑÑе Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе пÑовеÑиÑÑ ÑабоÑÐ°ÐµÑ Ð»Ð¸ srcset еÑли ÑÑÑановиÑÑ Ð·Ð½Ð°Ñение viewport width Ñаким каким Ð²Ñ Ñ
оÑиÑе (напÑимеÑ, ÑÑÑановиÑÑ ÑзкÑÑ ÑиÑинÑ), оÑкÑÑв Network Inspector (Tools > Web Developer > Network) и заÑем пеÑезагÑÑзиÑÑ ÑÑÑаниÑÑ. ÐÑо должно даÑÑ Ð²Ð°Ð¼ пеÑеÑÐµÐ½Ñ ÑеÑÑÑÑов коÑоÑÑе бÑли загÑÑÐ¶ÐµÐ½Ñ ÑÑÐ¾Ð±Ñ ÑоÑÑавиÑÑ (ÑобÑаÑÑ) web-ÑÑÑаниÑÑ, и ÑÑÑ Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе пÑовеÑиÑÑ ÐºÐ°ÐºÐ¾Ð¹ Ñайл изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð±Ñл вÑбÑан Ð´Ð»Ñ Ð·Ð°Ð³ÑÑзки.

ÐеÑеклÑÑÐµÐ½Ð¸Ñ ÑазÑеÑений: ÐдинаковÑй ÑазмеÑ, ÑазнÑе ÑазÑеÑениÑ
ÐÑли Ð²Ñ Ð¿Ð¾Ð´Ð´ÐµÑживаеÑе неÑколÑко ÑазÑеÑений ÑкÑана, но вÑе видÑÑ Ð²Ð°Ñе изобÑажение в одном и Ñом же ÑазмеÑе на ÑкÑане, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе позволиÑÑ Ð±ÑаÑзеÑÑ Ð²ÑбиÑаÑÑ Ð¸Ð·Ð¾Ð±Ñажение Ñ Ð¿Ð¾Ð´Ñ
одÑÑим ÑазÑеÑением иÑполÑзÑÑ srcset Ñ x-деÑкÑипÑоÑом и без sizes â более пÑоÑÑой ÑинÑакÑиÑ! ÐайÑи пÑÐ¸Ð¼ÐµÑ ÐºÐ°Ðº ÑÑо вÑглÑÐ´Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ здеÑÑ srcset-resolutions.html (ÑмоÑÑиÑе Ñакже the source code):
<img
srcset="elva-fairy-320w.jpg, elva-fairy-480w.jpg 1.5x, elva-fairy-640w.jpg 2x"
src="elva-fairy-640w.jpg"
alt="Elva dressed as a fairy" />
Рданном пÑимеÑе, к изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¿ÑименÑеÑÑÑ CSS Ñаким обÑазом, ÑÑо оно Ð¸Ð¼ÐµÐµÑ ÑиÑÐ¸Ð½Ñ Ð² 320 пикÑелей на ÑкÑане (Ñакже назÑваемое CSS-пикÑелÑми):
img {
width: 320px;
}
Ð ÑÑом ÑлÑÑае, Ð½ÐµÑ Ð½ÐµÐ¾Ð±Ñ
одимоÑÑи в sizes â бÑаÑÐ·ÐµÑ Ð¿ÑоÑÑо опÑеделÑÐµÑ Ð² каком ÑазÑеÑении оÑобÑÐ°Ð¶Ð°ÐµÑ Ð´Ð¸Ñплей и вÑÐ²Ð¾Ð´Ð¸Ñ Ð½Ð°Ð¸Ð±Ð¾Ð»ÐµÐµ подÑ
одÑÑее изобÑажение в ÑооÑвеÑÑÑвии Ñ srcset. Таким обÑазом, еÑли ÑÑÑÑойÑÑво, подклÑÑаемое к ÑÑÑаниÑе, Ð¸Ð¼ÐµÐµÑ Ð´Ð¸Ñплей ÑÑандаÑÑного/низкого ÑазÑеÑениÑ, когда один пикÑÐµÐ»Ñ ÑÑÑÑойÑÑва пÑедÑÑавлÑÐµÑ (ÑооÑвеÑÑÑвÑеÑ) каждÑй CSS-пикÑелÑ, Ñо бÑÐ´ÐµÑ Ð·Ð°Ð³ÑÑжено изобÑажение elva-fairy-320w.jpg (пÑименÑн x1, Ñо еÑÑÑ Ð²Ð°Ð¼ не надо вклÑÑаÑÑ ÐµÐ³Ð¾). ÐÑли ÑÑÑÑойÑÑво Ð¸Ð¼ÐµÐµÑ Ð²ÑÑокое ÑазÑеÑение, в два пикÑÐµÐ»Ñ ÑÑÑÑойÑÑва на каждÑй CSS-пикÑÐµÐ»Ñ Ð¸Ð»Ð¸ более, Ñо бÑÐ´ÐµÑ Ð·Ð°Ð³ÑÑжено изобÑажение elva-fairy-640w.jpg. 640px изобÑажение Ð¸Ð¼ÐµÐµÑ ÑÐ°Ð·Ð¼ÐµÑ 93KB, Ñогда Ñак 320px изобÑажение - вÑего 39KB.
Ð¥ÑдожеÑÑвенное оÑоÑмление
ÐÐ¾Ð´Ð²Ð¾Ð´Ñ Ð¸Ñоги, пÑоблема Ñ
ÑдожеÑÑвенного оÑоÑÐ¼Ð»ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»ÑÑаеÑÑÑ Ð² желании измениÑÑ Ð¾ÑобÑажаемое изобÑажение ÑÑÐ¾Ð±Ñ Ð¾Ð½Ð¾ ÑооÑвеÑÑÑвовало ÑазнÑм ÑазмеÑам оÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¸Ð·Ð¾Ð±ÑажениÑ. ÐапÑимеÑ, еÑли на веб-ÑайÑе оÑобÑажаеÑÑÑ Ð±Ð¾Ð»ÑÑой пейзажнÑй Ñнимок Ñ Ñеловеком поÑеÑедине пÑи пÑоÑмоÑÑе в бÑаÑзеÑе на наÑÑолÑном компÑÑÑеÑе, Ñо пÑи пÑоÑмоÑÑе веб-ÑайÑа в мобилÑном бÑаÑзеÑе он ÑменÑÑаеÑÑÑ; он бÑÐ´ÐµÑ Ð²ÑглÑдеÑÑ Ð¿Ð»Ð¾Ñ
о Ñак как Ñеловек бÑÐ´ÐµÑ Ð¾ÑÐµÐ½Ñ Ð¼Ð°Ð»ÐµÐ½Ñким, и его бÑÐ´ÐµÑ ÑÑжело ÑазглÑдеÑÑ. ÐеÑоÑÑно бÑÐ´ÐµÑ Ð»ÑÑÑе показаÑÑ Ð¼ÐµÐ½ÑÑÑÑ Ð¿Ð¾ÑÑÑеÑнÑÑ ÐºÐ°ÑÑÐ¸Ð½ÐºÑ Ð² мобилÑной веÑÑии на коÑоÑой Ñеловек оÑобÑажаеÑÑÑ Ð² ÑвелиÑении (в пÑиближении). ÐÐ»ÐµÐ¼ÐµÐ½Ñ <picture> позволÑÐµÑ Ð½Ð°Ð¼ пÑименÑÑÑ Ð¸Ð¼ÐµÐ½Ð½Ð¾ Ñакое ÑеÑение.
ÐозвÑаÑаÑÑÑ Ðº наÑÐµÐ¼Ñ Ð¾ÑигиналÑÐ½Ð¾Ð¼Ñ Ð¿ÑимеÑÑ not-responsive.html, Ð¼Ñ Ð¸Ð¼ÐµÐµÐ¼ изобÑажение коÑоÑое оÑÐµÐ½Ñ Ð½ÑждаеÑÑÑ Ð² Ñ ÑдожеÑÑвенном оÑоÑмлении:
<img src="elva-800w.jpg" alt="Chris standing up holding his daughter Elva" />
ÐавайÑе иÑпÑавим ÑÑо пÑи помоÑи ÑлеменÑа <picture>! Так же как <video> и <audio>, ÑÐ»ÐµÐ¼ÐµÐ½Ñ <picture> ÑÑо обÑÑÑка ÑодеÑжаÑÐ°Ñ Ð½ÐµÐºÐ¾ÑоÑое колиÑеÑÑво ÑлеменÑов <source> коÑоÑÑе пÑедоÑÑавлÑÑÑ Ð±ÑаÑзеÑÑ Ð²ÑÐ±Ð¾Ñ Ð½ÐµÑколÑкиÑ
ÑазнÑÑ
иÑÑоÑников, в ÑопÑовождении кÑайне важного ÑлеменÑа <img>. Ðод responsive.html вÑглÑÐ´Ð¸Ñ Ñак:
<picture>
<source media="(max-width: 799px)" srcset="elva-480w-close-portrait.jpg" />
<source media="(min-width: 800px)" srcset="elva-800w.jpg" />
<img src="elva-800w.jpg" alt="Chris standing up holding his daughter Elva" />
</picture>
- ÐлеменÑ
<source>пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð°ÑÑибÑÑmedia, коÑоÑÑй ÑодеÑÐ¶Ð¸Ñ Ð¼ÐµÐ´Ð¸Ð°-ÑÑловие; пÑи помоÑи ÑÑÐ¸Ñ ÑÑловий опÑеделÑеÑÑÑ, какое изобÑажение бÑÐ´ÐµÑ Ð²Ñведено. Рданном ÑлÑÑае, еÑли ÑиÑина viewport'a ÑоÑÑÐ°Ð²Ð¸Ñ 799px или менÑÑе, бÑÐ´ÐµÑ Ð²Ñведено изобÑажение пеÑвого ÑлеменÑа<source>. ÐÑли ÑиÑина ÑоÑÑÐ°Ð²Ð¸Ñ 800px и более â вÑоÑого. - ÐÑÑибÑÑ
srcsetÑодеÑÐ¶Ð¸Ñ Ð¿ÑÑÑ Ð¸Ð·Ð¾Ð±ÑажениÑ, коÑоÑое бÑÐ´ÐµÑ Ð²Ñведено. ÐбÑаÑиÑе внимание, ÑÑо, как и в пÑимеÑе Ñ<img>вÑÑе,<source>Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑинимаÑÑ Ð°ÑÑибÑÑÑsrcsetиsizesÑ Ð½ÐµÑколÑко пÑедопÑеделÑннÑми изобÑажениÑми. Так Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе не ÑолÑко помеÑÑиÑÑ Ð³ÑÑÐ¿Ð¿Ñ Ð¸Ð·Ð¾Ð±Ñажений внÑÑÑи ÑлеменÑа<picture>, но и задаÑÑ Ð³ÑÑÐ¿Ð¿Ñ Ð¿ÑедпиÑаний Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ из Ð½Ð¸Ñ . Ð ÑеалÑноÑÑи Ð²Ñ Ð²ÑÑд ли Ð·Ð°Ñ Ð¾ÑиÑе занимаÑÑÑÑ ÑÑим оÑÐµÐ½Ñ ÑаÑÑо. - ÐÑ Ð²Ñегда Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸ÑполÑзоваÑÑ ÑлеменÑ
<img>, Ñsrcиalt, пÑÑмо пеÑед</picture>, инаÑе изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð½Ðµ поÑвÑÑÑÑ. ÐÑо нÑжно на ÑÐ¾Ñ ÑлÑÑай, когда ни одно из медиа-ÑÑловий не ÑдовлеÑвоÑено (напÑимеÑ, еÑли Ð±Ñ Ð²Ñ ÑбÑали вÑоÑой ÑлеменÑ<source>)или бÑаÑÐ·ÐµÑ Ð½Ðµ поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑлеменÑ<picture>.
ÐÑÐ¾Ñ ÐºÐ¾Ð´ позволÑÐµÑ Ð½Ð°Ð¼ вÑводиÑÑ Ð¾ÑзÑвÑивое изобÑажение и на ÑиÑÐ¾ÐºÐ¸Ñ , и на ÑÐ·ÐºÐ¸Ñ ÑкÑÐ°Ð½Ð°Ñ , как показано ниже:


ÐÑимеÑание:
Ðам ÑледÑÐµÑ Ð¸ÑполÑзоваÑÑ Ð°ÑÑибÑÑ media ÑолÑко пÑи Ñ
ÑдожеÑÑвенном оÑоÑмлении; когда Ð²Ñ Ð¸ÑполÑзÑеÑе media, не пÑименÑйÑе медиа-ÑÑÐ»Ð¾Ð²Ð¸Ñ Ñ Ð°ÑÑибÑÑом sizes.
ÐоÑÐµÐ¼Ñ ÑÑо нелÑÐ·Ñ ÑделаÑÑ Ð¿Ð¾ÑÑедÑÑвом CSS и JavaScript?
Ðогда бÑаÑÐ·ÐµÑ Ð½Ð°ÑÐ¸Ð½Ð°ÐµÑ Ð·Ð°Ð³ÑÑжаÑÑ ÑÑÑаниÑÑ, он наÑÐ¸Ð½Ð°ÐµÑ Ð·Ð°Ð³ÑÑÐ·ÐºÑ Ð¸Ð·Ð¾Ð±Ñажений до Ñого, как главнÑй паÑÑÐµÑ Ð½Ð°Ñал загÑÑжаÑÑ Ð¸ инÑеÑпÑеÑиÑоваÑÑ CSS и JavaScript. Ð ÑÑеднем, ÑÑа ÑеÑ
ника ÑменÑÑÐ°ÐµÑ Ð²ÑÐµÐ¼Ñ Ð·Ð°Ð³ÑÑзки ÑÑÑаниÑÑ Ð½Ð° 20%. Ðо она не Ñак полезна в ÑлÑÑае Ñ Ð°Ð´Ð°Ð¿ÑивнÑми изобÑажениÑми, поÑÑÐ¾Ð¼Ñ Ð¸ необÑ
Ð¾Ð´Ð¸Ð¼Ñ Ñакие ÑеÑениÑ, как srcset. ÐапÑимеÑ, Ð²Ñ Ð½Ðµ могли Ð±Ñ Ð·Ð°Ð³ÑÑзиÑÑ ÑÐ»ÐµÐ¼ÐµÐ½Ñ <img>, поÑом опÑеделиÑÑ ÑиÑÐ¸Ð½Ñ Ð²ÑÑпоÑÑа пÑи помоÑи JavaScript и динамиÑеÑки измениÑÑ Ð¸ÑÑоÑник изобÑажениÑ. ÐзнаÑалÑное изобÑажение бÑло Ð±Ñ Ñже загÑÑжено к ÑÐ¾Ð¼Ñ Ð²Ñемени, как Ð²Ñ Ð·Ð°Ð³ÑÑзили его менÑÑÑÑ Ð²ÐµÑÑиÑ, ÑÑо плоÑ
о.
Смело иÑполÑзÑйÑе ÑовÑеменнÑе ÑоÑмаÑÑ Ð¸Ð·Ð¾Ð±Ñажений
ÐÑÑÑ Ð½ÐµÑколÑко новÑÑ ÑоÑмаÑов изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ (ÑÐ°ÐºÐ¸Ñ , как WebP и JPEG-2000), коÑоÑÑм ÑдаÑÑÑÑ ÑÐ¾Ñ ÑанÑÑÑ Ð²ÑÑокое каÑеÑÑво пÑи малом ÑазмеÑе Ñайла. Тем не менее, бÑаÑзеÑÑ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑ Ð¸Ñ Ð½Ðµ полноÑÑÑÑ.
<picture> позволÑÐµÑ Ð½Ð°Ð¼ иÑполÑзоваÑÑ Ð¸Ñ
в ÑÑаÑÑÑ
бÑаÑзеÑаÑ
. ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑопиÑаÑÑ MIME-Ñип внÑÑÑи аÑÑибÑÑа type, бÑаÑÐ·ÐµÑ ÑÑÐ°Ð·Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»Ð¸Ñ ÑÐ°Ð¹Ð»Ñ Ñакого Ñипа как неподдеÑживаемÑе:
<picture>
<source type="image/svg+xml" srcset="pyramid.svg" />
<source type="image/webp" srcset="pyramid.webp" />
<img
src="pyramid.png"
alt="regular pyramid built from four equilateral triangles" />
</picture>
- Ðе иÑполÑзÑйÑе аÑÑибÑÑ
media, еÑли вам не нÑжно Ñ ÑдожеÑÑвенное оÑоÑмление. - Ð ÑлеменÑе
<source>можно ÑказÑваÑÑ Ð¿ÑÑÑ Ðº изобÑажениÑм ÑолÑко Ñого Ñипа, коÑоÑÑй Ñказан вtype. - Ðак и в пÑедÑдÑÑиÑ
пÑимеÑаÑ
, пÑи необÑ
одимоÑÑи Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ
srcsetиsizes.
ÐкÑивное обÑÑение: ÑеализаÑÐ¸Ñ ÑобÑÑвеннÑÑ Ð°Ð´Ð°Ð¿ÑивнÑÑ Ð¸Ð·Ð¾Ð±Ñажений
СамоÑÑоÑÑелÑно ÑоздайÑе оÑзÑвÑивое, Ñ
ÑдожеÑÑвенно оÑоÑмленное изобÑажение Ð´Ð»Ñ ÑиÑокиÑ
и ÑзкиÑ
ÑкÑанов, иÑполÑзÑÑ <picture> и srcset.
- ÐапиÑиÑе пÑоÑÑÑÑ HTML-ÑазмеÑкÑ.
- ÐайдиÑе ÑиÑокоÑоÑмаÑное пейзажное ÑоÑо Ñ ÐºÐ°ÐºÐ¾Ð¹-нибÑÐ´Ñ ÑÑкой деÑалÑÑ. СоздайÑе веб-веÑÑÐ¸Ñ Ð¸Ð·Ð¾Ð±ÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾ÑÑедÑÑвом гÑаÑиÑеÑкого ÑедакÑоÑа, поÑом обÑежÑÑе его, ÑÑÐ¾Ð±Ñ ÐºÑÑпнее вÑделиÑÑ Ð´ÐµÑалÑ, и ÑоздайÑе вÑоÑое изобÑажение (пÑимеÑно 480px доÑÑаÑоÑно).
- ÐÑполÑзÑйÑе ÑлеменÑ
<picture>Ð´Ð»Ñ ÑабоÑÑ Ñ Ñ ÑдожеÑÑвенно оÑоÑмленной каÑÑинкой. - ÐбознаÑÑÑе неÑколÑко ÑазнÑÑ ÑазмеÑов Ð´Ð»Ñ ÑÑой каÑÑинки.
- ÐÑполÑзÑйÑе
srcset/sizeÐ´Ð»Ñ Ð¾Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ Ð¿ÐµÑеклÑÑÐµÐ½Ð¸Ñ Ð¿Ñи Ñмене ÑазмеÑов вÑÑпоÑÑа
ÐÑимеÑание: ÐÑполÑзÑйÑе инÑÑÑÑменÑÑ ÑазÑабоÑÑика, ÑÑÐ¾Ð±Ñ Ð¾ÑÑледиÑÑ ÑÐ¼ÐµÐ½Ñ ÑазмеÑа, как бÑло опиÑано вÑÑе.
ÐаклÑÑение
ÐÑо вÑе Ð´Ð»Ñ Ð¾ÑзÑвÑивÑÑ Ð¸Ð·Ð¾Ð±Ñажений - Ð¼Ñ Ð½Ð°Ð´ÐµÐµÐ¼ÑÑ, вам понÑавилоÑÑ Ð¸Ð³ÑаÑÑ Ñ ÑÑими новÑми ÑÐµÑ Ð½Ð¾Ð»Ð¾Ð³Ð¸Ñми. Ðапомним, ÑÑо Ð¼Ñ Ð·Ð´ÐµÑÑ Ð¾Ð±ÑÑждали две ÑазлиÑнÑе пÑоблемÑ:
- Ð¥ÑдожеÑÑвенное оÑоÑмление: ÐÑоблема, пÑи коÑоÑой Ð²Ñ Ñ
оÑиÑе иÑполÑзоваÑÑ Ð¾Ð±ÑезаннÑе изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÑазлиÑнÑÑ
макеÑов - напÑимеÑ, ландÑаÑÑное изобÑажение Ð´Ð»Ñ Ð¿Ð¾Ð»Ð½ÑÑ
ÑкÑанов на макеÑе компÑÑÑеÑа и поÑÑÑеÑное изобÑажение, показÑваÑÑее ÑвелиÑеннÑй оÑновной обÑекÑ, Ð´Ð»Ñ Ð¼Ð¾Ð±Ð¸Ð»Ñного макеÑа. ÐÑÑ ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑеÑено Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ
<picture>ÑлеменÑа. - ÐеÑеклÑÑение ÑазÑеÑений: ÐÑоблема, пÑи коÑоÑой Ð²Ñ Ñ
оÑиÑе иÑполÑзоваÑÑ ÑÐ°Ð¹Ð»Ñ Ð¸Ð·Ð¾Ð±Ñажений менÑÑего ÑазмеÑа на ÑÑÑÑойÑÑваÑ
Ñ Ñзким ÑкÑаном, поÑколÑÐºÑ Ð¸Ð¼ не нÑÐ¶Ð½Ñ Ð¾Ð³ÑомнÑе изобÑажениÑ, как на наÑÑолÑнÑÑ
диÑплеÑÑ
, а Ñакже дополниÑелÑно, ÑÑо Ð²Ñ Ñ
оÑиÑе иÑполÑзоваÑÑ Ð¸Ð·Ð¾Ð±ÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ñазного ÑазÑеÑÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÑкÑанов Ñ Ð²ÑÑокой/низкой плоÑноÑÑÑÑ. ÐÑÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð¼Ð¾Ð¶Ð½Ð¾ ÑеÑиÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð²ÐµÐºÑоÑной гÑаÑики (SVG изобÑажений), и
srcsetиsizesаÑÑибÑÑÑ.
ÐÑо Ñак же Ð¿Ð¾Ð´Ð²Ð¾Ð´Ð¸Ñ Ð½Ð°Ñ Ðº оконÑÐ°Ð½Ð¸Ñ Ñелого модÑÐ»Ñ "ÐÑлÑÑимедиа и вÑÑÑаивание"! ÐдинÑÑвенное, ÑÑо вам оÑÑалоÑÑ ÑейÑÐ°Ñ ÑделаÑÑ Ð¿ÐµÑед Ñем, как двигаÑÑÑÑ Ð´Ð°Ð»ÑÑе - ÑÑо попÑобоваÑÑ Ð½Ð°Ñе мÑлÑÑимедийное задание и поÑмоÑÑеÑÑ, как Ð²Ñ ÑÑвоили маÑеÑиал. ÐеÑелиÑеÑÑ!
ÐоÑмоÑÑиÑе Ñак же
- ÐÑлиÑное введение в оÑзÑвÑивÑе изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¾Ñ ÐжейÑона ÐÑигÑби
- ÐÑзÑвÑивÑе изобÑажениÑ: ÐÑли Ð²Ñ ÑолÑко менÑеÑе ÑазÑеÑÐµÐ½Ð¸Ñ Ð¸ÑполÑзÑйÑе srcset â вклÑÑÐ°ÐµÑ Ð±Ð¾Ð»ÑÑе обÑÑÑнений Ñого,как бÑаÑÐ·ÐµÑ Ð²ÑбиÑаеÑ,какое изобÑажение иÑполÑзоваÑÑ
<img><picture><source>