Болжол менен 15 жыл мурун мен компанияда иштечүмүн, ал жерде биз туристтик агенттиктер, аэропорттун кызматкерлери жана авиакомпаниялар үчүн колдонмолорду курганбыз. Биз ошондой эле UI компоненттери жана бир беттик колдонмо мүмкүнчүлүктөрү үчүн өзүбүздүн ички негизибизди курдук. Бизде бардыгы үчүн компоненттер бар болчу: талаалар, баскычтар, өтмөктөр, диапазондор, маалымат таблицалары, менюлар, дата тандоочулар, тандоолор жана көп тандоолор. Бизде div компоненти да бар болчу. Баса, биздин div компонентибиз сонун болду, ал бардык браузерлерде тегеректелген бурчтарды жасоого мүмкүндүк берди, ишенесизби же ишенбеңиз, ал кезде оңой иш эмес болчу.

Биздин иш биздин тарыхыбызда JS, Ajax жана динамикалык HTML бизди келечекке алып келген революция катары каралып турган учурда болду. Күтүлбөгөн жерден биз баракты динамикалык түрдө жаңыртып, серверден маалыматтарды алып, башка барактарга өтүүдөн качсак болот, ал жай болуп көрүндү жана экранда эки барактын ортосунда чоң ак тик бурчтук жаркырап турду. Джефф Этвуд (StackOverflowдин негиздөөчүсү) тарабынан популярдуу болгон фраза бар болчу, анда мындай деп жазылган: "JavaScript менен жазылышы мүмкүн болгон бардык тиркеме акыры JavaScript менен жазылат." - Джефф Этвуд

Ошол убакта биз үчүн бул чындап барып, ошол колдонмолорду түзүүгө батынгандай сезилди. Бул JS менен баарын жасоого жалпы макулдук сыяктуу сезилди. Ошентип, биз бардыгын JS менен жасадык жана иштин башка жолдорун изилдөөгө убакыт бөлгөн жокпуз. Биз чындап эле HTML жана CSS эмне кыла аларын туура үйрөнүүгө шыктанган жокпуз. Биз интернетти толугу менен өнүгүп жаткан колдонмо платформасы катары кабыл алган жокпуз. Биз көбүнчө аны иштешибиз керек болгон нерсе катары көрдүк, айрыкча браузерди колдоого келгенде. Ишти бүтүрүү үчүн биз ага көбүрөөк JS ыргыта алабыз. Веб кантип иштегени жана платформада эмне бар экенин билүү үчүн убакыт бөлүү мага жардам бердиби? Албетте, мен чындап кереги жок бир топ кодду кырып алсам болмок. Бирок, ошол учурда, балким, анчалык деле эмес. Көрдүңүзбү, браузердин айырмачылыктары ошол кезде абдан маанилүү болчу. Бул Internet Explorer дагы эле үстөмдүк кылуучу браузер болуп, Firefox экинчи орунда турган, бирок Chrome тездик менен популярдуулукка ээ болгондугуна байланыштуу рынок үлүшүн жогото баштаган учур болчу. Chrome жана Firefox веб-стандарттарды макулдашканы менен, биздин колдонмолор иштеп жаткан чөйрөлөр биз IE6ды узак убакыт бою колдоого алышыбыз керек болчу. Бизге IE8ди колдоого уруксат берилгенде дагы, браузерлердин ортосундагы көптөгөн айырмачылыктар менен күрөшүүгө туура келди. Ал гана эмес, ошол кездеги желеде платформага орнотулган мынчалык көп мүмкүнчүлүктөр болгон эмес.

Бугунку кунду тез алдыга. нерселер абдан өзгөрдү. Бизде бул мүмкүнчүлүктөр мурда болуп көрбөгөндөй көбөйүп гана тим болбостон, алардын жеткиликтүү болуу ылдамдыгы да өстү. Мага дагы бир жолу суроо берейин, анда: Веб кантип иштээри жана платформада эмне бар экендиги жөнүндө көбүрөөк билүү үчүн убакыт бөлүп, бүгүн сизге жардам береби? Абсолюттук ооба. Бүгүн веб-платформаны түшүнүүнү жана колдонууну үйрөнүү сизди башка иштеп чыгуучуларга караганда чоң артыкчылыкка ээ кылат. Майнаптуулук, жеткиликтүүлүк, жооп кайтаруу, алардын бардыгы менен чогуу иштейсизби, же жөн гана UI функцияларын жөнөтөсүзбү, эгер сиз муну жоопкерчиликтүү инженер катары жасагыңыз келсе, сизге жеткиликтүү куралдарды билүү максаттарыңызга тезирээк жана жакшыраак жетүүгө жардам берет. Кээ бир нерселер сизге мындан ары китепкананын кереги жок болушу мүмкүн Бүгүнкү күндө кайсы браузерлер колдоорун билип туруп, суроо туулат: Биз эмнеден баш тарта алабыз? 2025-жылы тегеректелген бурчтарды жасоо үчүн бизге div компоненти керекпи? Албетте, биз жок. border-radius касиети учурда колдонулган бардык браузерлер тарабынан 15 жылдан ашык убакыттан бери колдоого алынган. Жана бурч формасы да жакында келет, андан да кооз бурчтар үчүн. Келгиле, азыр бардык негизги браузерлерде жеткиликтүү болгон жана код базасындагы бар көз карандылыктарды алмаштыруу үчүн колдоно ала турган салыштырмалуу жаңы функцияларды карап көрөлү. Кеп бардык сүйүктүү китепканаларыңызды дароо таштап, код базасын кайра жазууда эмес. Калгандарынын бардыгына келсек, адегенде браузердин колдоосун эске алып, долбооруңузга мүнөздүү башка факторлордун негизинде чечим кабыл алышыңыз керек. Төмөнкү функциялар үч негизги серепчи кыймылдаткычында (Chromium, WebKit жана Gecko) ишке ашырылган, бирок сизде аларды дароо колдонууга тоскоол болгон ар кандай браузерди колдоо талаптары болушу мүмкүн. Азыр деле бул өзгөчөлүктөр жөнүндө билүү үчүн жакшы убакыт, бирок, балким, аларды кандайдыр бир учурда колдонууну пландаштырууда. Popovers And Dialogs Popover API,

