Buraxılış tarixi: 29-03-2013
Müəllifin qeydi: Bu ilin əvvəlində mən şirkətimizin internet saytının yenidən dizaynının başlanğıc mərhələsində idim. Biz artıq birdən çox cihazı dəstəkləmək üçün üstünlük verilən həll olan birbaşa cavab verən veb dizayn yanaşmasını götürməyi planlaşdırmışdıq. Bostonda keçirilən An Event Apart-da cavab verən veb dizaynın məhdudiyyətləri və çətinlikləri haqqında səmimi müzakirələrdən öyrəndikdən sonra mən başa düşdüm ki, həllimizə bir az tənzimləmə lazımdır.
Xoşbəxtlikdən, qarşımızdakı layihə uyğunlaşma iş axınımızı təkmilləşdirmək üçün sınaqdan keçirmək və özümüzə meydan oxumaq üçün mükəmməl fürsət idi. Bu yazıda daha yaxşı cavab verən veb-sayt yaratmaq üçün çalışdığımız müddətdə atdığımız addımları, o cümlədən yol boyu bəzi dəyişiklikləri ətraflı izah edəcəyəm.
Məqsədlərin qoyulmasıLayihəmizdə atdığımız ilk addım adaptiv yanaşmamız üçün üstünlüklərin və maneələrin siyahısını yaratmaq oldu. Siyahımız belə görünürdü:
ÜSTÜNLƏRİ1. Bir veb saytın qurulması, dəstəklənməsi və təşviqi.
2. Yalnız çox böyük masa üstü monitorları və kiçik portativ cihazları deyil, çoxsaylı ekran ölçülərini dəstəkləyir.
3. Gələcəyə davamlıdır, çünki düzən yalnız bugünkü populyar cihazların ölçüsündən deyil, ekran ölçüsündən asılı olaraq dəyişəcəkdir.
MANEƏLƏR1. Yalnız böyük ekranlı cihazlar üçün nəzərdə tutulmuş məzmun çox vaxt kiçik ekranlara axın edir və sadəcə olaraq CSS media sorğularından istifadə edərək lazımsız yükləmələr yaradaraq “kəsilir”.
2. “Ölçüsü yoxdur” tərtibatı səbəbindən biz cihazdan və ya ekran ölçüsündən asılı olaraq belə tərtibatın orijinal sırasını dəyişə bilmirik (və ya ondan vacib olmayan elementləri tamamilə aradan qaldırırıq).
Yəqin ki, qeyd etdiyimiz adaptiv yanaşmanın çatışmazlıqlarının problemin yalnız mobil həllinin ən yaxşı olduğu sahələr olduğunu görəcəksiniz. Yeni veb-saytımız üçün biz hər iki dünyanın ən yaxşısını istəyirdik - həssas yanaşma və xüsusi mobil həllin təklif edə biləcəyi üstünlüklər.
Məzmundan başlayaraqCavab verən və mobil xüsusi və ya yalnız mobil dizayn arasındakı ümumi fərqlərdən biri brauzerə ötürülən məzmun və ya xüsusiyyətlərdir. Xüsusi mobil vebsayt çox vaxt vebsaytın “normal” versiyasında olan məzmunun yalnız bir hissəsini əks etdirir. Bu, iki yanaşma arasında davam edən mübahisələrdən biridir və yalnız mobil internet saytlarının tərəfdarları tez-tez mobil istifadəçilərin yalnız onlar üçün "vacib" olan məzmuna daxil olmaq istədiklərini iddia edirlər.
Bu düşüncə xəttinin problemi ondan ibarətdir ki, istifadəçi üçün “vacib olan” hər hansı bir istifadəçi vəziyyətdən asılı olaraq dəyişir. Məzmuna girişi sadəcə istifadə etdiyiniz cihaza görə məhdudlaşdırmaq mobil veb saytınızdan nəyi saxlamağınıza və nəyi siləcəyinizə qərar verərkən təsəvvür etdiyiniz ideal ssenariyə uyğun gəlməyənləri qəzəbləndirmək və məyus etmək üçün etibarlı yoldur.
Biz həmişə inanmışıq ki, bütün istifadəçilər vebsaytın təklif etdiyi bütün məzmuna çıxış əldə etməlidir, lakin bunun vebsaytımız və istifadəçilərimiz üçün həqiqətən uyğun olduğuna əmin olmaq istəyirik. Düzgün yanaşmanı müəyyən etmək üçün biz analitiklərimizə müraciət etdik və mobil və qeyri-mobil ziyarətçilərin tələb etdiyi məzmun növü arasında nəzərəçarpacaq fərq tapmadıq. mobil cihazlar. Desktop istifadəçiləri arasında populyar olan məzmun mobil ziyarətçilər arasında da populyar idi.
Bundan əlavə, biz veb saytımızın auditoriyasının əksəriyyətini təmsil edən bəzi hazırkı müştərilərimizlə oturub söhbət etdik və onlara bir neçə sual verdik, o cümlədən: “İş masanızda olan zaman vebsaytımıza hansı məzmun üçün gəlirsiniz? ?" və: "Bəs planşet və ya telefon?" Müsahibələr, əlbəttə ki, daha ətraflı idi, amma bizi maraqlandıran şeyləri artıq görə bilərsiniz. Bir daha, istifadə olunan cihazdan asılı olmayaraq, axtarılan məzmunun eyni olduğu aşkar edildi.
Məlumat istiqaməti diktə edirAraşdırmamız zamanı aşkar etdiyimiz faktlar istənilən cihazda eyni məzmuna girişi təmin edən həssas yanaşmanın veb saytımız üçün düzgün seçim olduğuna inamımızı gücləndirdi. Bu araşdırma həm də veb saytımızdakı hansı məzmunun ümumiyyətlə əldə edilmədiyini müəyyən etməyə imkan verdi. Tamaşaçılarımız tərəfindən istifadə edilməyən səhifələri aşkar etdikdə onları sayt xəritəsindən kəsdik. Eyni şey məzmun iyerarxiyasındakı ən az populyar məzmun və yenidən dizayn planlarımızla edildi.
Məzmuna baxmaq və auditoriyamız üçün nəyin vacib və nəyin olmadığı haqqında məlumat toplamaqla dizayna başlamaqla, vebsayt dizaynımızın dəstəkləməsi üçün hansı məzmunun lazım olduğuna dair sağlam planla dizayn mərhələsinə keçə bildik.
Ekstremal nöqtələrin dizaynının yaradılmasıBrauzerdə dizayn üçün arqumentlər eşitdim və bu yanaşmanın təmin etdiyi faydaları qiymətləndirirəm. Bir neçə dəfə brauzerdə dizayn yaratmağa çalışaraq, öz dizayn iş prosesimin Photoshop-da başlamaq üçün ən asan və ən əlverişli olduğunu gördüm. Mən bunun hamı üçün düzgün qərar olduğuna inanmıram, amma bu mənim üçün doğrudur və mən bu layihəyə belə başlamışam.
Cavab verən dizayn üçün mən “kənar dizayn” adlandırdığım üsuldan istifadə edirəm. Veb saytın masaüstü versiyasını yaratmaqla başlayıram. Orada mən dizayn mətnlərinin tipoqrafik tərtibatını, üslubunu və ümumi vizual istiqamətini - həmçinin veb-saytın geniş ekran görünüşünün tərtibatını hazırlayıram. Veb saytın həmin versiyasından razı qaldıqdan sonra mən kiçik ekran və ya "mobil" versiyada işləyirəm, eyni vizual istiqaməti götürürəm, lakin tərtibatı daha kiçik ekrana uyğunlaşdırmaq üçün düzəldirəm. Bu prosesin sonunda məndə artıq iki ən fərqli veb sayt tərtibatının vizual nümunələri var - versiyalar bu layihəən böyük və ən kiçik ekranlar üçün. Bu iki nümunə veb saytın ön hissəsini inkişaf etdirərkən mənim bələdçim olacaq.
Əvvəlcə MobilAdaptiv dizayna “” yanaşması yeni fikir deyil. Əvvəlcə veb-saytın mobil tərtibatını qurduğunuz və sonra ekran ölçüsü artdıqca uyğunlaşmaq və ona əlavə etmək üçün media sorğularından istifadə etdiyiniz bu üsul indi bir müddətdir ki, cavab verən veb dizaynında ən yaxşı təcrübə hesab olunur. Bu yanaşma yeni deyil, hələ də çox vacibdir və “məzmundan başla” planımızla birləşdirildikdə, enerjimizi adaptiv layihələrdə aşkar edilən çatışmazlıqlardan birinə - əhəmiyyətsiz məzmunun ünsiyyət probleminə cəmləşdirməyə kömək etdi.
Məzmundan başlayaraq, veb saytımızdakı bütün məzmunun mobil və digər istifadəçilər üçün uyğun və uyğun olmasını təmin etdik. Bu, ötürülmə ilə bağlı narahat olmamağımız demək idi böyük miqdar işarələmədəki məzmun, ancaq CSS istifadə edərək onu vizual olaraq gizlətməlisiniz. Mobil ilk yanaşma o demək idi ki, bu şəkillər yalnız onlar üçün nəzərdə tutulmuş cihazlarla paylaşılacaq. Məsələn, bizim yeni dizayn akvarel teksturası ilə tələb olunan fon qrafikası.
Olduqca böyük olan şəkil yalnız dizaynın bir hissəsi olmaq üçün nəzərdə tutulmuşdu böyük ekranlar(660 pikseldən və daha çox). CSS-imiz mobil dizaynla başladığı üçün bu böyük qrafiklər heç vaxt kiçik ekranlı cihazlara göndərilmir, çünki bu şəkli yükləyən media sorğusu yalnız böyük ekranlar tərəfindən işə salınır. Html elementinə fon tətbiq edən media sorğusu belə görünür:
@media yalnız ekran və (min-en: 660px) ( html ( fon: url(/images/bg-watercolor.jpg) təkrar olunmayan sabit mərkəz üst; ) )
@media yalnız ekran və (min - eni: 660px) ( html ( fon: url (/şəkillər/bg - akvarel. jpg) yox - sabit mərkəz üst hissəsini təkrarlayın; |
Bu fon şəklini tətbiq etməklə yanaşı, 660px-də işləyən media sorğusu həmçinin veb-saytın tərtibatında bir sıra digər dəyişiklikləri təmsil edir, kiçik ekran tərtibatı hesab ediləndən müxtəlif geniş ekranlı versiyalara çevriləcək.
Cihazlar üçün deyil, dizayn üçün yaratmaqVeb layihələrimizdə cavab verən dizayndan istifadə etməyə başlayanda diqqətimizi məlum cihazlara və ekran ölçülərinə yönəldirdik və media sorğularımız tez-tez onları əks etdirirdi (iPhone, iPad-lər - həm portret, həm də landşaft - noutbuklar, geniş ekranlı masaüstləri və s. .d.). Zamanla məlum oldu ki, bu, ən yaxşı yanaşma deyildi, çünki o, gələcəkdə görünə biləcəkləri deyil, yalnız bu gün populyar olan cihazlar və ekran ölçülərini əhatə edirdi. Cavab verən veb dizaynın güclü üstünlüklərindən biri onun gələcəyə baxan təbiətidir. Buna görə də bunu tam şəkildə həyata keçirmək güclü tərəflər dizaynın media sorğularının kəsilmə nöqtələrini diktə etməsinə icazə vermək əvəzinə, cihazlar üçün tikintidən uzaqlaşdıq.
Mobil birinci üsul veb saytımızın CSS əsasını qoydu. Bunu yerinə yetirməklə, biz veb-saytı brauzerdə işə saldıq və onu tərtibatımızın ən kiçik ölçüsünə qədər genişləndirdik (CSS-ni minimum eni 320px olaraq təyin etdik). Tədricən, işarələmənin necə cavab verdiyini görmək üçün brauzer pəncərəsinin ölçüsü artdı. Pəncərə böyüdükcə, işarələrin deformasiyaya başladığını gördük. Məhz bu nöqtələrdə işarələməni tənzimləmək üçün yeni media sorğuları təyin etməli olduq.
Bu üsulu başa düşmək üçün bir qrafik yaratdıq və onu iş masası fonu kimi təyin etdik. Şaquli xətlər eni 320 px (ən kiçik ölçüyümüz) göstərdi, sonra 400-dən başlayaraq hər yüz pikselə bölündü və dizaynın harada pozulmağa başladığını müəyyən etmək üçün brauzer pəncərəsi miqyaslı olaraq bələdçi kimi istifadə edildi və sonra biz bu təxmini dəyərləri piksellərdə istifadə etdik. CSS-ə əlavə edilmiş son media sorğuları.
Məlum cihaz ölçülərindən daha çox dizayn tələblərinə əsaslanan media sorğularının əlavə edilməsi yanaşması vebsayta geniş ekran ölçülərinə daha yaxşı cavab verməyə imkan verir. Bununla belə, nəticə onu doldurur CSS faylı cihaza xas kəsilmə nöqtələrindən istifadə etdiyinizdən daha çox media sorğusu. Bununla belə, media sorğularının sayı daha çox olsa da, sorğuların özləri çox kiçik olur, çünki cihaz əsaslı media sorğularının adətən tələb etdiyi kəskin dəyişikliklərin əvəzinə onların hər birinə çox az dəyişiklik edilir.
Veb saytımızın media sorğularında aşkar artımın müşahidə olunduğu sahələrdən biri naviqasiyadır.
Adaptiv naviqasiyaNaviqasiya həssas dizaynın ən çətin aspektlərindən biridir. Veb saytımız əsasən dörd əsas naviqasiya sahəsinə malikdir.
1. Əsas naviqasiya;
2. Müştərilərimizin istifadə etdiyi müxtəlif portallara və xidmətlərə keçid verən “köməkçi naviqasiya” dediyimiz şey;
3. Footer naviqasiyası;
4. Sol sütunda veb-saytın alt səhifələrində (böyük ekranlı tərtibatlar üçün) təqdim olunan ayrı-ayrı bölmələrin naviqasiyası.
CSS-imiz ilk növbədə mobil olduğundan, ilk narahatlıqlardan biri kiçik ekran tərtibatı üçün naviqasiya qurmaq idi. Bu, əsas naviqasiyadan başqa bütün naviqasiya bölmələrinin ekranını söndürmək deməkdir.
#helpNav, .subNav, altbilgi naviqasiyası (ekran: heç biri; )
#helpNav, .subNav, altbilgi naviqasiyası ( ekran: heç biri; |
Bundan əlavə, artıq qeyd etdim ki, məqsədimiz məzmunu cihazlara çatdırmaq deyil, yalnız bundan sonra onu "söndürmək"dir. Əslində, məqsəd bu idi, amma naviqasiyamızda bunu necə edəcəyimizlə barışmalı idik. Başqa, sadə, lakin dəstəklənən həll tapa bilmədik. Xoşbəxtlikdən, təqdim etdiyimiz və təqdim etmədiyimiz məzmun yalnız bir neçə siyahı kimi görünür, ona görə də onun ziyarətçilərin endirilməsinə təsiri minimaldır.
Köməkçi naviqasiya veb saytın istifadəçilərin əksəriyyətinə uyğun olmadığını müəyyən etdiyimiz yeganə sahədir, çünki bu bağlantılar və portallar yalnız masaüstü istifadəçilər üçün nəzərdə tutulmuşdur. Bu, güclü bir fərziyyə və cəsarətli bəyanatdır. Bunun əsas səbəbi portalların özləri idi, bizim nəzarətimizdən kənar üçüncü tərəf proqramları idi və kiçik ekranlı mobil cihazlar üçün optimallaşdırılmamış və onların təklif etdiyi xidmətlər dəstək üçün uyğunlaşdırılmışdı. korporativ müştərilər böyük masa üstü ekranları ilə.
Bu vəziyyət bizi bu bölməni kiçik ekran versiyasından silmək qərarına gəlməyə ruhlandırdı və saytın canlı olduğu aylar ərzində bu qərarla bağlı istifadəçi bazamızdan heç bir şərh və ya şikayət almadıq. Digər iki naviqasiya sahəsinə, alt səhifə naviqasiyası bölməsinə və altbilgi bölməsinə gəldikdə, bu məzmun kiçik ekranlı cihazlarda əsas naviqasiyanın bir hissəsi kimi təqdim olunur. Buna görə də bu üç sahəni standart olaraq söndürürük.
Daha sonra, ekran ölçüsü artdıqca və daha geniş ekran dizaynının görünməyə başladığı 660px nöqtəsini keçdikcə, bu naviqasiya sahələrinə tələb olunan üslubları verəcəyik.
İkinci dərəcəli naviqasiyamız üçün CSS budur:
#helpNav ( displey: blok; mövqe: mütləq; yuxarı: 1px; sağ: 0px; eni: 100%; mətni hizalayın: sağa; ) #helpNav ul (doldurma-sol: 10px; ) #helpNav li ( ekran: inline; padding-sağ: 6px; fon rəngi: #2f6a98; :hover (fon rəngi: #f66606; )
#helpNav ( ekran: blok; mövqe: mütləq; yuxarı: 1px; sağ: 0px; eni: 100%; mətni hizalayın: sağa; #helpNavul ( doldurma - sol: 10px; #helpNavli ( ekran: inline; doldurma - sağ: 6px; doldurma - sol: 6px; fon - rəng : #2f6a98; #helpNav a ( şrift ölçüsü: 12px; doldurma: 0 6px; rəng: #FFF; sərhəd - radius: 20px; #helpNav a:hover ( |
Və alt səhifə naviqasiya sahələri:
SubNav ( displey: blok; en: 25%; float: sol; ) .subNav h4 ( doldurma-alt: 8px ) .subNav ul (siyahı üslubu: disk; rəng: #c65204; doldurma: 0 0 20px 20px; ) . subNav li ( padding-alt: 14px; ) .subNav a (rəng: #186483; şrift ölçüsü: 21px; şrift ailəsi: "RokkittRegular", Times, "Times New Roman", serif; sətir hündürlüyü: 1; )
SubNav( ekran: blok; eni: 25%; float: sol; SubNav h4 ( doldurma - alt: 8px SubNavul( list-style: disk; rəng : #c65204; doldurma: 0 0 20px 20px; SubNavli ( padding - alt: 14px; SubNav a ( rəng : #186483; şrift ölçüsü: 21px; xəttin hündürlüyü: 1; |
Nəhayət, altbilgi naviqasiyası:
altbilgi naviqasiyası (ekran: blok; kənar-yuxarı: 40px; ) altbilgi nav ul (siyahı üslubu: heç biri; ) altbilgi nav li ( padding-alt: 24px; en: 19%; doldurma: 0 5% 20px 0; float: sol; ) .innerNav li (en: 100%; float: heç biri; padding-alt: 4px; ) altbilgi nav a (rəng: #575454; şrift ölçüsü: 12px; ) .innerNav a ( şrift çəkisi: normal; )
altbilgi naviqasiyası ( ekran: blok; kənar - yuxarı: 40px; altbilgi nav ul ( list-style: none; altbilgi navli ( dolgu - alt: 24px; eni: 19%; doldurma: 0 5% 20px 0; float: sol; InnerNavli ( eni: 100%; float: heç biri; dolgu - alt: 4px; altbilgi nav a ( rəng : #575454; şrift ölçüsü: 12px; InnerNav a ( şrift çəkisi: normal; |
Media sorğularımız üçün piksel dəyərlərindən istifadə etdiyimizi görəcəksiniz. Piksel media sorğularından istifadə, digər qabaqcıl tərtibatçılar kimi, cavab verən dizayn etməyə başladıq və bu təcrübəni iş prosesimizin bir hissəsi kimi qəbul etdik. Bununla belə, “daha yaxşı cavab verən veb-sayt yaratmaq” ruhunda bu bölməni redaktə edərkən diqqətimizə çatdırılan ems-dən istifadə edən ölçülü media sorğularına dair məqaləni qeyd edəcəyəm. Əslində, böyüdərkən saytın görünüşünü yaxşılaşdırmaq üçün px media sorğularını bütün piksel dəyərlərini bədən şrift ölçüsünə bölmək yolu ilə em media sorğularına çevirmək tövsiyə olunur.
Bu möhtəşəm məqalə bizi piksel əsaslı media sorğuları haqqında düşüncələrimizi yenidən düşünməyə ruhlandırdı və bu, cavab verən yanaşmanı necə təkmilləşdirməyə davam etdiyimizin başqa bir nümunəsidir. Bu xüsusi layihədə media sorğularımızda ems-dən istifadə etməsək də, hazırda onlarla təcrübə aparırıq və yanaşmanı burada qeyd etməyə dəyər.
Əsas naviqasiyaƏsas naviqasiyamız geniş ekranlarda planın yuxarı hissəsində üfüqi sıra kimi təqdim olunur. Kiçik ekranlarda əsas naviqasiyanın strukturu elə dəyişir ki, hər səhifənin yuxarısında səhifənin altındakı naviqasiya ilə əlaqə saxlayan böyük Menyu düyməsi var. Buna nail olmaq üçün başlığa demək olar ki, işarələmənin başlanğıcı olan ID menuLink və oftabButtonr sinfi ilə keçid əlavə etdik. Sonra işarələmənin ən sonunda ID mainNav olan bir bölmə yerləşdirdik. Bu bölmənin içərisində bizim əsas naviqasiyamız var, o, sadəcə olaraq daxilindəki alt səhifə bölməsi menyusu üçün bir neçə digər sıralanmamış siyahıdan ibarət sıralanmamış siyahıdır. Həmçinin səhifənin yuxarı hissəsinə keçid rolunu oynayan toTop ID-li lövbərimiz var.
Mobil-ilk prinsipinin davamı olaraq, kiçik ekran düzeninin yuxarı hissəsindəki menyu linkini düyməyə bənzətmək üçün tərtib etdik.
#menuLink a ( float: sağ; kənar: -56px 8px 0 0; ) .tabButton a ( rəng: #FFF; şrift ailəsi: "RokkittRegular", Times, "Times New Roman", serif; şrift ölçüsü: 20px; fon rəngi: #45829b; padding: 10px 12px;
#menuLink a ( üzmək: sağa; haşiyə: - 56px 8px 0 0; Tab düyməsi a ( rəng: #FFF; şrift ailəsi : "RokkittRegular" , Times , "Times New Roman" , serif ; şrift ölçüsü: 20px; fon - rəng : #45829b; doldurma: 10px 12px; sərhəd - radius: 10px; Tab düyməsi a: siçanın üzərinə sürün ( fon - rəng : #f66606; |
Əsas naviqasiya menyumuz kiçik ekran görüntüsünə uyğunlaşdırılıb:
#mainNav ( yuxarı kənar: 30px; en: 100%; ) #mainNav #toTop a ( float: sağ; kənar: 0 8px 0 0; şrift ölçüsü: 20px; ) #mainNav naviqasiyası ( padding-top: 80px; ) #mainNav ul ( siyahı üslubu: heç biri; ) #mainNav li ( fon: #45829b; haşiyə-alt: 1px bərk #abc7d2; doldurma: 4px 10px 4px 15px; ) #mainNav li: hover ( fon rəngi: #f66606; ) #mainNav a ( şrift ölçüsü: 24px; rəng: #FFF; şrift ailəsi: "RokkittRegular", Times, "Times New Roman", serif; )
#mainNav ( kənar - yuxarı: 30px; eni: 100%; #mainNav #toTop a ( üzmək: sağa; kənar: 0 8px 0 0; şrift ölçüsü: 20px; #mainNav naviqasiyası ( padding - üst: 80px; #mainNavul ( list-style: none; #əsasNavli ( fon: #45829b; haşiyə - alt: 1px bərk #abc7d2; doldurma: 4px 10px 4px 15px; #mainNav li:hover ( fon - rəng : #f66606; #mainNav a ( şrift ölçüsü: 24px; rəng: #FFF; şrift ailəsi : "RokkittRegular" , Times , "Times New Roman" , serif ; |
İlkin vəziyyətdə göstərilməyən alt menyularımız artıq səhifənin tələb etdiyi kimi göstərilə bilər. Bu alt menyuların hər birinin servicesTab kimi unikal identifikatoru var və veb-saytın hər bölməsində bədən etiketinə tətbiq olunan sinif var. “Şirkət” bölmə sinfi companyPage-dir. Biz bu sinifdən veb-saytın bütün bölməsini tərtib etmək üçün istifadə edirik. Alt menyunu aktivləşdirmək üçün bölmə aktivləşdirildikdə tələb olunduğu kimi alt menyu bölmə sinfindən istifadə edirik.
CompanyPage #companyTab ul, .newsPage #newsTab ul, .contactPage #əlaqəTab ul, .servicesPage #servicesTab ul ( display: block; )
CompanyPage #companyTab ul, NewsPage #newsTab ul, Əlaqə Səhifəsi #əlaqəTab ul, Xidmətlər Səhifəsi #xidmətlərTab ul ( ekran: blok; |
Daha böyük ekran tərtibatları daxil olduqca - yenə 660px və daha yuxarı media sorğuları ilə - biz əsas naviqasiyanın tərtibatını kəskin şəkildə dəyişirik. Əvvəlcə menuLink və toTop düymələrinin ekranını söndürürük, çünki onlar artıq tələb olunmur:
#menuLink a, #toTop a (ekran: heç biri; )
#menuLink a, #totop a ( ekran: heç biri; |
#mainNav (mövqe: mütləq; yuxarı: 92px; kənar: 18px 2% 0 2%; en: 96%; mətn hizalanması: mərkəz; ) #mainNav naviqasiya (doldurma: 5px 0; sərhəd-yuxarı: 1px bərk #bacfd7; sərhəd-alt: 1px bərk #bacfd7; ) #mainNav li (fon: heç biri; displey: daxili; sərhəd-alt: 0; sərhəd-sağ: 1px bərk #bebebe; doldurma: 0 6px 0 8px; kənar: 4px 0; ) #mainNav a ( şrift ölçüsü: 16px; rəng: #45829b; ) #mainNav a:hover (rəng: #f66606; )
#mainNav ( mövqe: mütləq; yuxarı: 92px; kənar: 18px 2% 0 2%; eni: 96%; mətni hizalayın: mərkəzə; } #mainNav naviqasiyası ( doldurma: 5px 0; haşiyə - yuxarı : 1px bərk #bacfd7; haşiyə - alt: 1px bərk #bacfd7; } #əsasNavli ( fon: heç biri; ekran: inline; sərhəd - alt: 0; ölçüsü: 16px;rəng : #45829b; } #mainNav a:hover ( rəng : #f66606; } |
Bu üslublar əsas naviqasiyanın görünüşünü təyin edir. Ancaq onu cihaz əvəzinə dizayna uyğunlaşdırmaq üçün ekran ölçüsü artdıqca kiçik düzəlişlər etməliyik. Ümumilikdə, əsas naviqasiya şriftimiz ekran genişləndikcə və iş sahəsi artdıqca dəyişən səkkiz müxtəlif geniş ekran tərtibat ölçüsünə malikdir. Bu naviqasiyanı istifadəni asanlaşdıracaq və vizual olaraq cəlbedici edəcək şəkildə ən yaxşı şəkildə necə nümayiş etdirəcəyini tapmaq, cavab verən dizaynla işləyərkən qarşılaşdığımız maneələrdən biri idi.
Bu nümunəyə bir neçə dəfə əməl edirik, nəhayət vebsayt ən böyük ölçüsünə çatdıqda şriftin ölçüsünü 27px-ə qədər artırırıq. Beləliklə, veb-sayt naviqasiyası onu ən yaxşı şəkildə görmək üçün istifadə olunan dizayn və ekrana uyğun gəlir.
CMS-dən kömək almaqTercih etdiyimiz CMS ExpressionEngine-dir və məqalənin növbəti bölməsinin xüsusiyyətləri həmin platformaya xasdır, lakin ExpressionEngine ilə əldə etdiyimiz əsas ideya, şübhəsiz ki, digər məşhur CMS platformalarına da tətbiq oluna bilər.
Adaptiv yanaşmanın qarşısındakı ən böyük maneələrdən biri, fərqli işarələmə və ya fərqli mənbə kodunu təmin edə bilməməyinizdir. müxtəlif cihazlar. Bu, CMS-imizin köməyi ilə aradan qaldırmaq istədiyimiz maneədir. Təcrübə və araşdırma zamanı qarşımıza ExpressionEngine ilə Həqiqətən Adaptive Going adlı məqalə çıxdı. Bu məqalədə ətraflı təsvir olunan metodologiyadan istifadə edərək, mobil və ya masaüstü sistemdə dəyişən təyin etmək üçün cihaz aşkarlama skriptindən istifadə edə bildik. Daha sonra bu dəyişənlərdən hansı ilə qarşılaşdığımıza əsasən saytımıza işarələmə yükləyə bildik.
İrəliləyərək və cihaz aşkarlanmasını tətbiq etməklə, mobil təcrübəni daha da təkmilləşdirmək üçün digər çox kiçik dəyişikliklər edə bildik. Bizim üçün bu, bir növ mütərəqqi təkmilləşdirməyə bənzəyirdi, burada keyfiyyətli bir həll yaratdıq və sonra bir az optimallaşdırılmış təcrübə təqdim etmək üçün onu irəli çəkməyə çalışdıq. Chris Coyier-in RWD və mobil şablonların birləşdirilməsi ilə bağlı oxşar fikrini oxumağınızdan əmin olun, burada o, mobil strategiyasında müxtəlif texnikaları qarışdırmaq və uyğunlaşdırmaq haqqında mübahisə edir.
Kiçik başlayaqSiz, əlbəttə ki, bu dəyişənlərdən fərqli cihazlara tamamilə fərqli işarələmə və mənbə kodu çatdırmaq üçün istifadə edə bilərsiniz, lakin bizim ilkin yanaşmamız bir az daha az ekstremal idi. Veb saytımızın hər hansı bir versiyasının bütün məzmuna çıxışı olması artıq qərara alındığından, biz ilkin olaraq müraciət etdik bu üsulçatdırılan məzmunun miqdarını bir qədər tənzimləmək üçün dəyişənlər. Məsələn, veb saytımızın ana səhifəsində biz saytda tapılan bir çox məzmunun tizerlərini göstəririk. “Mədəniyyət” və “Layihə diqqət mərkəzində” bölmələrində hər yazı bir şəkil ilə müşayiət olunur.
Şəkillər gözəl əlavədir, lakin qətiliklə vacib deyil, buna görə də bu şəkilləri mobil istifadəçilərimizə ümumiyyətlə göstərmirik. Yenə də demək istəmirəm ki, biz CSS-dən onları söndürmək üçün istifadə edirik, bu isə hər halda məlumatları brauzerə yükləyəcək; Bunun əvəzinə, təsvirlər göstərilməməlidirsə, onları işarələmədən çıxarmaq üçün set dəyişənlərindən istifadə edirik.
Sintaksis olduqca sadədir. Dəyişənləri təyin etdikdən sonra - və yuxarıdakı məqalə sistem config.php faylınıza kiçik bir skript əlavə etməklə bunu etməyin nə qədər asan olduğunu izah edir - siz həmin dəyişənlərdən if ifadəsi kimi istifadə edə bilərsiniz.
Bu, ExpressionEngine sintaksisidir, lakin siz onu oxuya və nə baş verdiyini asanlıqla görə bilərsiniz. Əgər tam dəyişənə rast gəlinirsə, o zaman məqalənin verilənlər bazasına girişindən tizer-şəklin təqdim edirik. Əvəzində mobil dəyişənə rast gəlinərsə, məqalənin başlığını çatdırırıq.
Eyni yanaşma ana səhifənin “Xəbərlər” və “Bloq” bölmələrinə də tətbiq edilir, tam dəyişənlə rastlaşdıqda üç, mobil olduqda isə yalnız bir qısa tizer təqdim edir. Sintaksis belə görünür:( exp : channel : entries channel = "news" (əgər qlobal : site_version == "full" ) limit = "3" ( / if ) (əgər qlobal : site_version == "mobil" ) limit = "1" ( / əgər ) )
Burada xəbərlər adlı ExpressionEngine kanalına daxil olduğumuzu görə bilərsiniz. Limit parametrindən istifadə edərək bu kanaldan neçə cari elementin göstəriləcəyini müəyyən etmək üçün dəyişənimizdən istifadə edirik.
Gəlin bunu bir addım da irəli aparaqSaytın Mədəniyyət bölməsində biz tez-tez çoxlu şəkillərlə müşayiət olunan məqalələr dərc edirik. Veb saytın ana səhifəsindəki tizer şəkillərindən fərqli olaraq, məqalələrdəki şəkillərin özləri bu məzmun üçün çox vacibdir, çünki onlar məqalənin vurğusunu saxlamağa və ya artırmağa kömək edir. Bu şəkillər vacib olsa da, onlar həm də kifayət qədər böyükdürlər - hər biri 650px enindədir, əksər məqalələr ən azı üç şəkil, bəzən isə ona qədərdir. Mobil cihazlar şəkilləri orijinal ölçüsünün təxminən yarısı ilə göstərəcəyindən, tam ölçülü şəkillərin yüklənməsi olduqca vacib olacaq. Bununla məşğul olmaq üçün cihazın tərifinə və dəyişənlərinə yenidən baxaq.
Hər məqalə üçün iki şəkil dəsti yaradırıq: biri tam ölçülü 650px enində, ikincisi isə demək olar ki, yarısı bu ölçüdə. Sonra məqaləmizdə dəyişənlərdən istifadə edirik (lakin əvvəlcə səhifə şablonumuzda ExpressionEngine kodunu aktivləşdirməliyik) və hər iki şəkil dəsti üçün işarələmə əlavə edirik - lakin onlardan yalnız biri brauzerə çatdırılır. Mobil cihazlar kiçik şəkilləri qəbul edir, digərləri isə tam ölçülü şəkillər alır.
Eyni yanaşma ana səhifənin geniş reklam sahəsinə də aiddir. Bu fırlanan bannerlər və şəkillər qarşıdan gələn hadisələr, yeni xidmətlər, elanlar kimi vacib şeyləri əsas səhifənin qalan sahələrindən daha yaxşı reklam edir. Reklam lövhəsi yalnız böyük ekranlar üçün nəzərdə tutulmuş başqa bir gözəl elementdir. Yenə də biz dəyişənlərdən istifadə edərək əsas reklam lövhəsi bölməsini, eləcə də onu işlədən JavaScript-i müvafiq cihaza çatdırırıq - bu, müxtəlif cihazlara müxtəlif işarələmələri effektiv şəkildə göndərməyə imkan verir və layihənin əvvəlində müəyyən etdiyimiz digər maneəni aradan qaldırırıq.
Mobil ilk yanaşmadan və CMS-imizdən istifadə edərək, biz ana səhifəmizi masaüstü istifadəçilərə 738,3 KB həcmində çatdıra və onu yalnız 174,4 KB-a qədər əhəmiyyətli dərəcədə azalda bilirik. mobil istifadəçilər.
Alternativ planlarYalnız mobil yanaşma və cihazın aşkarlanması ilə bağlı məni həmişə narahat edən suallardan biri budur: “Aşkarlama uğursuz olarsa nə baş verir? Veb saytın “normal” versiyası mobil cihaza çatdırılır və bununla da sizin diqqətlə hazırlanmış mobil dizaynı etibarsız edirsiniz? Bu xüsusiyyət, cihazın aşkarlanması üçün keçmişdə istifadə edilən yalnız mobil həlldən qaçmağımın əsas səbəblərindən biridir.
Biz adaptiv iş axınımız üçün cihazın aşkarlanmasından istifadə edirik və nədənsə cihazın aşkarlanması işləmədiyi halda o, bizi əla alternativlərlə silahlandırıb. Uyğunlaşan bir yanaşmadan istifadə etdiyimiz üçün, hətta mobil brauzer tam versiya çatdırılacaq, işarələmə bu cihaza uyğun olacaq, çünki bizim CSS ona uyğun olacaq.
Üstəlik, hər şey mobil olduğundan, kiçik ekranlar üçün nəzərdə tutulmayan elementlər, məsələn, yuxarıda qeyd olunan nəhəng fon qrafikləri, ümumiyyətlə əks olunmur. Bizi məyus edəcək yeganə şey, cihazı müəyyən etmək üçün yaradılan dəyişənlərimizlə etdiyimiz şeydir. Ən pis ssenari baş verərsə və cihazın aşkarlanması uğursuz olarsa, mobil versiya sadəcə olaraq bir neçə əlavə şəkil və ya kiçik işarələmə və ya JavaScript alacaq. Ümumi təəssürat hələ də mobil cihaz üçün uyğun olacaq. “Ən pis vəziyyət ssenarisi” üçün pis deyil.
Tərəqqi, ideal deyilBir neçə il əvvəl bir müştəri mənə bu günə qədər xatırladığım bir şey söylədi. O, saytı haqqında danışarkən deyib:
« Veb saytımı mükəmməl etmək üçün narahat olmayın. Sadəcə onu təkmilləşdirmək üzərində çalışın. Onun davamlı təkmilləşdirilməsi düzgün istiqamətdə bir hərəkət olacaqdır».
Bu fikir illərdir məni ruhlandırdı və mükəmməl olmadığı üçün ən yaxşısını rədd etməməyi xatırlatdı.
Mən bilirəm ki, bu həll mükəmməl deyil və bu, əvvəlki adaptiv iş prosesimizdə təkmilləşdirmə olduğu üçün yaxşıdır. Bu, müəyyən etdiyimiz bəzi maneələri aradan qaldırmağa kömək etdi və indi biz bu təkmilləşdirmələri üzərində işlədiyimiz layihələrə gətirə bilərik. Bəli, hələ də effektiv şəkildə təsir edə bilmədiyimiz bir çox mürəkkəbliklər var, məsələn, HD displeylərə yüksək keyfiyyətli şəkillərin çatdırılması, həmçinin əvvəllər haqqında yazdığımız em-əsaslı media sorğularından istifadə, lakin bu və digər layihələrlə bağlı biz düzgün istiqamətdə hərəkət edirlər.
Kim bilir... Bəlkə bir gün kimsə “mükəmməl vebsayt” quracaq. Hazırda biz mükəmməlliyə deyil, tərəqqiyə fokuslanırıq, bu yolda kiçik təkmilləşdirmələr edirik, daha həssas vebsayt yaratmaq üçün çalışırıq.
Siz nə düşünürsünüz?Cavab verən veb saytları necə qurursunuz? Siz xarakterik tərifdən və ya cihaz tərifindən istifadə edirsiniz? Bu və ya digərindən nə vaxt istifadə etməyi məsləhət görürsünüz? Şərhlərinizi gözləyirik!
Adaptiv veb sayt tərtibatı veb-səhifələrin planşet və smartfonların ekranlarına avtomatik uyğunlaşmasına imkan verir. Mobil İnternet trafiki hər il artır və bu trafiki effektiv şəkildə emal etmək üçün istifadəçilərə istifadəçi dostu interfeysi ilə cavab verən veb-saytlar təklif etməlisiniz.
Axtarış motorları mobil cihazlarda baxıldıqda saytın cavab reaksiyasını qiymətləndirmək üçün bir sıra meyarlardan istifadə edir. Google mobil cihazlar üçün uyğunlaşdırılmış saytları mobil axtarış nəticələrində mobil dostluq xüsusi işarəsi ilə qeyd etməklə smartfon və planşet sahibləri üçün internetdən istifadəni sadələşdirməyə çalışır. Yandex həmçinin mobil axtarışda istifadəçilər üçün mobil/responsive versiyası olan saytlara üstünlük verən bir alqoritmə malikdir.
Xidmətlərdə və mobil cihazlarda səhifənin göstərilməsini yoxlaya bilərsiniz.
Adaptiv tərtibat hər hansı bir cihazda baxıldıqda üfüqi sürüşdürmə çubuğunun və genişlənə bilən sahələrin, oxuna bilən mətnin və kliklənən elementlər üçün geniş sahələrin olmamasını nəzərdə tutur. Media sorğularından istifadə edərək, siz şablonu müxtəlif cihaz ekran ölçülərinə uyğunlaşdırmaq üçün yenidən təşkil edərək səhifədə blokların düzülüşünə və yerləşdirilməsinə nəzarət edə bilərsiniz.
Həssas veb sayt yaratmaq üçün əsas üsullar məqalədə verilmişdir. Cavab verən dizayn üçün əsas sayt konteynerinin eni % ilə müəyyən edilir və o, brauzer pəncərəsinin eninin 100%-nə bərabər və ya daha az ola bilər. Şəbəkə sütunlarının eni də % ilə müəyyən edilir. Cavab verən dizaynda əsas konteynerin və şəbəkə sütunlarının eni px dəyərlərindən istifadə etməklə müəyyən edilir.
Bu dərsdə müzakirə olunan adaptiv maye tərtibatı texnikası iki sütunlu şablonda mükəmməl işləyərək saytı uyğunlaşdırıcı və mobil cihazlarda baxmaq üçün rahat edəcək. Şablon səhifələrin əsas məzmununun fərqli tərtibatını nəzərdə tutur, bu dərsdə əsas səhifənin tərtibatı müzakirə olunacaq.
Əsas səhifənin tərtibatıSəhifə üç əsas blokdan ibarətdir: başlıq (başlıq), əsas məzmun və yan panel üçün sarğı konteyneri və altbilgi (altbilgi). Dizayn dönüş nöqtələri kimi 768px və 480px götürək.
Birinci nöqtədə, üst menyunu gizlədəcəyik və yan paneli postlarla konteynerin altına köçürəcəyik. İkinci nöqtədə başlıq elementlərinin yerini dəyişəcəyik və düymələrin yerləşdirilməsini ləğv edəcəyik sosial şəbəkələr yazılarda və səhifənin altbilgi sütunlarının sarılmasını ləğv edin.
1) Bölməyə lazımi faylları əlavə edin - istifadə olunan şriftlərə, jQuery kitabxanasına, həmçinin prefikssiz plaginə keçid (xassələr üçün brauzer prefikslərini yazmamaq üçün):
Adaptiv veb sayt tərtibatı
2. Səhifənin başlığıSəhifənin başlığına aşağıdakı konteyner elementlərini yerləşdirəcəyik:
loqo ;
əsas menyunu göstərmək/gizlətmək üçün düymə;
əsas menyu
L O QO
3. Məqalənin xülasəsi ilə bloklayınMəqalələrin elanını elementlə bağlayacağıq:
Dizayn baharı
Rus dili fəsillərə və onlarla bağlı təbiət hadisələrinə aid sözlərlə çox zəngindir.
Oxumağa davam edin ... 4. Yan panelYan sütunda kateqoriyaların siyahısını, son yazıları və xəbər bülleteni abunə formasını əlavə edəcəyik:
Kateqoriyalar
Ən Son Mesajlar Bülletenə abunə olun 5. AltbilgiSəhifənin altbilgisində müəllif hüquqları ilə bağlı məlumat, sosial şəbəkə düymələri və link yerləşdirəcəyik e-poçt:
Mənim blogum © 2016 Hərf yazın $(".nav-toggle").on("klik", function())( $("#menu").toggleClass("aktiv"); ));
6. Ümumi CSS üslublarıÜmumi üslublar, brauzer üslublarını defolt vəziyyətinə qaytarın:
*, *:sonra, *:əvvəl ( qutu ölçüsü: sərhəd qutusu; doldurma: 0; kənar: 0; keçid: .5s asan giriş; /* bütün səhifə elementləri üçün hamar keçidlər əlavə edin */ ) ul ( list-style: none; a ( text-decoration: none; kontur: none; ) img ( display: block; en: 100%; ) h1, h2, h3, h4, h5, h6 ( font-family: "Playfair Ekran"; şrift çəkisi: normal; hərf aralığı: 1px; ) bədən ( şrift ailəsi: "Open Sans", arial, sans-serif; şrift ölçüsü: 14px; sətir hündürlüyü: 1; rəng: #373737; fon: #f7f7f7; ) /* daxilində uşaq elementləri olan bütün konteynerlər üçün axın təmizlənməsi əlavə edin */ başlıq:sonra, .container:sonra, altbilgi:sonra, .widget-posts-list li:after, #subscribe:after ( məzmun: ""; ekran: cədvəl; aydın: hər ikisi; ) /* şəbəkə konteynerinin eninə nəzarət edən stil sinfi */ .container ( margin: 0 auto; width: 100%; max-width: 960px; padding: 0 15px ;
7. Başlıq və onun məzmunu başlığı üçün üslublar (en: 100%; fon: ağ; qutu-kölgə: 3px 3px 1px rgba(0,0,0,.05); doldurma: 15px 0; kənar-alt: 30px; mövqe : nisbi; ) /* logo */ .loqo ( displey: blok; float: sol; ) .loqo aralığı ( rəng: ağ; ekran: inline-blok; en: 30px; hündürlük: 30px; xətt hündürlüyü: 30px; sərhəd - radius: 50% kənar: mətn-kölgə: 2px 2px rgba(0,0,0,.4) #EF5A42; .logo span:nth-child(even) ( fon: #F8B763; ) /* menu */ #menu ( float: right; ) #menu li ( display: inline-block; margin-right: 30px; ) #menu a (rəng: #111; mətnin dəyişdirilməsi: böyük hərf; hərf aralığı: 1px; şrift çəkisi: 600; displey: blok; sətir hündürlüyü: 40px; ) #menyu a:hover (rəng: #EF5A42; ) #menu li :son-uşaq ( kənar-sağ: 0; ) /* axtarış forması */ #axtarış forması ( float: sağ; kənar-sol: 46px; displey: inline-block; mövqe: nisbi; ) #searchform input ( en: 170px; float: sol sərhəd: heç biri padding-left: 10px; hündürlük: 40px; daşqın: gizli; kontur: heç biri; rəng: #9E9C9C; şrift üslubu: kursiv; ) #axtarış forması düyməsi ( fon: şəffaf; hündürlük: 40px; haşiyə: heç biri; mövqe: mütləq; sağ: 10px; rəng: #EF5A42; kursor: göstərici; şrift ölçüsü: 18px; ) #axtarış forması girişi: fokus ( kontur: 2px bərk #EBEBE3; ) /* 768px enində görünən menyu keçid düyməsi */ .nav-keçid (ekran: heç biri; mövqe: nisbi; float: sağ; en: 40px; hündürlük: 40px; kənar-sol: 20px; fon: # EF5A42; kursor: göstərici; ) .nav-geçiş aralığı (ekran: blok; mövqe: mütləq; yuxarı: 19px; sol: 8px; sağ: 8px; hündürlük: 2px; fon: ağ; ) .nav-geçiş aralığı: əvvəl , .nav-toggle span:after ( məzmun: ""; mövqe: mütləq; displey: blok; sol: 0; en: 100%; hündürlük: 2px; fon: ağ; ) .nav-toggle span:before ( üst: - 10px; ) .nav-toggle span:after ( alt: -10px; ) /* düymə kliklədikdə yuxarı menyuya əlavə olunacaq və gizli menyunu göstərəcək */ #menu.active ( max-height: 123px; 8. Əsas məzmun bloku üçün üslublar /* sol konteyner */ .posts-list (margin-bottom: 30px; eni: 64%; float: sol; ) /* məqalə üçün blok */ .post (margin-alt: 35px; ) .post-content p ( sətir hündürlüyü: 1.5; padding-alt: 1em; ) .post-şəkil ( kənar kənar: 30px; ) kateqoriya ( alt kənar: 15px; ) .kateqoriya a (rəng: #F8B763; mətni çevirmək: böyük hərf; ) .post-başlıq ( alt kənar: 12px; şrift ölçüsü: 26px; ) /* "" ilə blok. davam" düyməsini oxu" və sosial şəbəkə düymələri */ .post-footer ( haşiyə-yuxarı: 1px bərk #EBEBE3; haşiyə-alt: 1px bərk #EBEBE3; mövqe: nisbi; kənar-yuxarı: 15px; ) .more-link ( mövqe: nisbi ekran: mətn-transform: böyük hərf: 0 22px; 1em; ağ boşluq: nowrap; ) .more-link:after ( məzmun: ""; displey: blok; mövqe: mütləq; en: 0; hündürlük: 0; yuxarı: 0; sağ: 0; haşiyə: tam şəffaf; haşiyə eni: 22px 18px; haşiyə -sol rəng: #3C3D41; transform: translateX(100%) .post-sosial (vəzifə: mütləq; sol: avtomatik; yuxarı: 50%; sağ: 0; mətni düzləşdirmək: sağa; transform: translateY(- 50) %); padding: 0; font-size: .post-social a (ekran: inline-block; margin-left: 8px; color: #F8B763; width: 25px; height: 25px; line-height: 23px; mətn-align: center; haşiyə-radius: 50% haşiyə: 1px bərk; 3px 1px rgba(0,0,0,.05); -kölgə: 3px 3px 0 0 #F8B763 ) .widget-kateqoriya siyahısı li ( sərhəd-alt: 1px bərk #EBEBE3; doldurma: 10px 0; rəng: #c6c6c6; şrift üslubu: kursiv; ) .widget-kateqoriya siyahısı li:son-uşaq (haşiyə-alt: heç biri; ) .widget-kateqoriya siyahısı li a (rəng: #626262; kənar-sağ: 6px; şrift üslubu: normal; ) .widget- kateqoriya siyahısı li a:əvvəl ( məzmun: "\f105"; displey: inline-block; font-family: "FontAwesome"; kənar-sağ: 10px; rəng: #c6c6c6; ) .widget-posts-list li ( haşiyə -top: 1px solid #EBEBE3; padding: 15px 0; .widget-posts-list li:nth-child(1) ( border-top: none; ) .post-image-small ( en: 30%; float: left; margin-right: 15px; .widget-post-title ( float: left; ) /* abunə forması */ #subscribe ( mövqe: nisbi; width: 100%; padding: 15px 0; ) #subscribe input ( width : 100% float: sol; şrift tərzi: 0 0 10px; : pointer; font-size: 18px ) #subscribe input: focus + button ( fon: #EF5A42; rəng: ağ; ) 10. Altbilgi üslublarıSaytın altbilgisini üç bərabər sütuna bölürük:
Altbilgi ( padding: 30px 0; fon: #3C3D41; rəng: ağ; ) .footer-col ( en: 33.3333333333%; float: sol; ) .footer-col a (rəng: ağ; ) .footer-col: last- uşaq ( mətnin düzülməsi: sağa; ) .social-bar-wrap (mətn düzülməsi: mərkəz; ) .social-bar-wrap a ( padding: 0 7px; font-size: 18px; )
11. Media sorğuları @media (maksimum genişlik: 768px) ( /* yuxarı naviqasiyanı dəyişdirmək üçün düyməni göstərin */ .nav-toggle ( display: block; ) header ( padding: 10px 0; ) /* yuxarı menyunu gizlədin , bağlamanı ləğv edin, yerləşdirin, saytın başlığının hündürlüyünə köçürün */ #menyu ( max-height: 0; fon: ağ; float: heç biri; mövqe: mütləq; daşqın: gizli; yuxarı: 63px; sağ: 0 sol: 0 margin: 0; ; border-bottom: 1px solid # EBEBE3-right: 0 ) /* sol və sağ sütunların bağlanmasını ləğv edin, onların enini 100% təyin edin */ .posts-list, kənara ( width: 100%; float); : none; ) .widget-post-title ( font -size: 1.5em; ) ) @media (maksimum genişlik: 480px) ( /* loqo üçün sarğı ləğv edin və onu mərkəzə uyğunlaşdırın */ .logo ( float : none; margin: 0 auto 15px; display: table; ) /* axtarış formasını sola yerləşdirin */ #searchform ( float: left; margin-left: 0; ) /* yuxarı və aşağı sərhədləri çıxarın və düyməni mərkəzə uyğunlaşdırın */ .post-footer ( border- top: none; border-bottom: none; text-align: center; : 20px; ) .widget- post-title ( şrift ölçüsü: 1.2em; ) /* səhifə altbilgisi sütunları üçün sarğı ləğv edin */ .footer-col ( float: heç biri; margin-alt: 20px; en: 100%; mətn -align: center;Bağlama teqindən əvvəl səhifə işarələməsinə əlavə etdiyimiz jQuery kodu düyməyə basıldıqda yuxarı menyunun göstərilməsinə və gizlədilməsinə cavabdehdir (menyunun hündürlüyü sıfırdan məzmununa bərabərdir):
$(".nav-toggle").on("klik", funksiya())( $("#menu").toggleClass("aktiv"); ));
Mobile First haqqında çox yazılıb və var yaxşı kitablar bu mövzuda. Və buna baxmayaraq, əksər tərtibatçılar və şirkətlər bunu öz layihələrində istifadə etmirlər və ya bu yanaşma haqqında ümumiyyətlə bilmirlər.
Ona görə də sizə bu barədə qısaca və misallarla danışmaq istəyirəm, bu yanaşma haqqında eşitməyənlər üçün faydalı məlumat olacaq.
Üç əsas suala cavab verməyə çalışacağam:
Buna görə də, Mobile First inkişafında ən vacib tələblərdən bəziləri bunlardır:
Axtarış nəhəngi Google bu yaxınlarda bu yanaşmanın əhəmiyyəti haqqında yazdı:
Bir avtomobil haqqında ətraflı məlumatı olan bir səhifənin nümunəsindən istifadə edərək yanaşmanı nəzərdən keçirəcəyik.
Məzmunun mühüm hissəsinin müəyyən edilməsi Adətən belə bir səhifədə çoxlu məlumat olur. Və bunlardan hansının ilk növbədə istifadəçi üçün vacib olduğuna qərar verməliyik.Səhifədəki məlumatların ətraflı siyahısı:
Təsəvvür edək ki, bu siyahıdan əsas şey əsas şəkil, istehsalçının adı, modellər, avadanlıq, qiymət, xüsusiyyətlər və avadanlıqların siyahısıdır.
Mobil ilk səhifə. Şirkətin Adı Şirkətin təsviri 2015 Nissan Versa Note
Tələblərə ehtiyacınız var, adipiscing elitinə diqqət yetirin, iş və hər hansı bir böyük gücə sahib ola bilərsiniz.
Müəllif hüququ
Əlaqə
Saytın xəritəsi
İdeal olaraq, bu, istifadəçi tərəfindən bu məlumatları əldə etmək üçün sərf edilə bilən trafik miqdarıdır. Biz isə minimal fərqlə buna nail olmağa çalışacağıq.İlk növbədə, mobil cihazlarda səhifələrin göstərilməsi üçün üslublar yazacağıq. Və yalnız bundan sonra üslublar media sorğusu vasitəsilə digər ekran ölçülərinə uyğunlaşdırılır. @media (min-en: 768px) ( /*Tablet və masa üstü üslubları*/ )Əlavə məlumatların əlavə edilməsi
Daha çox şəkillərə baxın...
Burada biz tələb olunduqda məlumat əldə etməyə kömək edən Data Events köməkçilərindən istifadə edirik. Linkə kliklədiyiniz zaman href atributunda göstərilən ünvana Ajax sorğusu göndəriləcək. Sorğunun nəticəsi data-load-target atributunda göstərilən elementə yazılacaq. Əhəmiyyətli bir məqam odur ki, data-load-screen atributu hansı ekran dəyərlərində miniatürlərin avtomatik yüklənəcəyini göstərir. Ekran ölçüləri Twitter Bootstrap CSS çərçivəsindən götürülüb. Data-load-module atributunda isə ajax sorğusunun nəticəsi daxil edildikdən sonra qoşulacaq qeydə alınmış modulun identifikatorunu göstəririk.
Moff-dakı modullar öz biznes məntiqinə malik olan və xarici kitabxanalardan asılılıqları olan müstəqil proqram elementləridir.
Moff.modules.create("VehicleGallery", function() ( var _module = this; var _mainImage; function setMainImage() ( _mainImage = _module.find(".vehicle_images_main img"); ) function initializeSlickJsmole ($(_du) find(".vehicle_images_thumbs-list")).slick(( sonsuz: doğru, slidesToShow: 5, slidesToScroll: 1 )) ) funksiyası handleMainImage() ( $(_module.scope).on("click", ".vehicle_images_thumbs- item img", changePreview); ) changePreview() funksiyası ( var index = this.src.match(/thumb(\d+)/); _mainImage.src = "images/preview" + index + ".jpg"; ) bu .scopeSelector = ".vehicle_images"; this.init = function() ( setMainImage(); initializeSlickJs(); handleMainImage(); ));
Sinif inisializasiyası zamanı biz miniatürlərimizin karuselini yaratmaq üçün slick-carousel işlədirik və onlara baxmaq üçün işləyici qururuq.
Moff.amd.register(( id: "avtomobil qalereyası", asılıdır: ( js: ["/bower_components/jquery/dist/jquery.min.js", "/bower_components/slick-carousel/slick/slick.min. js"], css: ["/bower_components/slick-carousel/slick/slick.css"] ), fayl: ( js: ["js/vehicle-gallery.js"] ), afterInclude: function() ( Moff. module.initClass("VehicleGallery");
Nümunəmizdə, jQuery və onun kiçik şəkillərdən karusel yaradan slick-carusel plaginini asılılıqlar kimi göstərdik. Asılılıqlar siz təyin etdiyiniz ardıcıllıqla sinxron şəkildə yüklənir. Və asılılıqlardan sonra vasitə-gallery.js modul sinfi yüklənir. Sonra modul faylını və onun asılılıqlarını yüklədikdən sonra afterInclude hadisəsindən istifadə edərək modulu işə salırıq.
Aşağıdakı qrafik optimallaşdırılmamış səhifənin Mobil İlk səhifədən 73% ağır olduğunu göstərir. Bu yolla biz 186,94 KB-a qənaət edə bilərik ki, bu da istifadəçinin səhifənizə baxarkən ehtiyac duymaya bilər.
Nəticə Bu yolla biz çoxlu sayda ikinci dərəcəli resurs yükləməkdən xilas olmuş oluruq, lakin hansılar istifadəçinin istəyi ilə əldə oluna bilər.Bu məqalə əlavə məlumatın yüklənməsinin yalnız bir nümunəsini əhatə edir. Tam nümunəyə çərçivə veb saytında baxmaq olar.
Bəzi mənalarda daha böyük daha yaxşıdır. Amma daha önəmlisi, nisbətlər məzmunu uyğunlaşdırır. Bədən mətni ölçülüdürsə 24px, saytın qalan hissəsi ilə yaxşı uyğunlaşdığından əmin olun. Burada sərt və sürətli qaydalar yoxdur, lakin xəttin hündürlüyü arasında olmalıdır 1.2xüçün 1.4xşrift ölçüsü. Prioritetlərə əsasən ölçüləri, sıxlıqları və rəng dəyişikliyini təyin edin. Burada çox şey bağırsaq hissi və öyrədilmiş gözdən gəlir.
Sətir uzunluğu 45 ilə 90 simvol arasında olmalıdır. Tipoqrafiyanın ümumi qaydaları bu təlimatda daha ətraflı təsvir edilmişdir.
SVGUsing WebKit for Animations ilə işləməkPerformans vacibdir: istifadəçinin rahatlığına birbaşa təsir göstərir. Hər şey yavaşdırsa, insanlar dizaynınızdakı alt başlıqlara əhəmiyyət verməyəcəklər, çünki onlar hər şeyin nə qədər yavaş getdiyini düşünəcəklər.
Aşağıda, avtomobil işə düşəndə jQuery-nin animate əvəzinə webkit-transform istifadə etdim. Performans bu tətbiq ilə əhəmiyyətli dərəcədə yaxşılaşır. Bundan əlavə, Mobile Safari və Chrome-da əla işləyir.
Buna əmin olmaq lazımdır iOS cihazları və Android dizaynı 0,5 miqyaslandırdı ki, hər şey 640px ekran enində gözəl işləyir. iPad üçün biz 1-ə qədər miqyaslandıracağıq.
iOS Ağıllı BannerƏgər sizin iPhone-unuz varsa, saytın yuxarı hissəsini tətbiqinizlə əlaqələndirəcək bir kod parçası əlavə edə bilərsiniz.
İnsanlar iPhone və ya iPad vasitəsilə sayta daxil olduqda, onları aparan gözəl bir banner görürlər Tətbiq Mağazası. iOS Simulyatorundan istifadə
Mobil istifadəçilərin yarısı Android-dədir. Android-də Chrome brauzerindəki elementləri sınamaq üçün bu təlimatlara əməl edin.
Bütün brauzerlərdə və bütün cihazlarda işləyən həqiqətən həssas veb sayt hazırlamaq asan məsələ deyil. Buna görə də, vaxtınızın çox hissəsini tərtibatçını dəli edən kiçik şeylərə sərf etməmək üçün mümkün qədər səmərəli işləməlisiniz. IE6 dəstəyini necə dayandırdığımız kimi, biz də bəzi köhnə cihazları və daha aşağı qətnamələri sildik.
Sadə, cavab verən sayt naviqasiyası yaradacağıq. Bizim həllimiz diqqəti cəmləməyə kömək edəcək məzmun mobil qurğular üçün işlənib hazırlanarkən bəlkə də əsas prioritet olan səhifəmiz. Burada heç bir JavaScript iştirak etməyəcək, lakin biz bunu Mobile First yanaşmasından istifadə edərək əhatə edəcəyik.
Mobil naviqasiyaMükəmməl məqbul cavab verən dizayn, lakin standart mobil görünüş ölçülərində (320 x 480 piksel) həqiqətən gördüyünüz tək şey naviqasiya menyusudur. Şübhəsiz ki, sadəcə əsas səhifəni açıb, bundan başqa bir şey görmək istərdim. London və Partners bu problemlə üzləşən yeganə şirkət deyil, bu təcrübə internetdə bir çox cavab verən dizaynlarda görünür.
Beləliklə, həll yolları hansılardır?Biz artıq bunun bir neçə yolunu bilirik, məsələn, bunu anlamağa kömək etmək üçün jQuery-ə etibar etmək. Chris Coyier-in Beş Sadə Addım açılan menyusunun izahatını götürün.
JQuery-dən istifadə edərək dublikat menyu açılan siyahı kimi yaradılır, ilkin olaraq CSS-dən istifadə edərək baxışdan gizlənir. Media sorğuları daha kiçik ekran aşkar etdikdə, açılan menyunu görünən və orijinal naviqasiyanı görünməz edir. Bu, mobil cihazlar üçün idealdır, çünki açılan menyular minimal yer tutur və cihazın xüsusi istifadəçi interfeysindən (iPhone sürüşdürmə cihazı kimi) istifadə edir.
Bundan əlavə, siz naviqasiyanızı gizlədə bilərsiniz, lakin "menyu" düyməsini basdığınız zaman baxış rejiminə keçə bilərsiniz. Bu effekti Twitter-in ən son Bootstrap proqramında görə bilərsiniz.
Kiçik ekranlar naviqasiya bağlantılarını gizlədir və kliklədikdə naviqasiyanı göstərən “siyahı” işarəsini (tezliklə “menyu” kimi qəbul edilir) göstərir. Yenə də, mobil ziyarətçilərə mümkün qədər çox məzmun təqdim olunur və seçdikləri təqdirdə naviqasiya seçimləri mövcuddur.
Biz Lukanın müzakirə etdiyi texnikadan istifadə edəcəyik ki, bu da CSS və Mobil İlk yanaşmanın istifadəsini nəzərdə tutur. “Mobil ilk yanaşma” termini ilə nəyi nəzərdə tuturuq? Sadə dillə desək, biz birbaşa mobil layout hazırlayacağıq və sonra daha böyük ekranlar üçün dizaynı tədricən təkmilləşdirəcəyik. Biz getdikcə artan ekran ölçülərini aşkar edən, tədricən üslub və funksionallıq əlavə edən media sorğularından istifadə edəcəyik.
Bu o deməkdir ki, mobil cihazda dizayna baxarkən yalnız minimum CSS və aktivlər yüklənəcək. Bu həm də o deməkdir ki, IE-nin köhnə versiyaları (media sorğularını tanımayan) saytın mobil versiyasında təqdim olunacaq. Bu barədə daha çox məlumat üçün Joni Korpi tərəfindən Köhnə Internet Explorer-in Arxasında Qoyma məqaləsinə baxın.
1. İşarələməİrəliləyərkən mən bu həllin arxasında duran ideyaları izah edəcəyəm, buna görə də hələlik blanco HTML5 sənədindən başlayaraq bəzi işarələmələr çəkək.
Mobil İlk Cavab Naviqasiya
Bunu etdikdən sonra bəzi səhifə strukturunu əlavə edək. Birbaşa lazım olan nöqtələr və nümayişimizin məqsədləri üçün hər şey. Mən Holy Grail-in Monty Python mətn doldurucusundan istifadə etdim (təşəkkürlər Chris Valleskey) bu, işləyərkən üzünüzdə təbəssüm yaratmaq üçün yaxşı bir yoldur :)
Göy Mavi. Yox, ey...
Sus! susarsan?! Amma sən tək geyinmisən... Camelot! Siz padşahlara səs vermirsiniz.
Biz bir kol istəyirik!Bax, mənim yalanım! Sus! Amma siz bir kimi geyinmisiniz...
Niyə? Qulaq as. Qəribə qadınların gölməçələrdə uzanaraq qılınc paylaması hökumət sistemi üçün əsas deyil. Ali icra hakimiyyəti hansısa gülməli su mərasimindən deyil, kütlədən verilən mandatdan irəli gəlir. Sakit ol! Təzə?!--son sarğı-->
2.Naviqasiya tərtibatıBiz əsas html səhifəsini bir araya gətirdik, buna görə də indi əsas cazibə üçün vaxtdır; əsas naviqasiyamız..
Bəli, siz hər şeyi düzgün gördünüz - 68-ci sətirə əlavə etdik sonra son məqalə. Unutmayın ki, biz hazırda mobil cihazlar üçün inkişaf edirik, daha sonra masa üstü versiyasına baxacağıq. Naviqasiyanı səhifəmizin aşağı hissəsində yerləşdirdik, bu olduqca qəribə görünür. İndi biz səhifəmizin yuxarı hissəsində bir keçid yerləşdirəcəyik ki, istifadəçilər istəsələr naviqasiya tapa bilsinlər.
Nav Menyu
3. CSS-i sıfırlayınAdətən veb layihələrə necə başlamağınızdan asılı olaraq, bu addım normal iş axınınızdan fərqli ola bilər. Mən həmişə Erik Meyerin yenidən işə salınmasının başlamaq üçün möhkəm yer olduğuna inanmışam, xüsusən də o, bu yaxınlarda ona yenidən baxdığından. CSS-imizi işə salmaq üçün onun sıfırlama qaydalarını üslub cədvəlinə əlavə edəcəyik:
/* http://meyerweb.com/eric/tools/css/reset/ v2.0b1 | 201101 QEYD: DAVAM EDƏN İŞ EHTİYATLA İSTİFADƏ EDİN VƏ TƏRK ETMƏK İLƏ TEST EDİN */ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr , akronim, ünvan, böyük, sitat, kod, del, dfn, em, img, ins, kbd, q, s, samp, kiçik, vurmaq, güclü, alt, sup, tt, var, b, u, i, mərkəz , dl, dt, dd, ol, ul, li, sahə dəsti, forma, etiket, əfsanə, cədvəl, başlıq, tbody, tfoot, thead, tr, th, td, məqalə, kənara, kətan, detallar, figcaption, fiqur, altbilgi , başlıq, hgroup, menyu, naviqasiya, bölmə, xülasə, vaxt, işarə, audio, video ( haşiyə: 0; doldurma: 0; haşiyə: 0; kontur: 0; şrift ölçüsü: 100%; şrift: miras; şaquli- align: baseline; ) /* HTML5 ekran rolunun köhnə brauzerlər üçün sıfırlanması */ məqalə, kənara, detallar, təsvir, şəkil, altbilgi, başlıq, hgroup, menyu, naviqasiya, bölmə ( displey: blok; ) gövdə ( sətir hündürlüyü: 1; ) ol, ul ( list-style: none; ) blockquote, q ( quotes: none; ) blockquote:fore, blockquote:sonra, q:fore, q:sonra ( content: ""; content: none; ) / * birtəhər əlavələri vurğulamağı unutmayın! */ ins ( mətn dekorasiyası: heç biri; ) del ( mətn dekorasiyası: sətir boyunca; ) cədvəl ( haşiyə-daralma: dağılma; sərhəd aralığı: 0; )
4.Əsas üslublarHazırda səhifəmiz olduqca darıxdırıcı görünür.
Beləliklə, bəzi sadə üslub əlavə edərək vəziyyəti yaxşılaşdıraq.
/*üslublarımıza başlayın*/ bədən ( şrift: 16px/1.4em "PT Sans", sans-serif;; rəng: #1c1c1c; ) p, ul ( kənar: 0 0 1.5em; ) ul ( siyahı üslubu: disk padding: 0 0 0 20px; a (rəng: #1D745A; ) h1 ( ) h2 ( font-family: "PT Serif", serif; font-size: 32px; line-height: 1.4em; margin: 0 0; .4em; font-weight: qalın; fon: #1c1c1c; padding: 15px 20px; :after ( clear:both; ) /* IE 6/7 üçün (trigger hasLayout) */ header ( zoom:1; ) h1.logo a ( color: #d8d8d8; text-decoration: none; font-weight: qalın; text-transform: font-size: float: sol: 0.2em padding: none;
şrift ölçüsü: 12px;
şrift çəkisi: qalın; xəttin hündürlüyü: 22px; hündürlük: 22px; mətni çevirmək: böyük hərf; hərf aralığı: 0,1em; -webkit-border-radius: 2px;-moz-border-radius: 2px;
sərhəd radiusu: 2px; ) a.to_nav:hover, a.to_nav:focus (rəng: #1c1c1c; fon: #ccc; )
Bunlar hamısı əsas məlumatlardır (şriftlər, sətir hündürlükləri, rənglər və s.), lakin həqiqətən vacib olan odur ki, mən "menyu" düyməsini sağda, içərisində, onu görməyi gözlədiyiniz yerdə çəkdim.
Bunun üzərinə sürüşsəniz, sürüşmə vəziyyətini görəcəksiniz - əlbəttə ki, bu toxunma ekranlı cihazlar üçün lazım deyil, lakin oxşar davranış uyğun olmayan versiyalara da keçəcəkInternet Explorer
/*naviqasiya*/ #primary_nav ul (siyahı üslubu: heç biri; fon: #1c1c1c; padding: 5px 0; ) #primary_nav li a (ekran: blok; padding: 0 20px; rəng: #fff; mətn dekorasiyası: heç biri ; font-weight: bold-bold: 0.1em; line-height: 2em; border-bottom: 1px solid ) #primary_nav li :son-child a ( border-bottom: none; ) #primary_nav li:hover, #primary_nav li a:focus (rəng: #1c1c1c; fon: #ccc; ) /*footer*/ footer ( font-family: " PT Serif", serif; font-style: italic; text-align: center; font- ölçüsü: 14px;
Daha yaxşı. Biz menyu bağlantılarını gözəl və böyük etdik (daha ətraflı məlumat üçün Luke Wroblewski-nin Toxunma Hədəf Ölçüləri bloqunu oxuyun) və vəziyyəti yenidən təyin etdik: istifadəçi rəyi üçün fokus.
Tamam, biz sadə mobil şablonumuzla işləmişik, lakin indi daha təkmilləşdirmələrin vaxtıdır. Mobil tərtibatımızın nə vaxt uyğun olmadığını müəyyən etmək üçün media sorğularından istifadə edəcəyik.
Amma hansı məqamda belə olur? Media sorğularına yanaşmağın bir çox yolu var, lakin biz mobil görüntünün 320 x 480 piksel olması əsasında işləyəcəyik. "Portret" oriyentasiyasında baxdıqda eni 320 pikseldir, "landşaft" oriyentasiyasında baxdıqda eni 480 pikseldir, ona görə də ilk media sorğumuzu 480 pikseldən böyük istənilən ekranı təyin etmək üçün təyin etsək, məntiqli olar.
Ancaq növbəti addım, ehtimal ki, bir tabletdir. IPad 980px x 768px təsvir ölçüsünə malikdir, buna görə də 768px-dən kiçik hər hansı bir şeyin mobil tərtibatımız üçün uyğun olduğunu əminliklə güman edə bilərik. 768px-dən böyük olan hər şey masa üstü naviqasiya düzeni, "iş masası" versiyası ilə işləyə bilər.
Beləliklə, indi biz qaydalar əlavə etməyə başlaya bilərik, ona görə də media sorğusu quraq:
/*media sorğuları*/ @yalnız media ekranı və (min-en: 768px) ( )
Ən kiçik baxış dəyəri 768 piksel olarsa, bu media sorğusu tərkibindəki bütün üslubları işə salacaq. Zəhmət olmasa daxil olmasına diqqət yetirin yeganə Internet Explorer 8-in çaşqınlıq yaratmamasını təmin edən və sorğunu emal etməyə çalışan açar söz. Daha ətraflı məlumat üçün baxın.
"Menyu" düyməsini yox etməklə işimizi başlayaq:
@media yalnız ekran və (min-en: 768px) ( a.to_nav (ekran: heç biri; ) )
Brauzer bir qədər geniş olduqda, menyu düyməsi artıq görünməyəcək.
7. Naviqasiyanı köçürünİndi əsas naviqasiyamızı səhifənin yuxarısına köçürməliyik. Bunu sənəd axınından çıxararaq, ən yuxarıda yerləşdirməklə edəcəyik.
@media yalnız ekran və (min-en: 768px) ( a.to_nav (ekran: heç biri; ) .wrapper ( mövqe: nisbi; en: 768px; kənar: avtomatik; ) #primary_nav ( mövqe: mütləq; yuxarı: 5px; sağ : 10px; fon: heç biri; : 2px; sərhəd radiusu: 2px;
Bunun mümkün olması üçün ilk növbədə onun valideynini (.wrapper) düzgün yerləşdirməliyik. Biz bunu ya burada media sorğusunda edə bilərik, ya da stil cədvəlimizin əvvəlində müəyyən edə bilərik.
Menyu tam quraşdırıldıqdan sonra bəzi anker elementlərini çıxarmalıyıq. Xüsusi bir şey etmək lazım deyil, sadəcə olaraq məhsulların siyahısını xətti olaraq göstərmək, sərhədləri və böyük boşluqları silmək lazımdır. Əvvəllər haqqında danışdığımız hover vəziyyətləri, əlbəttə ki, əladır, ona görə də onları dəyişməyə ehtiyacımız yoxdur.
Əgər diqqət etmisinizsə, naviqasiyada hələ də "yuxarıya qayıt" linkinin olduğunu görəcəksiniz - indi buna ehtiyacımız yoxdur, elə deyilmi?
Biz onu bir neçə yolla silə bilərik, lakin nə baş verdiyini aydınlaşdırmaq üçün əvvəlcə siyahı elementinə bir sinif əlavə edək:
Və sonra media sorğumuzda ondan xilas ola bilərik:
#primary_nav li.top ( ekran: heç biri; )
Budur! Bu ideyanı həyata keçirməyin bir çox yolu var (siyahı simvolu onlardan yalnız biridir) və əlbəttə ki, daha böyük ekranlarda işləmək üçün media sorğularını əlavə etməyə davam edə bilərsiniz. Ümid edirəm ki, indi bunu etmək üçün bir səbəbiniz var. Biz məzmuna və istifadəyə diqqət yetirərək mobil ilk yanaşmadan istifadə edərək sadə, həssas, toxunma naviqasiyasını yaratdıq. Daha çox kimə lazımdır?!
Əlavə ResurslarBu məqalədə qeyd olunan, bir rahat siyahıda toplanmış bəzi faydalı bağlantılar: