Wordpress səhifəsinin altına altbilgi əlavə edin. Altbilgi və ya altbilgini CSS veb səhifəsinin altına necə bağlamaq olar? Spacer daxil edirik və Internet Explorer ilə mübarizə aparırıq




  • dərslik

Tam hüquqlu veb-sayt səhifələrinə öyrəşmiş hər kəs səhifənin altbilgisinin altındakı “dırnaqlanmış” (yapışqan, yapışqan) görünüşünə üstünlük verir. Ancaq İnternetdə iki problem var: aşağıya doğru böyüməyən giriş sahələri və mismarlanmayan altbilgilər (pəncərənin altına). Məsələn, hündürlüyü qısa tipli səhifələri açanda dərhal diqqəti cəlb edir ki, baxış pəncərəsinin aşağı hissəsində olması nəzərdə tutulan məlumat məzmuna yapışır və ortada, hətta pəncərənin yuxarı hissəsində yerləşir. altda boş olduqda.

Beləliklə, əvəzinə.
Yeni başlayanlar üçün bu təlimat, 45 dəqiqə ərzində "dırnaqlanmış" altbilgi düzəltməyi, hətta Habr kimi hörmətli bir nəşrin qüsurlarını düzəltməyi və perspektivli layihənizin icrası kimi onunla rəqabət aparacağını göstərəcəkdir.

Şəbəkədən götürülmüş bir növ mismar altbilginin həyata keçirilməsinə baxaq və nə baş verdiyini anlamağa çalışaq. css-tricks.com/snippets/css/sticky-footer
CSS:
* ( margin:0; padding:0; ) html, body, #wrap ( hündürlük: 100%; ) body > #wrap (hündürlük: auto; min-hündürlük: 100%;) #main ( padding-alt: 150px; ) /* altbilgi ilə eyni hündürlükdə olmalıdır */ #footer ( mövqe: nisbi; margin-top: -150px; /* altbilgi hündürlüyünün mənfi dəyəri */ hündürlük: 150px; aydın: hər ikisi;) /* CLEAR FIX*/ .clearfix:sonra (məzmun: "."; ekran: blok; hündürlük: 0; aydın: hər ikisi; görünmə: gizli;) .clearfix (ekran: inline-block;) /* IE-mac-dan gizlədir \*/ * html .clearfix( hündürlük: 1%;) .clearfix(ekran: blok;) /* IE-mac-dan gizlətməyi bitir */
HTML:

Çətin ki, hər kəs, hətta CSS-i bilənlər belə bu koda baxaraq, prinsipləri başa düşəcək və mürəkkəb bir layihəni inamla redaktə edəcəklər. Hər hansı bir addım yan təsirlərə səbəb olacaqdır. Aşağıdakı altbilginin əsaslandırılması və hazırlanması sizə CSS qaydaları haqqında daha çox anlayış vermək məqsədi daşıyır.

Nəzəriyyə ilə başlayaq

Dırnaqlanmış altbilginin adi tətbiqi elementlərin dərhal uşaqlar olduğu CSS2-nin unikal xüsusiyyətinə əsaslanır. BƏDƏN- dəstək faizi hündürlüyü ( hündürlük: 100% və ya başqa) pəncərəyə nisbətən, əgər bütün valideynlərinin eyni faiz hündürlüyü varsa, etiketdən başlayaraq HTML. Əvvəllər doktiplər olmadan, indi Quirks rejimində elementlərin faiz yüksəklikləri istənilən səviyyədə, müasir doktiplərdə isə yalnız faiz dəsti elementləri daxilində dəstəklənir. Beləliklə, bir məzmun bloku yaratsaq (gəlin onu adlandıraq #layout) 100% hündürlüyə malik olmaqla, pəncərə kimi sürüşəcək. Altbilgi və bəlkə də başlıq istisna olmaqla, bütün (axın) məzmun orada yerləşdirilir.

Altbilgi bu blokdan sonra yerləşdirilir və 0 piksel hündürlüyü verilir. Ümumiyyətlə, izləyə bilərsiniz #layout istədiyiniz qədər blok qoyun, lakin onların hamısı ya 0 piksel yüksəklikdə, ya da sənəd axınından kənarda olmalıdır (yox mövqe: statik). Və adətən istifadə olunan başqa bir vacib hiylə var. Hündürlüyü 0-a bərabər etmək lazım deyil. Hündürlüyü sabit edə bilərsiniz, ancaq xassə görə əsas blokdan çıxarın margin-alt: -(hündürlük);.

İnsan baxımından üslublar alt hissədə altbilginin yerləşdirildiyi boş bir "cib" yaradır və o, həmişə ya pəncərənin alt sərhədinə, ya da sənədin alt sərhədinə yapışdırılır. pəncərənin hündürlüyündən yüksəkdir. İnternetdə altbilginin bir çox tətbiqi var, bütün brauzerlərdə müxtəlif müvəffəqiyyətlər var. Gəlin, Habrın planını "işgüzar" kimi istifadə edərək, onu öz gücümüzlə qurmağa davam edək.

Blokun altından bəri #layout- bu cibdir, altbilgi üçün boş olmalıdır, səhifə obyektlərini göstərməməlidir. Və burada başqa bir məhdudiyyətlə qarşılaşırıq - hesabına boş cib edə bilmərik dolgu V #layout, çünki o zaman 100%-dən çox olacaq. xilas etməyəcək marja- yuvalanmış elementlərin xüsusiyyətlərinə görə boşluq edilməlidir. Üstəlik, üzən elementlərin, məsələn, blok tərəfindən edilən blokun sərhədi altında sürünməməsini təmin etmək lazımdır.

, Harada .açıq(aydın:hər ikisi). Vacibdir ki, ya bu " hündürlük" sabit idi və ya eyni nisbi vahidlərdə idi, yoxsa biz onu səhifə dəyişdikcə hesablayardıq. Adətən bu hizalama qutusunu istədiyiniz hündürlüyə təyin etməklə uyğunlaşdırmaq rahatdır.

Eksperimentalımızın səhifələrinin strukturuna baxaq. Bunun ən asan yolu Chrome-da Firebug pəncərəsini və ya oxşar pəncərəni ("Developer Tools" (Ctrl-F12)) açmaqdır.

...Yuxarı reklam bloku...

Gəlin işlək bir nümunəyə keçək

Gördüklərimiz layout qüsurları mismarlı altbilgi effektinin həyata keçirilməsi baxımından? Biz bunu görürük
1) Saytdakı altbilgi faiz hündürlüyü olmayan id=layout ilə blokun içərisindədir. Teorik olaraq, o, valideynlər və .content-left məzmun bloku 100% yüksəkliyə təyin edilməlidir. Sonuncu ilə problemlər yaranır - bunun üçün uyğunlaşdırılmayıb. Buna görə, bir interlayer bloku yoxdur və ya altbilgi səhv səviyyədədir. Bundan başqa,
2) altbilginin hündürlüyü dəyişkəndir (siyahıdakı elementlərin sayından və şrift ölçüsündən asılıdır, bu HTML-dən deyil, CSS-dən görünür). VƏ
3) yuxarıda #layout sabit hündürlüyü 90px olan bir reklam bloku var;
4) nə altbilgidə, nə də (ümumiyyətlə) blokda hizalama blokları yoxdur #layout(Bəli, amma blokun üstündə .rotated_posts; lakin, bəlkə də bunu altbilgiyə aid etmək lazımdır).

4-cü nöqtə - bir ssenari ilə çəkməlisiniz.
Deyəsən, #layout(margin-top:-90px;) əlavə etməklə üçüncü məqamı anlamaq asan olardı. Ancaq unutmayın ki, bu blok mövcud olmaya bilər - o, banner kəsici tərəfindən sıxışdırılır və ya reklamçılar qəfildən imtina etməyə qərar verirlər. göstər. Saytda olmayan bir sıra səhifələr var. Buna görə də asılılıq kənar-üst reklam blokundan çıxmaq pis fikirdir. Daha yaxşı - içəriyə qoyun #layout Onda o, mane olmayacaq.

Birinci məqam odur ki, mismarlanmış altbilginin ümumiyyətlə işləməsi üçün altbilgi blokunu altına yerləşdirmək lazımdır #layout. Bununla belə, javascript-in köməyi ilə siz digər mismarlanmış altbilgi sxemlərini həyata keçirə bilərsiniz, lakin hər halda, onsuz etmək üçün JS və ya ilkin düzgün tərtibata ehtiyacınız var.

Saytın altbilgisini məzmuna “şillələyən” saytın ən son tərtibatçısından güclü ola bilmədiyimiz üçün altbilgini gələcək saytımıza düzgün yerləşdirmək fikrini təxirə salacağıq (buna görə də “daha ​​soyuq” olacaq) Habr!-dan daha çox!) və biz Habr-ı javascript (istifadəçi yazısı) ilə düzgün vəziyyətlərə ayıracağıq. (Dərhal deyək ki, günahkar olan layout dizayneri, keçidçi deyil, saytın növü, əlbəttə ki, layihə rəhbərliyinin strateji qərarını müəyyən edir.) Bu yolla biz ideala nail olmayacağıq, çünki yükləmə prosesi zamanı ilk və ya iki saniyədə səhifə səhv tərtibatda olacaq. Lakin İT insanlarının dünyadakı ən populyar saytı üstələmək konsepsiyası və bacarığı bizim üçün vacibdir.

Buna görə də, skriptin lazımi yerində (əvvəllər, səhifənin yüklənməsinin sonunda) DOM reklam bloklarının və altbilginin düzgün yerlərə köçürmələrini yazacağıq. (Gəlin istifadəçi skriptlərinə görə həllin təmizdən daha mürəkkəb olacağına hazır olaq.)
var dQ = function(q)(return document.querySelector(q);) //qısaldılması üçün var topL = dQ("#topline"), lay = dQ("#layout"), foot = dQ("#footer" ); if(topL && lay) //banner - məzmun blokunun daxilində lay.insertBefore(topL, lay.firstChild); if(lay && foot && lay.nextSibling) //altbilgini köçürün lay.parentNode.insertBefore(footer, lay.nextSibling);
Blokları öz yerlərinə qoyduq - indi elementlərə lazımi xüsusiyyətləri təyin etmək qalır. Altbilginin hündürlüyü dəqiq təyin edilməlidir, sadəcə olaraq, istifadəçi skripti qüvvəyə minəndə (səhifənin yüklənməsinin sonunda) biz bunu bilirik. İstifadəçi skriptinin tətik nöqtəsinə görə, yuxarıda müzakirə edildiyi kimi, səhifədəki altbilgi ekranının sıçrayışı qaçılmazdır. Siz "yaxşı sima" yaratmağa cəhd edə bilərsiniz, amma "pis oyun" ilə? Nə üçün? Saytın "pis oyunu" super səylər olmadan konsept hazırlamağa imkan verir ki, bu da keyfiyyəti qiymətləndirmək üçün kifayət edəcək və layihənizdə "düzgün oynasanız" lazım olmayacaq.
if(ayaq)( //blok-aligner

altbilgidə h.apnd_el((clss:"sil", əlavə: altbilgi)); var footH = foot.offsetHeight; //...və altbilginin hündürlüyünü ölçün ) if(topL && lay && altbilgi && lay.nextSibling)( //istənilən hündürlüyün blokunu məzmunda hizalayın ("layout") h.apnd_el((clss:" aydın", css:( hündürlük: (footH ||0) +"px"), əlavə et: lay)); lay.style.minHeight ="100%"; h.addRules("#layout(margin-bottom:-) "+ footH +"px !important)html, body (hündürlük:100%)"); )
Burada özümüzə öz-özünə yazılmış funksiyanı tətbiq etməyə icazə verdik h.apnd_el, bu, təxminən jQuery ilə eynidir -
$("
").css((hündürlük: footH ||0)).appendTo($(footer))
Və sonra - başqa bir tipik CSS qayda inyeksiya funksiyası - h.addRules. Burada onsuz edə bilməzsiniz, çünki " ilə bir qayda elan etməlisiniz. !vacib" - sadəcə istifadəçi skriptindən stil prioritetlərinin xüsusiyyətlərinə görə.

Bu kod parçaları ilə biz istifadəçi skriptində mismarlanmış altbilgini görə bilərik (onu aşağı atdıqdan sonra) və səhifənin tərtibatını necə qurmağı tam başa düşə bilərik. Hər gün atlama dizaynından istifadə etmək qıcıqlandırıcıdır, ona görə də bunu sırf nümayiş və sınaq məqsədləri üçün etmək tövsiyə olunur. HabrAjax istifadəçi skriptində 0.883_2012-09- versiyasından başlayaraq onu “underfooter” parametri ilə bağlayaraq oxşar skript quraşdırdım (“alt-bilgi”nin qarşısındakı parametrlər siyahısında “gənə” qoyun) 12.

Dırnaqlanmış altbilgi, əgər quraşdırılıbsa, ZenComment üslublarını yeniləmək ehtiyacına təsir edirmi? Bəli elədir.İstifadəçi skriptinin daxil etdiyi üslubların ən aşağı prioritetə ​​malik olduğu mürəkkəb üslub üstünlük zəncirinə görə biz istifadəçi üslublarını bir az tənzimləməli olduq. imkanlar mismarlanmış altbilgi ilə işləyin. İstifadəçi üslublarını yeniləməsəniz (2.66_2012-09-12+) - altbilgi qeyri-dəqiq işləyəcək.

Blok fırlanan_post (keçmişdən üç məşhur yazı) altbilgi ilə daha məntiqli görünür, ona görə də real skriptdə o da altbilgiyə köçürülür.

İkinci maddə (layihə qüsurları siyahısından) sırf Habr üçün əsaslandırmadır (onlar istifadəçi skriptinə aid edilmir və əvvəlkiləri qismən təkrarlayır).

Səhifələrin təmiz CSS-də mismarlanmış altbilgi yaratmasına mane olan problem var - brauzerdəki standart şrift ölçülərindən asılı olaraq qeyri-müəyyən altbilgi hündürlüyü. CSS-də altbilgi tətbiq etmək üçün şriftlərin nisbi hündürlüklərini seçmək lazımdır, lakin istifadəçinin kompüterində təqdim olunan şriftlər yoxdursa, onlar işləməyə bilər. Buna görə də, həll altbilginin təxmini mövqeyini keçidlərlə dəqiq mövqeyə uyğunlaşdıra bilən javascript daxil etməlidir. Və ya müxtəlif platformalarda istifadəçi skriptində hazırlanmış həllin məqbulluğuna baxdıqdan sonra mismarlanmış altbilginin hesablanmış quraşdırılmasını edin - ilk müşahidələr həllin praktik olduğunu göstərir.

Nəticə: siz Habré-də planı tam şəkildə təşkil edə bilərsiniz, lakin bunun üçün blokları düzgün qaydada yerləşdirərək düzülüşün davranışını aydın başa düşən bir tərtibatçıya ehtiyacınız var. (İndi altbilgi və yuxarı pankart “orada deyil” və elə bir şəkildə deyil ki, onlar sadəcə üslubları olan mismarlanmış altbilgi əldə edə bilsinlər.) Əgər siz altbilgi hündürlüyünü nisbi vahidlərlə təyin etsəniz, JS olmadan edə bilərsiniz. şriftin qeyri-müəyyənliyi üçün yer.

İcra

HabrAjax 0.883+ funksiyasını aktiv etsəniz, biz “mixlanmış altbilgi”nin işlədiyini görəcəyik. Skriptlərin köməyi ilə hündürlüyə uyğunlaşır. Bu, mismarlanmış altbilgili səhifələrin adi olanlarla müqayisədə nə qədər yaxşı göründüyünü qiymətləndirməyə imkan verir. ZenComment istifadəçi üslubları skriptlərlə uyğun gəlir, lakin dırnaqlanmış altbilginin onlarla düzgün işləməsi üçün siz ZenComment versiyası 2.66_2012-09-12+ quraşdırmalısınız.

İcra Davranışı Faktları

Altbilgi, üslub və yazı ilə şamanizm şamanizmdir (yalnız nəzəriyyə ilə dəstəklənir). Fərqli brauzerlərdə bir az fərqli davranış, lakin bəzi yerlərdə - gözlənilməz. İstifadəçi skriptləri və blokların yenidən təşkili olmadan nəticələr fərqli olacaq. İstifadəçi skriptində tətbiqetmə təcrübələri bunu verdi.

1) Firefox - altbilgi atlamalarının gözlənilməz olmaması. Qəribədir ki, onlar orada deyil - render altbilgini aşağıya qoyduqdan sonra baş verir.

2) Chrome - onu "gəzən sürüşmə" ilə təəccübləndirdi - altda saniyədə bir dəfə olan boş yerlər səhifəyə əlavə olunur - yüksəkliklərin hesablanması ilə səhv bir şey olur. Bu, istifadəçi stilinə html,body(hündürlük:100%) əlavə etməklə müalicə olunur, lakin onun həmişə işləyəcəyinə zəmanət verilmir. Sənədin hündürlüyündə pəncərəni aşmadığını yoxlamaq daha etibarlıdır və əgər yoxsa, altbilgini hərəkət etdirin, əks halda - heç bir şey yoxdur. Atlama ilə - hər şey qaydasındadır, belədir.

3) Opera - birinci səhifənin yüklənməsi zamanı heç bir sıçrayış yoxdur (v. 12.02), lakin tələsik yenidən yükləmə altbilgi keçidini göstərə bilər. Əks təqdirdə, Fx-dən daha az düzgün aparmır.

Yaxşı, Chrome-a düzgün davranmağı (skriptlə) xüsusi olaraq öyrətməli və versiyanı bu formada nəzərdən keçirmək üçün yaymalısınız. Buna görə də, istifadəçi skriptindəki bölmə məqalədə veriləndən bir az daha mürəkkəbdir.

Xatırlatmaq lazımdır ki, bu, tam icra deyil - o, məsələn, istifadəçi tərəfindən pəncərənin ölçüsünü dəyişməsi hallarını nəzərə almır. Hərəkətdən əvvəl və sonra altbilgi hündürlüklərinin dəyişdirilməsinin nadir (təcrübədə) birləşmələrini də tapa bilərsiniz, burada məntiq narahatlıq yaratmadan uğursuzluğa başlayacaq. Çatışmazlıqlar qəsdən buraxılır, çünki təftiş və müvəqqəti həllin mürəkkəbliyi balansı qorunur.

Nəticədə, ən azı sürətli masaüstü kompüterlər üçün tamamilə işlək bir iş sxemi olduğu ortaya çıxdı. Səhv altbilgi davranışı aşkar edilərsə, "underfooter" parametri deaktiv edilməlidir.

Hansı səhifələr üçün faydalıdır?

Standart bir saytda, istifadəçi üslubları olmadan, hətta qısa sual-cavab səhifələri 1500px-dən uzundur, əksər hallarda bu, üfüqi monitorlarla görünməzdir. Ancaq adi monitorlarda belə, istifadəçilərin hündürlüyü təxminən 1300 piksel olan şəxsi səhifələri tez-tez rast gəlinir, burada dırnaqsız altbilgi bütün şöhrətində görünür. Çox uzun deyil və istifadəçi parametrlərində bir sıra səhifələr.

ZenComment istifadəçi üslubları tətbiq edildikdə, onlar tələb olunan səhifə hündürlüyünü əhəmiyyətli dərəcədə azaldır və HabrAjax istifadəçi skripti yan paneldə yan panellərin bəzilərini və ya hamısını göstərməyə bilər. Buna görə də, skriptlər və üslublarla, dırnaqsız altbilginin təsiri daha tez-tez müşahidə olunur. Buna görə də, altbilgi düzəlişinin ilk dəfə HabrAjax-da görünməsi məntiqlidir. Ancaq hətta adi bir saytda mismarlanmış altbilginin faydalı olacağı bir sıra səhifələr var.

Dəstək olacaqmı?

Saytın son bir ildə davranışı göstərir ki, tərtibatçılar (və buna görə də rəhbərlik) əvvəllər yalnız istifadəçi skriptlərində və istifadəçi üslublarında mövcud olan funksiyaları həyata keçirməyə başlayıblar. Məsələn, ilin əvvəlində yazdım, orada çoxlu kiçik arzular topladım. Altı aydan sonra ona qayıtdım və məmnuniyyətlə qeyd etdim (düz mətndə; “UPD” və tarixləri oxuya bilərsiniz) saytda arzu kimi təsvir olunan bir sıra funksiyalar artıq həyata keçirilib.