HTML элементи жана ::backdrop псевдоэлементи калкыма терезедеги көз карандылыктан арылууга жардам берет,курал үчүн кеңеш жана Floating UI, Tippy.js, Tether же React Tooltip сыяктуу диалог китепканалары. Алар сиз үчүн жеткиликтүүлүктү жана фокусту башкарууну, кутудан тышкары, CSS колдонуу менен абдан ыңгайлаштырылган жана оңой эле анимациялоого болот. Аккордеондор <деталдары> элементи, анын өз ара эксклюзивдүү элементтер үчүн атрибуту жана ::details-content псевдоэлементи Bootstrap Accordion же React Accordion компоненти сыяктуу аккордеон компоненттеринин зарылдыгын жок кылат. Бул жерде жөн гана платформаны колдонуу HTML/CSSти билген адамдар үчүн адегенде белгилүү бир китепкананы колдонууну үйрөнбөй туруп, кодуңузду түшүнүү оңой дегенди билдирет. Бул ошондой эле китепканадагы өзгөрүүлөргө же ал китепкананын ишин токтотууга каршы иммунитетиңизди билдирет. Жана, албетте, бул жүктөп алуу жана иштетүү үчүн азыраак кодду билдирет. Өз ара эксклюзивдүү деталдардын элементтерин ачуу, жабуу же жандандыруу үчүн JS керек эмес. CSS синтаксиси Каскаддык катмарлар, бир кыйла уюшкан CSS код базасы үчүн, CSS уячалары, дагы компакттуу CSS үчүн, жаңы түс функциялары, салыштырмалуу түстөр жана түс аралашмасы, abs(), sign(), pow() жана башкалар сыяктуу жаңы Maths функциялары CSS алдын ала процессорлорунан, Bootstrap жана Tailwind сыяктуу утилита китепканаларынан көз карандылыкты азайтууга жардам берет. Оюн алмаштыргыч :has(), көптөн бери эң көп талап кылынган функциялардын бири, JS негизиндеги татаалыраак чечимдерге болгон муктаждыкты жок кылат. JS Utilities FindLast(), же at() сыяктуу заманбап Array методдору, ошондой эле айырма(), intersection(), union() жана башкалар сыяктуу Set методдору Lodash сыяктуу китепканалардан көз карандылыкты азайтат. Контейнер сурамдары Контейнер сурамдары UI компоненттерин көрүү терезесинин өлчөмүнөн башка нерселерге жооп берет, ошондуктан аларды ар кандай контексттерде кайра колдонууга болот. Бул үчүн мындан ары JS-heavy UI китепканасын колдонуунун кереги жок жана политолтурууну да колдонуунун кереги жок. Макет Grid, subgrid, flexbox же көп тилкелүү көптөн бери иштеп келе жатат, бирок CSS абалы боюнча сурамжылоолордун натыйжаларына караганда, иштеп чыгуучулар жаңы нерселерди кабыл алууда өтө этияттык менен мамиле кылышат жана алардан мурун абдан көп убакыт күтүшөт. Бул өзгөчөлүктөр көптөн бери Базалык болуп келген жана сиз аларды Bootstrap тор системасы, Foundation Framework'дун flexbox утилиталары, Bulma туруктуу тор, Materialize тор же Tailwind мамычалары сыяктуу нерселерден көз карандылыктан арылуу үчүн колдонсоңуз болот. Мен сиздин рамкаңызды ташташыңыз керек деп айткан жокмун. Сиздин команда аны бир себеп менен кабыл алган жана аны алып салуу чоң долбоор болушу мүмкүн. Бирок веб-платформанын үстүнкү жагында үчүнчү жактын таңгычы жок эмне сунуш кыла аларын карап көрүү көптөгөн артыкчылыктарга ээ. Жакынкы келечекте сизге кереги жок болушу мүмкүн болгон нерселер Эми, келгиле, жакынкы келечекте китепканага муктаж болбой турган нерселердин айрымдарын карап көрөлү. Башкача айтканда, төмөндөгү нерселер массалык түрдө кабыл алууга даяр эмес, бирок алар жөнүндө билип, кийинчерээк колдонууну пландаштыруу пайдалуу болушу мүмкүн. Anchor Positioning CSS анкеринин жайгашуусу башка элементтерге салыштырмалуу калкып чыгуучу куралдардын жана инструменттердин позициясын иштетет жана баракты жылдырганда, сыдырганда же өлчөмүн өзгөрткөндө да аларды көрүү үчүн кам көрөт. Бул жогоруда айтылган Popover API үчүн эң сонун кошумча болуп саналат, ал аны көбүрөөк өндүрүмдүүлүктү талап кылган JS чечимдеринен алыстатууну жеңилдетет. Navigation API Navigation API бир беттик колдонмолордо навигацияны иштетүү үчүн колдонулушу мүмкүн жана React Router, Next.js маршрутизациясы же Angular багыттоо тапшырмаларына сонун кошумча, ал тургай алмаштыруучу болушу мүмкүн. Transitions API көрүү View Transitions API барактын ар кандай абалдарын жандыра алат. Бир беттик тиркемеде бул абалдардын ортосундагы жылмакай өтүүнү жеңилдетет жана Anime.js, GSAP же Motion.dev сыяктуу анимация китепканаларынан арылууга жардам берет. Андан да жакшысы, API бир нече беттик тиркемелер менен да колдонсо болот. Эсиңиздеби, буга чейин мен 15 жыл мурун иштеген компанияда бир барактан турган колдонмолорду курганыбыздын себеби навигацияда баракты кайра жүктөөнүн ак жарк этүүсүн алдын алуу деп айтканымда? Эгерде ошол учурда API жеткиликтүү болгондо, биз бир беттик алкаксыз жана бүтүндөй колдонмону чоң жүктөөсүз эле кооз барак өтүү эффекттерине жете алмакпыз. Жылдыруу менен башкарылган анимациялар Сыдыруу менен башкарылган анимациялар убакыттын өтүшү менен эмес, колдонуучунун сыдырма позициясында иштейт, бул аларды окуяны баяндоо жана продукт турлары үчүн мыкты чечим кылат. Кээ бир адамдар аны менен бир аз ашып кетишти, бирок жакшы колдонулганда, бул абдан эффективдүү дизайн куралы болушу мүмкүн жана төмөнкүдөй китепканалардан арылууга жардам берет: ScrollReveal, GSAP Scroll, жеWOW.js. Ыңгайлаштырылган тандоолор Ыңгайлаштырылган тандоо - бул кадимки <таңдоо> элементи, ал сизге анын көрүнүшүн жана мазмунун толук ыңгайлаштырууга мүмкүндүк берет, ошол эле учурда жеткиликтүүлүк жана аткаруу артыкчылыктарын камсыз кылат. Бул көптөн бери келе жатат жана абдан талап кылынган функция жана анын жакында веб платформага келгенин көрүү таң калыштуу. Камтылган өзгөчөлөштүрүлүүчү тандоо менен сиз ыңгайлаштырылган тандалма компоненттериңиз үчүн бул сактоо кыйын JS кодун жок кыла аласыз. CSS Masonry CSS Masonry дагы бир келе жаткан веб-платформанын өзгөчөлүгү, мен ага көбүрөөк убакыт короткум келет. CSS Masonry менен сиз ийкемдүү, тор же башка орнотулган CSS макет примитивдери менен абдан кыйын, атүгүл мүмкүн эмес макеттерге жетише аласыз. Иштеп чыгуучулар көбүнчө Masonry JS китепканасы сыяктуу Masonry макеттерине жетүү үчүн үчүнчү тараптын китепканаларын колдонушат. Бирок, бул тууралуу кийинчерээк. Масондукка өтүүдөн мурун бул ойду жыйынтыктайлы. Эмне үчүн кам көрүш керек Эмгек рыногу JavaScript тажрыйбасы жана күндүн эң акыркы алкактары бар веб-иштеп чыгуучуларга толгон. Демек, чындап эле, веб-платформанын примитивдерин көбүрөөк колдонууну үйрөнүүнүн эмне кереги бар, эгерде сиз бүгүн билген китепканалар, утилиталар жана алкактар ​​менен ошол эле нерселерди кыла алсаңыз? Бүтүндөй бир тармак ушул алкактарга таянып, сиз жөн гана туура китепкананы тарта алганыңызда, браузердин сатуучулары иштеп чыгуучуларды платформаны колдонууга ынандыруунун ордуна, аларды тезирээк жүктөө жана иштетүү үчүн бул китепканалар менен иштеши керек эмеспи? Биринчиден, биз китепкананын авторлору менен иштейбиз жана алар эмнени колдонгонун үйрөнүү жана ал аймактарды жакшыртуу менен алкактарды жакшыртабыз. Бирок, экинчиден, "платформаны колдонуу" абдан олуттуу пайда алып келиши мүмкүн. Түзмөктөргө азыраак код жөнөтүү Негизги пайдасы - сиз кардарларыңыздын түзмөктөрүнө алда канча азыраак код жөнөтөсүз. 2024-жылдагы Веб-альманахка ылайык, HTTP сурамдарынын орточо саны ар бир сайтка 70ке жакын, алардын көбү 23 суроо менен JavaScript менен шартталган. 2024-жылы JS файлдардын басымдуу түрү катары сүрөттөрдү басып өттү. JS файлдары үчүн баракча сурамдарынын орточо саны 23 болуп, 2022-жылдан бери 8% га өскөн. Жана беттин көлөмү жылдан жылга өсүүдө. Барактын орточо салмагы азыр 2 МБ тегерегинде, бул 10 жыл мурункуга караганда 1,8 МБга көп.

Албетте, интернетке туташуу ылдамдыгы да көбөйдү, бирок бул бардыгы үчүн андай эмес. Ошондой эле ар бир адам бирдей түзмөк мүмкүнчүлүктөрүнө ээ эмес. Платформа менен жасай ала турган нерселер үчүн үчүнчү тараптын кодун тартуу, анын ордуна, балким, сиз көбүрөөк код жөнөтүп, демек, адаттагыдан азыраак кардарларга жетесиз. Интернетте жүктөөнүн начар иштеши чоң баш тартууга алып келет жана бренддин беделине доо кетирет. Түзмөктөрдө азыраак кодду иштетүү Андан тышкары, кардарларыңыздын түзмөктөрүнө жөнөткөн код, платформанын үстүндө азыраак JavaScript абстракцияларын колдонсо, тезирээк иштейт. Ал, балким, демейки боюнча көбүрөөк жооп берет жана жеткиликтүү. Мунун баары көбүрөөк жана бактылуу кардарларды алып келет. Кесиптешим Алекс Расселдин жылдык көрсөткүчтөрдүн теңсиздиги боюнча блогун текшериңиз, бул премиум түзмөктөр байлыктын теңсиздигинен улам миллиарддаган колдонуучулары бар базарларда жок экенин көрсөтүп турат. Жана бул ажырым убакыттын өтүшү менен гана өсүп жатат.

Киргизилген масондук схемасы Жакында чыга турган веб-платформанын бир өзгөчөлүгү жана мени абдан кубандырган CSS Masonry.