Sonra şərhləri qiymətləndirmək üçün kvadratlar əvəzinə "oxlara" baxaq. Onlar təxminən 3 il əvvəl istifadəçi səlahiyyətlərində ("Prettifier") ortaya çıxdı və təxminən 2 il əvvəl ZenComment-də qəbul edildi. Təxminən 2-3 ay əvvəl sayta çıxdılar. O, bir müddət sonra oxların daha az qaçırmaq üçün ZenComment-də olduğu kimi (bir ox nömrənin solunda, ikinci sağda) müəyyən məsafəyə yayılacağına inanmağa başlayır.

  • istifadəçi üslubları
  • HabrAjax
  • Teqlər əlavə edin

    Hər bir layout dizayneri gec-tez saytın altbilgisini (footer) səhifənin aşağısına basmaq ehtiyacı ilə üzləşir. İnternetdə bu problemi həll etməyin bir neçə yolu var. Təcrübədə istifadə etdiyim bəzilərini göstərəcəyəm.

    Ən sadə html işarələməsi:

    Metod №1

    Altbilgi mütləq yerləşdirərək və ana blokların hündürlüyünü (html , gövdə və sarğı) 100% çəkərək aşağıya itələnir. Bu halda, məzmun bloku alt məlumatın hündürlüyünə bərabər və ya ondan böyük olan alt abzas təyin etməlidir, əks halda sonuncu məzmunun bir hissəsini bağlayacaqdır.

    * ( kənar: 0; doldurma: 0; ) html, gövdə ( hündürlük: 100%; ) . sarmalayıcı ( mövqe: nisbi; minimum hündürlük: 100%; ) . məzmun ( doldurma-alt: 90px; ) .footer ( mövqe : mütləq; sol: 0; alt: 0; en: 100%; hündürlük: 80px; )

    Metod №2

    Görünən şaquli sürüşmədən xilas olmaq üçün altbilgi məzmun blokunu və onun "valideynlərini" brauzer pəncərəsinin tam hündürlüyünə uzatmaqla və altbilgini mənfi kənardan (margin-top) yuxarı qaldırmaqla aşağı sıxılır. Bu halda, zirzəminin hündürlüyünü müəyyən etmək lazımdır və bu, girinti dəyərinə bərabər olmalıdır. Box-sizing: border-box xüsusiyyəti sayəsində biz məzmun qutusunun 100% hündürlüyünü keçməsinə icazə vermirik. Belə ki, bu halda, min hündürlük: 100% + padding-alt: 90px brauzer pəncərəsinin hündürlüyünün 100%-nə bərabərdir.

    * ( kənar: 0; doldurma: 0; ) html, gövdə, .wrapper ( hündürlük: 100%; ) .məzmun ( qutu ölçüsü: sərhəd qutusu; minimum hündürlük: 100%; doldurma-alt: 90px; ) . altbilgi (hündürlük: 80px; yuxarı kənar: -80px; )

    Metod №3

    Bu üsul yaxşıdır, çünki digər üsullardan fərqli olaraq (5-cidən başqa) altbilginin hündürlüyü əhəmiyyət kəsb etmir. Burada qablaşdırma blokunu cədvələ, məzmun blokunu isə cədvəl cərgəsinə çevirməklə cədvəlin davranışını təqlid edirik (ekran: cədvəl və ekran: cədvəl-sətir xüsusiyyətləri müvafiq olaraq). Bununla əlaqədar olaraq, məzmun blokunun və onun bütün ana konteynerlərinin 100% hündürlüyə təyin edilməsi ilə məzmun tam hündürlüyə qədər uzanır, lakin avtomatik olaraq təyin olunan altbilginin hündürlüyünü çıxarır - cədvəl emulyasiya altbilginin brauzer pəncərəsinin hündürlüyündən kənara çıxmasının qarşısını alır.

    *( margin: 0; padding: 0; ) html, body ( hündürlük: 100%; ) .wrapper ( display: table; hündürlük: 100%; ) .content ( display: table-row; hündürlük: 100%; )

    Metod №4

    Bu üsul əvvəlkilərdən heç birinə bənzəmir və onun özəlliyi yalnız müasir brauzerlər tərəfindən dəstəklənən CSS calc() funksiyasının və vh vahidinin istifadəsidir. Burada altbilginin dəqiq hündürlüyünü bilmək lazımdır. 100vh brauzer pəncərəsinin hündürlüyü, 80px isə altbilginin hündürlüyüdür. Və calc() funksiyasının köməyi ilə birincidən ikinci dəyəri çıxarırıq və bununla da altbilgini aşağıya sıxırıq.

    * ( kənar: 0; doldurma: 0; ) .məzmun ( min hündürlük: calc(100vh - 80px); )

    Metod №5

    Bəlkə də bu, bütün təqdim olunanların ən yaxşı üsuludur, lakin o, yalnız müasir brauzerlərdə işləyir. Üçüncü üsulda olduğu kimi, altbilginin hündürlüyünün əhəmiyyəti yoxdur.

    * ( kənar: 0; doldurma: 0; ) html, gövdə ( hündürlük: 100%; ) .wrapper (ekran: əyilmə; əyilmə istiqaməti: sütun; hündürlük: 100%; ) .məzmun ( flex: 1 0 avtomatik; ) .footer ( çevik: 0 0 avtomatik; )

    Metod №6

    Müxtəlif hallar üçün bütün kitabxana (Flexbox istifadə edərək)

    Vlad Merzheviç

    Veb tərtibatçılarının jarqonundakı zirzəmi saytın müəllif hüquqlarının yazıldığı, kontaktların dərc olunduğu, müxtəlif sayğacların və buna bənzər məlumatların göstərildiyi aşağı hissəsidir. Adətən altbilgi bütün məzmundan sonra yerləşir və yalnız səhifəni sürüşdürərkən görünür. Bəzi hallarda, səhifənin hündürlüyündən asılı olmayaraq altbilgini həmişə mövcud etmək və onu brauzer pəncərəsinin aşağı hissəsində düzəltmək arzu edilir.

    Bunun üçün mövqe xassəsindən və onun sabit dəyərindən istifadə edirik. Bu halda element bir yerdə qalır və onun mövqeyi yuxarı , sağ , aşağı , sol xassələri vasitəsilə koordinatlarla təyin olunur. Bizim vəziyyətimizdə sol və alt üçün sıfır dəyərlər təyin etmək kifayətdir. Sabit elementlərin eni onların məzmununa bərabərdir, bu, fon rəngi və ya şəkil əlavə etsəniz aydın görünür, ona görə də siz həmçinin eni vasitəsilə eni 100%-ə təyin etməlisiniz (misal 1).

    Misal 1: Sabit zirzəmi

    Sabit zirzəmi

    Saytda sadalanan şir tutmağın bütün üsulları nəzəri xarakter daşıyır və hesablama metodlarına əsaslanır. Müəllif onlardan istifadə edərkən təhlükəsizliyinizə zəmanət vermir və nəticəyə görə məsuliyyət daşımır. Unutmayın, aslan yırtıcı və təhlükəli heyvandır!

    Nümunənin nəticəsi Şəkildə göstərilmişdir. 1.

    düyü. 1. Səhifənin altındakı altbilgi

    Internet Explorer 6 sabiti dəstəkləmir, ona görə də bu nümunə düzgün işləməyəcək. IE6 üçün kodu iki etiketlə tamamlamalı olacaqsınız

    , onları məzmun və altbilgi konteynerlərinin içərisinə yerləşdirmək, həmçinin bu brauzerə xas olan daha bir üslub daxil etmək (nümunə 2).

    Nümunə 2: IE6-nı nəzərə alaraq kodlayın

    XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

    Sabit zirzəmi

    Saytda sadalanan şir tutmağın bütün üsulları nəzəri xarakter daşıyır və hesablama metodlarına əsaslanır. Müəllif onlardan istifadə edərkən təhlükəsizliyinizə zəmanət vermir və nəticəyə görə məsuliyyət daşımır. Unutmayın, aslan yırtıcı və təhlükəli heyvandır!

    Bu nümunə mövqe xüsusiyyətinin mütləq dəyərindən istifadə edir. Mütləq yerləşdirmə ilə element brauzer pəncərəsinin istənilən yerinə yerləşdirilə bilər, lakin o, məzmunla birlikdə sürüşür. Bu sabit və mütləq arasındakı əsas fərqdir. Altbilginin hərəkət etməsinin qarşısını almaq üçün səhifə hündürlüyü 100% olaraq təyin edilir və cari pəncərə ölçülərinə uyğun gəlməyən hər şey kəsilir. Bu, şaquli sürüşdürmə çubuğunu yox edir, daşqın istifadə edərək məzmuna əlavə edilməlidir.

    Başqa bir bezdirici cəhət odur ki, altbilgi fonu sürüşdürmə zolağı ilə üst-üstə düşür, ona görə də siz sağ tərəfdə sürüşmə çubuğunun eninə qədər dolgu təyin etməlisiniz. Eyni zamanda, sürüşmə çubuğu yoxdursa, sağdakı zirzəmidə bir çuxur açılacaqdır.

    Bu bir növ kabusdur! Niyə saytınızın altbilgisi yenidən açılır və dizaynı dəyişir? Doğrudanmı nə iləsə altbilgini səhifənin altına düzgün basmaq mümkün deyilmi? Ən azı məzmun və ya kərpic! Monitordakı kərpic dırmaşmır?


    Görürəm, yazımızı sona qədər oxuyana qədər otur və heç nə etmə.

    Saytınız üçün düzgün altbilgi hazırlamaq

    Bir çox sayt sahibləri bu problemlə səhifənin altbilgisi sadəcə "yuxarıya" çıxdıqda qarşılaşırlar. Və sonra nə edəcəyi aydın deyil. Çox vaxt veb sayt dizaynları öz-özünə tələsik hazırlanır ( "dəli əllər" dairəsi) və ya təcrübəsiz veb ustaları.

    Eyni zamanda, saytın həyatının əvvəlində qorxulu heç bir şey baş vermir. Və məzmun zirzəmiyə “öz ağırlığı ilə” basdıqca, yuxarı qalxmasına mane olana qədər belə idil davam edir. Ancaq səhifədə daha az material yerləşdirməyə dəyər və bu yaxınlarda "sakit" altbilgi dərhal qalxaraq saytın bütün dizaynını uyğun olmayan bir görünüşə gətirir.

    Hazırlanmış şablonun bu "qüsurunu" aradan qaldırmaq üçün veb ustasının xidmətlərinə pul xərcləmək lazım deyil. Çox vaxt saytın altbilgisi özünüz yerinə qoyula bilər. Belə bir problemi aradan qaldırmaq üçün bütün mümkün variantları nəzərdən keçirək:

    Birinci yol

    Səhifənin altbilgisini "aşağıya" "lövbər" etməyin ilk yolu CSS-ə əsaslanır. Nümunə kodu ilə başlayaq və sonra onun həyata keçirilməsinə daha yaxından nəzər salaq:

    html ( hündürlük: 100%; ) başlıq, naviqasiya, bölmə, məqalə, kənara, altbilgi ( ekran: blok; ) gövdə ( hündürlük: 100%; ) #wrapper ( en: 1000px; kənar: 0 avtomatik; min-hündürlük: 100 %; hündürlük: avtomatik !vacib; hündürlük: 100%; ) #başlıq ( hündürlük: 150px; fon rəngi: rgb(0,255,255); ) #content (doldurma: 100px; hündürlük:400px; fon rəngi: rgb(51,255,102) ; ) #footer (en: 1000px; kənar: -100px avtomatik 0; hündürlük: 100px; mövqe: nisbi; fon rəngi: rgb(51,51,204); )

    Səhifə etiketinin altına altbilgi yapışdırmaq üçün

    biz onu konteynerdən kənara köçürdük (sarğı təbəqəsi). Bütün səhifəni və "bədənin" məzmununu ekranın sərhədlərinə qədər uzatırıq. Bunun üçün CSS kodunda teqlərin hündürlüyünü təyin etdik Və 100%:

    html ( hündürlük: 100%; ) bədən ( hündürlük: 100%; )

    Konteyner təbəqəsinin minimum hündürlüyünü 100% təyin edin. Məzmunun eni konteynerin hündürlüyündən böyük olduqda, xüsusiyyəti avtomatik olaraq təyin edin. Bunun sayəsində sarğı avtomatik olaraq səhifədə yerləşdirilən məzmunun eninə uyğunlaşacaq:

    #wrapper ( min-hündürlük: 100%; hündürlük: avtomatik !vacib; hündürlük: 100%; )

    "Hündürlük: 100%" kod sətri minimum hündürlük xassəsini qəbul etməyən IE-nin köhnə versiyaları üçündür.

    Səhifə dizaynında altbilgi üçün yer ayırmaq üçün etiket üçün abzas təyin etdik 100 pikseldə:

    #content (doldurma: 100px; )

    Bu nöqtədə tam ekranlı veb səhifəmiz və əlavə 100 pikselimiz var ki, bunlar ona nisbətən yerləşdirildikdə mənfi altbilgi doldurma dəyəri (margin: -100px ) ilə "zərərsizləşdirilir" (mövqe: nisbi). Beləliklə, mənfi doldurma dəyəri ilə biz altbilgini 100% hündürlüyə malik konteyner sahəsinə "köçürürük".

    Bu misalda veb-sənədin işarələnməsi nisbətən yeni HTML 5 teqlərindən istifadə etməklə müəyyən edilmişdir ki, bu da köhnə brauzerlər tərəfindən yanlış şərh edilə bilər. Bu səbəbdən səhifənin bütün dizaynı düzgün göstərilməyə bilər. Bunun qarşısını almaq üçün hipermətn dilinin 5-ci versiyasının arsenalından yeni teqləri adi olanlarla əvəz etməlisiniz.

    :

    məzmun

    Təkmilləşdirilmiş versiya

    Səhifənin altındakı altbilgini "sarsılmaz" etmək üçün yuxarıda müzakirə edilən üsul hər kəs üçün uyğun deyil. Gələcəkdə pop-uplardan istifadə edərək saytınızın dizaynını dəyişdirmək və təkmilləşdirmək niyyətindəsinizsə, əvvəlki tətbiqdən imtina etmək daha yaxşıdır.

    Ən tez-tez pop-up pəncərələrin tətbiqində CSS xassəsinin z-indexindən istifadə olunur. Onun dəyərləri təbəqələrin bir-birinin üstünə yığılma qaydasını müəyyənləşdirir.

    Elementin z-indeks dəyəri nə qədər yüksəkdirsə, o, ümumi “layinq” yığınında bir o qədər yüksək olacaqdır.

    Ancaq əvvəlki misalda mənfi altbilgi dolğunluğundan istifadə etdiyimiz üçün popupun aşağı hissəsi yuxarı altbilgi sahəsi ilə üst-üstə düşəcək. Baxmayaraq ki, daha yüksək z-indeks dəyərinə sahib olacaq. Çünki pop-upın valideyni ( sarmalayıcı ) hələ də bu xüsusiyyət üçün daha kiçik dəyərə malikdir.

    Budur daha yaxşı versiya:

    CSS - nümunə kodu:

    html, bədən ( hündürlük: 100%; ) .başlıq ( hündürlük: 120px; fon rəngi: rgb(0,255,102); ) .main (min-hündürlük:100%; mövqe: nisbi; fon rəngi: rgb(100,255,255); ) .footer ( hündürlük: 150px; mövqe: mütləq; sol: 0; aşağı: 0; en: 100%; fon rəngi: rgb(0,0,153); )


    Koddan da göründüyü kimi altbilgini əsas elementin bir hissəsi kimi yerləşdirdik. Konteynerə nisbi mövqe, altbilgi üçün isə mütləq mövqe verdik. Sol və yuxarı mövqeyini 0-a təyin edərək, altlığı konteynerin ən aşağı hissəsində sabitlədik.

    Qeyri-sabit hündürlüyü olan zirzəmi üçün variant

    Əvvəlki tətbiqlər altbilginin həmişə səhifənin altında olmasını təmin edə bilər. Ancaq yalnız altbilgi eni sabit olduqda. Bəs onda yerləşdirilən məzmunun miqdarı proqnozlaşdırıla bilmirsə?

    Bu, sabit olmayan bir zirzəmi üçün daha inkişaf etmiş bir seçim tələb edəcəkdir. Ekran xüsusiyyəti üçün altbilgini cədvəl sırasına təyin edir. Bu, onu cədvəl sırası kimi göstərəcək.

    Necə altbilgini səhifənin aşağısına itələyin? Bu sual, saytın tərtibatı ilə qarşılaşan bir çox insan tərəfindən soruşulur. Fakt budur ki, bu layoutlarda blokların hündürlüyü açıq şəkildə göstərilməyibsə, bu, onların məzmununun miqdarından asılıdır, müvafiq olaraq, bu məzmun kifayət qədər kiçikdirsə, bütün tərtibat brauzer pəncərəsindən daha az hündürlüyü tuta bilər. . Təbii ki, bütün bunlar çox da gözəl görünmür. İndi sizə altbilgini səhifənin altına itələmək və beləliklə, tərtibatı daha cəlbedici və tanış etmək üçün bir neçə yol göstərəcəyəm.

    Nümunələrin hər birində biz bundan başlayacağıq saytın tərtibatı aşağıdakı adi quruluşa malikdir (sizin planınız fərqli ola bilər, lakin üsullar universaldır):

    Məzmun

    Bundan əlavə, istədiyiniz nəticəni əldə etmək üçün tərtibata əlavə bloklar, CSS xüsusiyyətləri və s. Bununla belə, altbilgini səhifənin altına itələməyə qərar verdiyiniz tərtibatda bu bloklar və ya bəzi xüsusiyyətlər artıq mövcud ola bilər, ona görə də onları yenidən əlavə etmək lazım deyil. Altbilginin aşağıya vurulmasında birbaşa iştirak edən bütün CSS xüsusiyyətləri şərhlərlə təmin edilir.

    Yerləşdirmədən istifadə edərək altbilgini aşağıya basın

    sayt - yerləşdirmədən istifadə edərək altbilgini aşağıya basın
    Məzmun

    Nümunənin təsviri

    1. Bütün layout blokları əlavə sarğı blokuna bükülmüşdür id= "wrapper" , ona 100% minimum hündürlük ( CSS xüsusiyyəti ) verilmişdir ki, o, brauzer pəncərəsinin tam hündürlüyünə qədər uzanırdı, lakin lazım gəldikdə daha da uzana bilər. Bununla belə, faiz dəyərləri əcdadlara nisbi olduğundan, onun işləməsi üçün və teqlərinin hündürlüyünü (CSS) açıq şəkildə göstərməli olduq.
    2. Növbəti addım sarma blokunun alt tərəfinə (CSS) nisbətən altbilginin mütləq yerləşdirilməsi (CSS) idi. Beləliklə, altbilginin səhifənin altına sıxıldığı ortaya çıxdı.
    3. Mütləq yerləşdirmə elementi axından çıxardığından, siz məzmun bloklarına və menyulara məlumat əlavə etdiyiniz zaman onun bir hissəsi basılan altbilginin altına düşəcək. Bunun baş verməməsi üçün id= "content" və id= "menyu" elementlərinə altbilginin hündürlüyünə bərabər olan alt dolgu (CSS ) verilmişdir. İndi altbilginin altına girib onu aşağı itələyəcəklər.
    4. Planımızdakı menyu ilə blok üzən olduğundan (CSS ), altbilgi hələ də bunu hiss etməyəcək və müvafiq olaraq menyu onu aşağı itməyəcək. Bunu düzəltmək üçün qablaşdırmanı (CSS xüsusiyyətini) pozan başqa bir blok yaradıldı (class="clear" ). Yeri gəlmişkən, əgər siz IE6 və IE7 dəstəyini həyata keçirməyi planlaşdırmırsınızsa, onda bu blokun əvəzinə altbilgidən əvvəl sonuncu bloka psevdoelement tətbiq edə bilərsiniz (burada bu "məzmundur" ) və sadəcə onu poza bilərsiniz. axın.

    Birinci abzasda Internet Explorer 6-nın anlamadığı minimum hündürlüyü müəyyən etmək üçün CSS xassəsindən istifadə edilmişdir. Həmçinin bu brauzer müəyyən hallarda qaydaya məhəl qoymur. Onun bu iki xüsusiyyəti bu nümunədə yaratmaq üçün istifadə edilmişdir haqq digər brauzerlərə təsir etmədən düzgün iş görmək üçün.

    Əlavə blokların köməyi ilə altbilgini aşağıya basın

    sayt - əlavə bloklardan istifadə edərək altbilgini aşağıya basın
    Məzmun

    Nümunənin təsviri

    1. Altbilgidən başqa bütün layout blokları 100% minimum hündürlük (CSS) verilmiş əlavə id= "sarğı" blokuna bükülmüşdür. Bu, sarğı blokunun ən azı brauzer pəncərəsinin tam hündürlüyünə qədər uzanması üçün edildi, lakin lazım olduqda (əgər çox məzmun varsa) daha da uzana bilər. İndi sarğımızın hündürlüyü brauzer pəncərəsinin hündürlüyünə bərabər oldu və bütün HTML səhifəsinin hündürlüyü = sarğı hündürlüyü + altbilginin hündürlüyü.
    2. Birinci abzasın hərəkətləri nəticəsində altbilgimiz səhifənin aşağısına sıxılsa da, brauzer pəncərəsinin alt sərhədindən kənara çıxdı, bu yaxşı deyil. Onu görünən etmək üçün ona ölçüsü altbilginin özünün hündürlüyünə bərabər olan mənfi yuxarı kənar (CSS) verilmişdir. Hər şey, altbilgi sıxılır və səhifənin altındadır.
    3. Əvvəlki bənddə yuxarı mənfi kənarı bərkidilmiş altbilgidə göstərdiyimiz üçün məzmun bloklarına və ya menyulara məlumat əlavə edərkən, onun bir hissəsi bu altbilginin altına düşəcək. Bunun qarşısını almaq üçün id= "footer_correct" ilə hündürlüyü altbilginin hündürlüyünə bərabər olan başqa bir blok yaradıldı (hətta bir az daha çox edə bilərsiniz). Beləliklə, basılan altbilginin altına girəcək və məlumatın gizlədilməsinə mane olan bu düzəldici blokdur.
    4. Məzmun hündürlüyünü keçərsə, menyunun ətrafına sarılmayacaq şəkildə dəyişdirmə qutusuna float fasiləsi (CSS) əlavə edilmişdir. Müvafiq olaraq, bu axın kəsilməsi lazımsız olaraq altbilginin özündən silindi.

    Birinci misalda olduğu kimi, burada IE6 üçün xüsusi bir hack tətbiq olundu ki, bu da onun üçün minimum hündürlüyü təyin etməyə imkan verir.