Масончулук деген эмне экенин түшүндүрүп берейин. Масондук деген эмне Масондук - бул Pinterest тарабынан жыл мурун популярдуу болгон макеттин бир түрү. Ал мазмундун көз карандысыз тректерин түзөт, анын ичинде элементтер тректин башталышына мүмкүн болушунча жакын жайгашкан.

Көптөгөн адамдар масондукту портфолио жана фото галереялар үчүн эң сонун вариант катары көрүшөт, аны албетте жасай алат. Бирок Masonry сиз Pinterestте көргөн нерсеге караганда ийкемдүү жана ал шаркыратма сыяктуу макеттер менен эле чектелбейт. Масондук схемасында:

Тректер мамычалар же саптар болушу мүмкүн:

Мазмундун тректеринин баары бирдей өлчөмдө болбошу керек:

Элементтер бир нече тректерди камтышы мүмкүн:

Буюмдарды атайын тректерге коюуга болот; алар ар дайым автоматтык жайгаштыруу алгоритмин ээрчиши керек эмес:

Демолар Бул жерде Chromium'да CSS Masonry программасын ишке ашыруу аркылуу жасаган бир нече жөнөкөй демонстрациялар бар. Сүрөт галереясынын демосу, буюмдардын (бул учурда аталышы) бир нече тректерди кантип камтышы мүмкүн:

Ар кандай өлчөмдөгү тректерди көрсөткөн дагы бир сүрөт галереясы:

Жаңылыктар сайтынын макети айрым тректер башкаларга караганда кененирээк жана кээ бир элементтер макеттин бүт кеңдигин камтыган:

Канбан тактасы буюмдарды белгилүү тректерге жайгаштырууга болорун көрсөткөн:

Эскертүү: Theмурунку демонстрациялар Chromium'дун версиясы менен жасалган, ал көпчүлүк веб колдонуучулар үчүн жеткиликтүү эмес, анткени CSS Masonry браузерлерде жаңы гана ишке ашырыла баштады. Бирок, веб-иштеп чыгуучулар бир нече жылдар бою китепканаларды Masonry макеттерин түзүү үчүн колдонуп келишет. Бүгүн масондукту колдонгон сайттар Чынында эле, масондук бүгүн интернетте кеңири таралган. Бул жерде мен Pinterestтен тышкары тапкан бир нече мисалдар бар:

Жана дагы бир нече, анча айкын эмес, мисалдар:

Демек, бул макеттер кантип түзүлгөн? Чечүүчү жолдор Мен көргөн амалдардын бири - анын ордуна Flexbox макетін колдонуу, анын багытын мамычага өзгөртүү жана аны ороп коюу. Ошентип, сиз ар кандай бийиктиктеги нерселерди бир нече, көз карандысыз мамычаларга жайгаштырып, Масондук макеттин элесин калтыра аласыз:

Бирок, бул убактылуу чечүү менен эки чектөөлөр бар:

Буюмдардын тартиби чыныгы Масондук макет менен айырмаланат. Flexbox менен элементтер биринчи тилкени толтуруп, ал толгондо кийинки тилкеге ​​өтүшөт. Масондук менен, буюмдар кайсы трекке (же бул учурда тилкеге) көбүрөөк орун бар болсо, ошол жерге топтолот. Бирок, ошондой эле, балким, андан да маанилүүсү, бул убактылуу чечүү Flexbox контейнерине белгиленген бийиктикти коюуну талап кылат; антпесе, эч кандай ороо болбойт.

Үчүнчү жактын Масондук китепканалары Өркүндөтүлгөн учурларда, иштеп чыгуучулар китепканаларды колдонуп келишкен. Бул үчүн эң белгилүү жана популярдуу китепкана жөн гана масондук деп аталат жана NPM боюнча жумасына 200 000 жолу жүктөлүп алынат. Squarespace ошондой эле кодсуз альтернатива үчүн Masonry макетін көрсөткөн макет компонентин камсыз кылат жана көптөгөн сайттар аны колдонушат. Бул параметрлердин экөө тең элементтерди макетке жайгаштыруу үчүн JavaScript кодун колдонушат. Камтылган масондук Masonry азыр браузерлерде орнотулган CSS өзгөчөлүгү катары пайда боло баштаганына абдан кубанычтамын. Убакыттын өтүшү менен сиз Grid же Flexbox сыяктуу Masonryди колдоно аласыз, башкача айтканда, эч кандай убактылуу чечимдерди же үчүнчү тараптын кодун талап кылбастан. Майкрософттогу менин командам Edge, Chrome жана башка көптөгөн браузерлер негизделген Chromium ачык булак долбоорунда орнотулган Masonry колдоосун ишке ашырып келет. Mozilla чындыгында 2020-жылы Masonry'ди эксперименталдык ишке киргизүүнү сунуш кылган биринчи браузер сатуучусу болгон. Ал эми Apple да бул жаңы веб макеттин примитивдүү болушуна абдан кызыкдар. Функцияны стандартташтыруу боюнча иш дагы алдыга жылып жатат, CSS жумушчу тобунун жалпы багыты жана ал тургай жаңы дисплей түрү: тор тилкелери жөнүндө макулдашуу менен. Эгер сиз Масончулук жөнүндө көбүрөөк билгиңиз келсе жана прогресске көз салгыңыз келсе, менин CSS Masonry ресурстары баракчамды текшериңиз. Убакыттын өтүшү менен, Masonry Grid же Flexbox сыяктуу Базалык өзгөчөлүккө айланганда, биз аны жөн гана колдонуп, пайда таба алабыз:

Жакшыраак аткаруу, Жакшыраак жооп берүү, Колдонуу оңой жана жөнөкөй код.

Келгиле, буларды кененирээк карап чыгалы. Жакшыраак аткаруу Өзүңүздүн Masonry сыяктуу жайгашуу тутумуңузду түзүү же анын ордуна үчүнчү тараптын китепканасын колдонуу, элементтерди экранга жайгаштыруу үчүн JavaScript кодун иштетүү керек дегенди билдирет. Бул ошондой эле бул кодду бөгөттөө болот дегенди билдирет. Чынында эле, JavaScript коду иштетилмейинче, эч нерсе көрүнбөйт, же нерселер туура жерде же туура өлчөмдө болбойт. Масондук макет көбүнчө веб-баракчанын негизги бөлүгү үчүн колдонулат, демек, код сиздин негизги мазмунуңузду кечирээк көрсөтүп, LCP же эң чоң Contentful Paint метрикаңызды начарлатат, ал кабыл алынган аткарууда жана издөө системасын оптималдаштырууда чоң роль ойнойт. Мен Masonry JS китепканасын жөнөкөй макет менен жана DevTools'та жай 4G туташуусун симуляциялоо менен сынап көрдүм. Китепкана анча чоң эмес (24KB, 7.8KB gzipped), бирок менин сыноо шарттарымда жүктөө үчүн 600 мс талап кылынды. Бул жерде Masonry китепканасы үчүн 600 мс жүктөө убактысынын узактыгын жана ал болуп жатканда башка рендеринг аракети болбогонун көрсөткөн аткаруу жазуусу:

Кошумчалай кетсек, жүктөөнүн алгачкы убактысы бүткөндөн кийин, жүктөлүп алынган скрипт талдоо, компиляциялоо жана андан кийин иштетүү керек. Мунун баары, мурда айтылгандай, баракты көрсөтүүгө тоскоол болгон. Браузерде орнотулган Masonry ишке ашыруу менен бизде жүктөө жана иштетүү үчүн скрипт болбойт. Браузердин кыймылдаткычы беттин алгачкы рендеринг баскычында эле өз милдетин аткарат. Жакшыраак жооп берүү Барак биринчи жолу жүктөлгөндөй эле, браузердин терезесинин өлчөмүн өзгөртүү ошол барактын макетинин кайрадан көрсөтүлүшүнө алып келет. Бул учурда, эгерде барак Masonry JS китепканасын колдонуп жатса, скриптти кайра жүктөөнүн кереги жок, анткени ал мурунтан элебул жерде. Бирок, элементтерди керектүү жерлерге жылдыруучу код иштеши керек. Эми бул өзгөчө китепкана баракты жүктөөдө муну абдан тез жасайт окшойт. Бирок, ал терезенин өлчөмүн өзгөртүү боюнча башка жерге жылдыруу керек болгондо элементтерди жандандырат жана бул чоң айырмачылыкты жаратат. Албетте, колдонуучулар браузер терезелеринин өлчөмүн өзгөртүүгө биз иштеп чыгуучулардай көп убакыт коротушпайт. Бирок бул анимацияланган өлчөмдү өзгөртүү тажрыйбасы абдан оор болушу мүмкүн жана баракчанын жаңы өлчөмүнө ыңгайлашуусу үчүн талап кылынган убакытты кошот. Колдонуунун Жөнөкөй жана Жөнөкөй код Веб өзгөчөлүгүн колдонуу канчалык оңой жана коддун көрүнүшү канчалык жөнөкөй, бул сиздин командаңыз үчүн чоң өзгөрүүлөрдү жасай турган маанилүү факторлор. Алар, албетте, акыркы колдонуучу тажрыйбасы сыяктуу эч качан маанилүү боло албайт, бирок иштеп чыгуучунун тажрыйбасы туруктуулугуна таасир этет. Камтылган веб-функцияны колдонуу бул жагынан маанилүү артыкчылыктарга ээ:

HTML, CSS жана JSти мурунтан эле билген иштеп чыгуучулар, кыязы, бул функцияны оңой колдоно алышат, анткени ал жакшы интеграцияланган жана веб-платформанын калган бөлүгү менен шайкеш келген. Функциянын колдонулушуна киргизилген өзгөртүүлөрдү бузуу коркунучу жок. Бул функциянын эскирип же сакталбай калуу коркунучу дээрлик жок.

Камтылган масондукта, бул примитивдик макет болгондуктан, сиз аны Grid же Flexbox сыяктуу CSSден колдоносуз, эч кандай JS катышпайт. Ошондой эле, боштук сыяктуу макетке байланыштуу башка CSS касиеттери сиз күткөндөй иштейт. Эч кандай айла-амалдар же чечүү жолдору жок жана сиз үйрөнгөн нерселер MDNде документтештирилген. Masonry JS lib үчүн инициализация бир аз татаал: ал тилкенин жана боштуктун өлчөмүн коюу үчүн жашыруун HTML элементтери менен бирге белгилүү бир синтаксиси бар маалымат атрибутун талап кылат. Мындан тышкары, эгер сиз мамычаларды кеңейтүүнү кааласаңыз, көйгөйлөрдү болтурбоо үчүн боштуктун өлчөмүн өзүңүз камтышыңыз керек:

<стиль> .track-sizer, . Item { туурасы: 20%; } .gutter-sizer { туурасы: 1rem; } . Item { бийиктиги: 100px; margin-block-end: 1rem; } .item:nth-child(так) { бийиктиги: 200px; } .element--width2 { туурасы: calc(40% + 1rem); }

...

Келгиле, муну орнотулган Масондук ишке ашыруу кандай болоорун салыштырып көрөлү: <стиль> .контейнер { дисплей: тор тилкелери; тор тилкелери: кайталоо (4, 20%); боштук: 1rem; } . Item { бийиктиги: 100px; } .item:nth-child(так) { бийиктиги: 200px; } .element--width2 { тор-мамыча: аралыгы 2; }

...

Жөнөкөйраак, компакттуу код, ал боштук сыяктуу нерселерди колдоно алат жана торчодогу сыяктуу 2 аралык менен аткарылган тректер жана боштуктун өлчөмүн камтыган туура туураны эсептөөнү талап кылбайт. Эмне бар жана качан бар экенин кантип билсе болот? Жалпысынан алганда, маселе сиз JS китепканасынын үстүнөн орнотулган масондукту колдонушуңуз керекпи же жокпу эмес, тескерисинче, качан. Masonry JS китепканасы укмуштуудай жана көптөгөн жылдар бою веб-платформадагы боштукту толтуруп келет жана көптөгөн бактылуу иштеп чыгуучулар жана колдонуучулар үчүн. Эгер сиз аны орнотулган Масондук ишке салыштырсаңыз, анда анын бир нече кемчиликтери бар, бирок бул ишке ашыруу даяр болбосо, бул маанилүү эмес. Мен браузердин сатуучусунда иштейм, анткени бул жаңы веб-платформанын өзгөчөлүктөрүн тизмектеп чыгуу мен үчүн оңой, ошондуктан мен эмне болоорун билем. Бирок иштеп чыгуучулар көп учурда сурамжылоодон кийин сурамжылоо жүргүзүп, жаңы нерселерди көзөмөлдөө кыйын экенин айтышат. Кабардар болуу кыйын жана компаниялар баары бир окууну ар дайым биринчи орунга коюшпайт. Буга жардам берүү үчүн бул жерде жаңыртууларды жөнөкөй жана компакттуу жолдор менен камсыз кылган бир нече ресурстар бар, андыктан сиз керектүү маалыматты тез ала аласыз:

Веб платформада изилдөөчү сайт өзгөчөлүктөрү: Сиз анын релиз эскертүүлөр барагына кызыкдар болушу мүмкүн. Жана, эгер сизге RSS жакса, релиз эскертүүлөр түрмөгүн, ошондой эле Жаңы жеткиликтүү жана кеңири жеткиликтүү каналдарды текшериңиз.

ВебПлатформанын статусу тактасы: Сиз анын ар кандай Базалык жыл баракчаларын жактырышы мүмкүн.

Chrome Platform Status'тун жол картасы барагы.

Эгер бир аз көбүрөөк убактыңыз болсо, сизди браузердин сатуучуларынын релиз эскертүүлөрү кызыктырышы мүмкүн:

Chrome Edge Firefox Safari

Көбүрөөк ресурстар үчүн, менин навигация веб-платформасынын Cheatsheet-ди текшериңиз. Менин оюм дагы эле ишке ашкан жок Бул маселенин башка жагы. Убакытты, энергияны жана көз салуу жолдорун тапсаңыз дагы, үнүңүздү угууга жана сүйүктүү функцияларыңызды ишке ашырууга нааразы болосуз. Мүмкүн, сиз көп жылдар бою белгилүү бир мүчүлүштүктүн чечилишин же ал дагы деле жок болуп жаткан браузерде белгилүү бир функцияны күтүп жаткандырсыз. Мен эмнени айтайын, браузердин сатуучулары угат. Мен ар дайым иштеп чыгуучулардын сигналдарын жана пикирлерин талкуулаган бир нече кайчылаш топтордун мүчөсүмүн. Биз ар кандай серепчилердин ички жана тышкы/коомдук форумдарда, ачык булак долбоорлорунда, блогдордо жана сурамжылоолордо көптөгөн түрдүү булактарды карайбыз. Жана, биз ар дайым иштеп чыгуучулар үчүн алардын өзгөчө муктаждыктарын жана колдонуу учурларын бөлүшүү үчүн жакшы жолдорду түзүүгө аракет кылып жатабыз. Андыктан, эгер мүмкүн болсо, браузердин сатуучуларынан көбүрөөк талап кылыңыз жана сизге керектүү функцияларды ишке ашыруу үчүн бизге кысым көрсөтүңүз. Мен түшүнөм, бул убакытты талап кылат, ошондой эле коркутуу болушу мүмкүн (кирүү үчүн жогорку тоскоолдукту айтпаганда да), бирок ал да иштейт. Бул жерде сиз өзүңүздүн (же сиздин компанияңыздын) үнүңүздү угуунун бир нече жолдору бар: Жыл сайын JS абалын, CSS абалын жана HTML абалын изилдөө. Алар браузердин сатуучулары өз иштерине артыкчылык берүүдө чоң роль ойнойт. Эгер сизге белгилүү бир стандартка негизделген API керек болсо, браузерлерде ырааттуу ишке ашырылышы үчүн, кийинки Interop долбоорунун итерациясында сунушту тапшырууну карап көрүңүз. Бул көбүрөөк убакытты талап кылат, бирок Shopify жана RUMvision Interop 2026 үчүн каалоолор тизмесин кантип бөлүшөрүн карап көрүңүз. Ушул сыяктуу кеңири маалымат серепчилердин приоритеттүүлүгү үчүн абдан пайдалуу болушу мүмкүн. Браузердин сатуучуларына таасир этүү үчүн көбүрөөк пайдалуу шилтемелер үчүн, менин навигациялоо веб-платформасынын схемасын текшериңиз. Корутунду Жабуу үчүн, бул макала сизге ойлоно турган бир нече нерселерди калтырды деп үмүттөнөм:

Масондук жана башка келе жаткан веб функциялары үчүн толкундануу. Сиз колдоно баштагыңыз келген бир нече веб функциялары. Ыңгайлаштырылган же 3-тараптын кодунун бир нече бөлүгүн сиз орнотулган функциялардын пайдасына алып салсаңыз болот. Келе жаткан нерселерге көз салуу жана браузердин сатуучуларына таасир этүүнүн бир нече жолу.

Андан да маанилүүсү, мен сизди веб-платформаны толугу менен колдонуунун артыкчылыктарына ынандырдым деп үмүттөнөм.

You May Also Like

Enjoyed This Article?

Get weekly tips on growing your audience and monetizing your content — straight to your inbox.

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free