Vendosja e blloqeve në css. Përmbajtja e pozicionimit
Vendosja e blloqeve në css. Përmbajtja e pozicionimit
22.08.2019Programet
Pozicionimi i blloqeve css një nga fazat më të rëndësishme të paraqitjes, sepse kjo është ajo që ndikon në përshtatshmërinë e faqes ose mundësinë e zbatimit të saj në të ardhmen (nëse nuk kërkohet për momentin), dhe gjithashtu ka një ndikim të rëndësishëm në shkallëzimin e mëtejshëm të sitit . Nuk janë të rralla rastet kur "dizajnerët e pafat të layout" bëjnë një paraqitje të tillë që në fund të jetë më e lehtë ta hedhësh jashtë sesa të ndryshosh diçka, por në të njëjtën kohë mund të duket plotësisht në përputhje me paraqitjen. Kjo situatë lind nga moskuptimi se ku dhe kur të përdoret ky apo ai lloj pozicionimi. Sot do të përpiqemi ta kuptojmë këtë çështje. Dhe kështu, në css ka një pronë pozicion. Kjo pronë mund të marrë 5 vlera, por ne do të shqyrtojmë 4 ato kryesore:
absolute
statike
i afërm
fikse
Pozicionimi absolut i blloqeve (absolut)
E para në listën tonë është metoda e pozicionimit absolut. Kur caktohet kjo veti, blloku bëhet një njësi më vete dhe pjesa tjetër e elementeve të faqes nuk ndikojnë në vendndodhjen e tij, si dhe nuk ndikon në elementë të tjerë. Madhësia e kutisë përcaktohet nga vetitë e gjerësisë dhe lartësisë, dhe pozicioni në faqe përcaktohet nga vetitë e sipërme. majtas, djathtas dhe poshtë këta parametra vendosin kufijtë nga skajet e sipërme, të majta, të djathta dhe të poshtme. Nëse blloku nuk ka një element prind, si dhe nëse pozicionimi i elementit prind është i ndryshëm nga ai statik, atëherë vetitë lart, majtas, poshtë, djathtas vendosin indencat nga fillimi i faqes, përndryshe nga skajet e elementi mëmë.
Më shpesh, ky lloj pozicionimi përdoret kur blloku duhet të shtypet në skajin e djathtë ose të poshtëm. Konsideroni një plan urbanistik të tillë.
Për lehtësi, blloqet janë theksuar me një kornizë me shumë ngjyra. Shënimi do të duket si ky:
Në këtë shembull, ne përdorëm vetitë e djathta dhe të poshtme për të vendosur dhëmbëzimin nga skajet e djathta dhe të poshtme. Këto vlera të vetive janë ekuivalente me lart: Lartësia e elementit - 10 px dhe e majta: Gjerësia e elementit - 10 px.
Gjithashtu, pozicionimi absolut përdoret ndonjëherë kur është e nevojshme të bëhet një "përmbysje" e një elementi në tjetrin.
Pozicionimi statik
Lloji më i zakonshëm i pozicionimit që ndodh në çdo faqe dhe zakonisht vendoset për shumicën e elementeve është statik, në css shkruhet si statik. Për shumicën e etiketave HTML, kjo vlerë përcaktohet si parazgjedhje, d.m.th. nëse pozicioni nuk është vendosur në mënyrë eksplicite, atëherë vlera do të jetë statike. Me këtë renditje, elementet rreshtohen njëri mbi tjetrin dhe koordinatat në dritaren e secilit element varen nga elementët më të afërt me pozicion: statik ose pozicion: relativ. Karakteristikat e sipërme, majtas, djathtas, poshtë nuk do të funksionojnë me këtë pozicionim, pozicioni është ndryshuar për shkak të vetive të marzhit.
Pozicionimi relativ
Ky lloj pozicionimi është shumë i ngjashëm me pozicionimin statik, përveç se pozicioni i elementit mund të ndryshohet me vetitë e sipërme, majtas, djathtas, poshtë dhe margjina.
Pozicionimi i fiksuar
Pozicionimi fiks sipas specifikave të specifikimit të koordinatave është i ngjashëm me atë absolut, por pozicioni llogaritet jo në lidhje me faqen HTML, por në lidhje me dritaren e shfletuesit, d.m.th. me krye: 10 px, ju do të vendosni mbushjen e sipërme në 10 px NGA DRITARJA E SHFLETËSIT dhe pa marrë parasysh se në cilin nivel të lëvizjes jeni, ky element do të ndjekë gjithmonë ekranin tuaj.
Zakonisht përdoret për elementë navigimi, në mënyrë që përdoruesi të ketë gjithmonë në sy informacione të rëndësishme ose lidhje me faqe interesante.
Pronës pozicion ka kuptimet e mëposhtme statike i afërm absolute fikse Vetitë aplikohen vetëm në lidhje me të (përveç pozicionit: statik;) krye fund drejtë majtas Mund të jetë i pranishëm në të njëjtën kohë diferencë transformoj noton (përjashtuar pozicionin: absolut; dhe pozicionin: fiks;)
Shtoni një etiketë bosh përpara div me class = "primer" -.
Prezantimi
Elementet në një faqe interneti zënë pak hapësirë. Për analogji me anijet në lojën "Beteja e Detit". Duhet të ketë kuti boshe midis anijeve - kufijtë.
Për të vendosur një element mbi një tjetër, duhet të vendosni një vlerë negative për marzhin. Por atëherë përmbajtja e etiketave do të mbivendoset. Me ndihmën e vetive të pozicionit dhe ato ngrihen disi në nivelin 2.
Në mënyrë natyrale, etiketat e poshtme tregohen mbi etiketat e sipërme në kod. Falë indeksit z në nivelin 2, ju mund ta përcaktoni vetë elementin e dukshëm.
Pozicionimi statik - pozicioni: statik;
pozicioni: statik është parazgjedhja dhe anashkalon relative, absolute dhe fikse. Vlerat e vetive të sipërme, të poshtme, djathtas, majtas nuk merren parasysh. Në mungesë të transformimit, indeksi z injorohet.
A
B
V
Pozicionimi relativ - pozicioni: relativ;
Bllokut që i caktojmë pozicionit: relative do t'i jepet përparësi. Përmbajtja e elementit të poshtëm është e fshehur.
A
B
V
Për të vendosur bllokun B mbi C, por poshtë A, nuk mjafton të caktoni pozicionin: në lidhje me të, sepse në kod është poshtë bllokut A, që do të thotë se do ta mbivendoset.
A
B
V
Është gjithashtu e nevojshme të vendosni indeksin z për elementin B dhe më pak se ai i bllokut A.
A
B
V
Në vend të diferencës gjatë pozicionimit relativ, ndonjëherë është më mirë të përdoren vetitë e sipërme, të poshtme, djathtas, majtas. Pika fillestare për ta është pozicioni fillestar i elementit. Në të njëjtën kohë, blloku B vazhdon të jetë i vendosur sikur blloku A të jetë në të njëjtin vend - ai lë hapësirë boshe për të. Prandaj, nuk keni nevojë të krijoni një div bosh ().
A
B
V
Analogji e plotë me pronën
A
B
V
Për elementët inline
Elementet inline nuk kompensohen lart e poshtë (). Vetëm lart, poshtë
BAB
ose
BAB
B a b
Pozicionimi absolut dhe fiks
Duket se blloku me pozicionin: absolute duhet të jetë më i lartë se pozicioni: relativ, por nuk është kështu, këtu zbatohet rendi natyror. Kjo do të thotë se z-index do t'ju lejojë të zgjidhni elementin prioritar midis tyre.
A
B
V
Blloku C injoron pozicionin origjinal të bllokut B, sepse me pozicionin: absolut dhe pozicionin: fiks, elementi pushon së ndikuari në etiketat ngjitur qoftë përmes gjerësisë / lartësisë së tij, ose përmes float: majtas.
A
B
V
Tabela përmbledhëse
vetitë dalluese
pozicioni: statik;
pozicioni: i afërm; transformoj: përkthe ();
pozicioni: absolut;
pozicioni: fiks;
mbivendosje
është më mirë të mos vendosni elementë njëri mbi tjetrin
elementet kanë përparësi ndaj statikes. Vlerat e tjera janë të njëjta. I dukshëm do të jetë ai që është më poshtë në kod, ose ka një z-indeks të madh
pikë referimi lart, djathtas, poshtë dhe majtas
injoruar
pozicioni origjinal i elementit
skaji i elementit mëmë
skaji i dritares së shfletuesit
elementet përreth
merrni parasysh pozicionin aktual të elementit
merrni parasysh pozicionin origjinal të elementit
injoroni pozicionin e elementit
gjerësia: 100%; kjo është gjerësia
element (për inline) / element prind (për bllok)
elementi mëmë me pozicion jo në vlerë statike
dritaret e shfletuesit
kur lëvizni elementin e faqes
lëviz
"ngjitet" në vendndodhjen e specifikuar të dritares së shfletuesit
Dhe tani, për të konsoliduar materialin, klikoni në butonat në fillim të artikullit, mendoni pse kanë ndodhur ndryshime të tilla.
Përditësimi i fundit: 28.04.2016
CSS ofron mundësinë për të pozicionuar një element, domethënë, ne mund të vendosim një element në një vend të caktuar në faqe.
Vetia kryesore që kontrollon pozicionimin në CSS është vetia e pozicionit. Kjo pronë mund të marrë një nga vlerat e mëposhtme:
statike: pozicionimi standard i elementit, i paracaktuar
absolute: elementi pozicionohet në lidhje me kufijtë e elementit të kontejnerit nëse vetia e pozicionit të atij elementi nuk është statike.
relative: Elementi pozicionohet në raport me pozicionin e tij të paracaktuar. Në mënyrë tipike, qëllimi kryesor i pozicionimit relativ nuk është të lëvizë një element, por të vendosë një pikë të re ankorimi për pozicionimin absolut të elementeve të mbivendosur.
fiks: elementi është i pozicionuar në lidhje me dritaren e shfletuesit, kjo ju lejon të krijoni elemente fikse që nuk ndryshojnë pozicionin kur lëvizni
Ju nuk duhet të aplikoni njëkohësisht veçorinë float dhe ndonjë lloj pozicionimi përveç statik (që është, tipi i paracaktuar) në një element.
Pozicionimi absolut
Porta e shikimit të shfletuesit ka skajet e sipërme, të poshtme, të djathta dhe të majta. Për secilën nga këto katër skaje, ekziston një veti përkatëse CSS: majtas (margjina e majtë), djathtas (diferenca e djathtë), sipër (diferenca e sipërme nga buza e kontejnerit) dhe poshtë (diferenca e poshtme). Vlerat e këtyre vetive janë të specifikuara në piksel, em ose përqindje. Nuk keni nevojë të specifikoni vlera për të katër anët. Në mënyrë tipike, vendosen vetëm dy vlera - kufiri i sipërm nga lart dhe diferenca e majtë nga e majta.
Blloko paraqitjen në HTML5
PËRSHENDETJE BOTË
Këtu div i pozicionuar absolutisht do të jetë 100 piksele në të majtë të kufirit të portit të pamjes dhe 50 pikselë nga fundi.
Nuk ka shumë rëndësi që ka elementë të tjerë pas kësaj ndarjeje. Gjithsesi, ky div do të pozicionohet në lidhje me kufijtë e pamjes së shfletuesit.
Nëse një element me pozicionim absolut ndodhet në një enë tjetër, në të cilën, nga ana tjetër, vlera e vetive të pozicionit nuk është e barabartë me statike, atëherë elementi pozicionohet në lidhje me kufijtë e kontejnerit:
Pozicionimi në HTML5
Pozicionimi relativ
Pozicionimi relativ specifikohet gjithashtu duke përdorur vlerën relative. Të njëjtat veti lart, majtas, djathtas, poshtë aplikohen për të treguar pozicionin specifik në të cilin është zhvendosur elementi:
Pozicionimi në HTML5
Vetia e indeksit Z
Si parazgjedhje, kur dy elemente kufitare përputhen, elementi që është përcaktuar për herë të fundit në shënimin html shfaqet mbi tjetrin. Megjithatë, vetia z-index ju lejon të ndryshoni rendin e elementeve kur ato mbivendosen. Prona merr një numër si vlerë. Artikujt me një vlerë më të madhe të indeksit z do të shfaqen në krye të artikujve me një indeks z më të ulët.
Për shembull:
Pozicionimi në HTML5
Tani le të shtojmë një rregull të ri në stilin redBlock:
Këtu indeksi z është 100. Por nuk duhet të jetë 100. Meqenëse indeksi z i bllokut të dytë është i papërcaktuar dhe në fakt është zero, ne mund ta vendosim vetinë z-indeks në çdo vlerë më të madhe se zero për Blloku i kuq.
Dhe tani blloku i parë do të mbivendoset mbi të dytin, dhe jo anasjelltas, siç ishte në fillim.
Një nga gjërat më të mira në lidhje me CSS është se stilet na japin mundësinë për të pozicionuar përmbajtjen dhe elementët në një faqe pothuajse në çdo mënyrë që mund të mendojmë. Kjo sjell strukturë në dizajnin tonë dhe ndihmon për ta bërë përmbajtjen më vizuale.
Ekzistojnë disa lloje të ndryshme pozicionimi në CSS, secila prej të cilave ka shtrirjen e vet. Në këtë kapitull, ne do t'i hedhim një vështrim disa rasteve të ndryshme të përdorimit - duke krijuar paraqitje të ripërdorshme dhe pozicionim unik të artikujve të vetëm - dhe duke përshkruar disa metoda se si ta bëni këtë.
Pozicionimi i notit
Një mënyrë për të pozicionuar elementët në faqe është përmes vetive float. Kjo veçori është mjaft e gjithanshme dhe mund të zbatohet në shumë mënyra.
Në thelb, vetia float merr një element, e nxjerr atë nga rrjedha normale e faqes dhe e pozicionon majtas ose djathtas të elementit prind. Të gjithë elementët e tjerë në faqe do të mbështjellin një element të tillë. Për shembull, paragrafët do të mbështjellin imazhin nëse elementi është vendosur vetia float.
Kur vetia float zbatohet në shumë elementë në të njëjtën kohë, bën të mundur krijimin e një plan urbanistik me elementë të float pranë ose përballë njëri-tjetrit, siç tregohet në një paraqitje me shumë kolona.
Vetia float pranon disa vlera, dy më të njohurat janë majtas dhe djathtas, të cilat lejojnë një element të notojë majtas ose djathtas të prindit të tij.
Img (lundrues: majtas;)
noton në praktikë
Le të krijojmë një plan urbanistik të përgjithshëm të faqes me një kokë në krye, dy kolona në qendër dhe një fund në fund. Në mënyrë ideale, kjo faqe duhet të shënohet me elementët
,
,
Për referencë, elementët e lundruar janë pozicionuar rreth skajit të elementit prind. Nëse nuk ka prind, elementi i lundruar do të notojë në skajin e faqes.
Kur bëjmë një element të riorganizuar, ne e heqim atë nga rrjedha normale e dokumentit HTML. Kjo bën që gjerësia e paracaktuar e atij elementi të bëhet gjerësia e përmbajtjes së tij. Ndonjëherë, për shembull, kur krijojmë kolona për një plan urbanistik të ripërdorshëm, kjo sjellje është e padëshirueshme. Kjo mund të rregullohet duke shtuar një veçori me gjerësi fikse për secilën kolonë. Gjithashtu, për të parandaluar që elementët e lundruar të prekin njëri-tjetrin, duke bërë që përmbajtja e një elementi të ulet pranë tjetrit, mund të përdorim veçorinë margin për të vendosur hapësirën midis elementeve.
Më poshtë zgjerojmë bllokun e mëparshëm të kodit duke shtuar një diferencë dhe gjerësi në secilën kolonë për të formuar më mirë rezultatin tonë të dëshiruar.
floats mund të ndryshojnë vlerën e shfaqjes së një elementi
Është gjithashtu e rëndësishme që një element i lëvizur të kuptojë se elementi po hiqet nga rrjedha normale e faqes dhe se vlera e paracaktuar e shfaqjes së elementit mund të ndryshojë. Vetia float mbështetet në vlerën e shfaqur të elementit të caktuar për të bllokuar dhe mund të anashkalojë vlerën e paracaktuar të shfaqjes së elementit nëse nuk është dhënë tashmë si element blloku.
Për shembull, një element që ka shfaqur të specifikuar si inline, si p.sh. inline , injoron çdo veçori të lartësisë ose gjerësisë. Megjithatë, nëse specifikoni një float për një element inline, vlera e ekranit ndryshon në bllok, dhe më pas elementi tashmë mund të marrë vetitë e lartësisë ose gjerësisë.
Kur vendosim një element, duhet të jemi të kujdesshëm se si ai ndikon në vlerën e vetive të shfaqjes.
Për dy kolona ju mund të notoni një kolonë dhe djathtas për një kolonë, por për kolona të shumta ne do të duhet të ndryshojmë qasjen tonë. Le të themi, për shembull, ne do të dëshironim të merrnim një rresht me tre kolona midis elementeve tanë. dhe
......
...
...
Për të rregulluar këto tre elemente në një vijë prej tre kolonash, ne duhet të notojmë të gjithë elementët si majtas. Ne gjithashtu duhet të rregullojmë gjerësinë duke marrë parasysh kolonat shtesë dhe vendosini ato njëra pranë tjetrës.
Këtu kemi tre kolona, të gjitha me gjerësi dhe margjina të barabarta, dhe një float të vendosur majtas.
Demonstrimi i një plan urbanistik me 3 kolona
Përmbajtja e pastrimit dhe notimit
Vetia float u krijua fillimisht për të lejuar që përmbajtja të rrjedhë rreth imazheve. Një imazh mund të lundrohet dhe e gjithë përmbajtja rreth atij imazhi rrjedh natyrshëm rreth tij. Ndërsa kjo funksionon shkëlqyeshëm për fotografitë, prona float nuk ishte menduar në të vërtetë për t'u përdorur për qëllime të paraqitjes dhe pozicionimit, dhe kështu ajo vjen me disa gracka.
Një nga këto gracka është se ndonjëherë stili i duhur nuk shfaqet në një element që është pranë elementit të lundruar ose është prindi i tij. Kur një element lundrohet, ai hiqet nga rrjedha normale e faqes dhe, si rezultat, stilet e elementeve rreth atij elementi të lundruar mund të ndikohen negativisht.
Shpesh herë, vlerat e vetive të marzhit dhe mbushjes keqinterpretohen, duke bërë që ato të përzihen me elementin e lundruar. Mund të preken edhe prona të tjera.
Një gabim tjetër është se ndonjëherë përmbajtja e padëshiruar fillon të mbështillet rreth elementit float. Heqja e një elementi nga rrjedha e dokumentit i lejon të gjithë elementët rreth float-it ta anashkalojnë atë dhe të përfitojnë nga çdo hapësirë e disponueshme rreth float-it, e cila shpesh është e padëshirueshme.
Në shembullin tonë të mëparshëm me dy kolona, pasi i kemi vendosur elementët dhe
Demonstrimi i paraqitjes pa lundrim të pastër
Për të parandaluar që përmbajtja të mbështillet rreth elementëve të lundruar, duhet të pastrojmë float-in dhe ta kthejmë faqen në rrjedhën e saj normale. Ne do të shikojmë se si të pastrojmë notat dhe më pas do të hedhim një vështrim në përmbajtjen e tyre.
Noton pastrimi
Clearing floats bëhet me vetinë clear, e cila merr disa vlera të ndryshme: vlerat më të përdorura janë majtas, djathtas dhe të dyja.
Div (e qartë: majtas;)
Vlera e majtë fshin notat e majta, ndërsa vlera e djathtë pastron notat e djathta. Të dyja, megjithatë, do të pastrojnë notat majtas dhe djathtas dhe shpesh është opsioni më ideal.
Duke u rikthyer te shembulli ynë i mëparshëm, nëse përdorim veçorinë clear me të dyja në element
Fundi (i qartë: të dyja;)
Demonstrimi i një plan urbanistik me lundrues pastrues
Përmbajtja notuese
Në vend që të pastroni float-in, një opsion tjetër është të vendosni përmbajtjen e float. Rezultati është pothuajse i njëjtë, por përmbajtja float me të vërtetë siguron që të gjitha stilet tona të shfaqen siç pritej.
Për të vendosur përmbajtjen float, elementët e lundruar duhet të jenë brenda elementit prind, ai do të veprojë si një kontejner, duke e lënë rrjedhën e dokumentit plotësisht normal jashtë tij. Stilet për këtë prind përfshijnë klasën e grupit, siç tregohet këtu:
Grupi :: përpara, .grupi :: pas (përmbajtja: ""; shfaqja: tabelë;)
Nuk po ndodh shumë këtu, por në thelb gjithçka që bën CSS është të pastrojë të gjithë elementët e lundruar brenda elementit të grupit dhe ta kthejë dokumentin në rrjedhën normale.
Më konkretisht, pseudoelementet :: para dhe :: pas, siç u diskutua në mësimin 4, gjenerojnë në mënyrë dinamike elemente sipër dhe poshtë elementit me grupin e klasës. Këta elementë nuk përfshijnë asnjë përmbajtje dhe shfaqen si elemente tabelare, si elemente blloku. Elementi i gjeneruar në mënyrë dinamike pas elementit me klasën e grupit pastron float brenda elementit me klasën e grupit, njësoj si qartë më parë. Së fundi, elementi i grupit gjithashtu pastron çdo lundrues që mund të shfaqet përpara tij, në rast se ekziston një float me një vlerë majtas ose djathtas. Përfshihet gjithashtu një truk i vogël që i bën shfletuesit më të vjetër të luajnë bukur.
Këtu ka më shumë kod sesa komanda e vetme e qartë: të dyja, por mund të jetë mjaft i dobishëm.
Duke marrë parasysh paraqitjen tonë të faqes me dy kolona, ne mund ta mbështjellim dhe
...
...
Grupi :: para, .grupi :: pas (përmbajtja: ""; shfaqja: tabela;) .grupi :: pas (pastaj: të dyja;) .grupi (pastaj: të dyja; * zmadhimi: 1;) seksioni (lundrues: majtas ; diferencë: 0 1,5%; gjerësi: 63%;) mënjanë (lundrues: djathtas; diferencë: 0 1,5%; gjerësi: 30%;)
Demonstrimi i paraqitjes me përmbajtje float
Teknika e treguar këtu njihet si "clearfix" dhe shpesh shihet në sajte të tjera me emrin e klasës clearfix ose cf. Ne zgjodhëm të përdorim grupin e emrave të klasës sepse ai përfaqëson një grup elementësh dhe shpreh më mirë përmbajtjen.
Kur float-et janë të specifikuara për elementë, është e rëndësishme të shikoni se si ato ndikojnë në rrjedhën e faqes dhe të siguroheni që rrjedha e faqes të flushohet duke flushuar ose float përmbajtjen sipas nevojës. Përndryshe, gjurmimi float mund të shkaktojë shumë dhimbje koke, veçanërisht në faqet që përmbajnë rreshta të shumtë, secila me kolona të shumta.
Në praktikë
Le të kthehemi te faqja e internetit e Konferencës së Styles dhe ta provojmë të nxjerrim disa përmbajtje.
Së pari, përpara se të vendosim ndonjë element, le të ofrojmë përmbajtje për ata elementë të lundruar duke shtuar një rregullim të qartë në CSS-në tonë. Në skedarin main.css, pak më poshtë stileve tona të rrjetit, shtoni një sqarim nën emrin e klasës së grupit si më parë. / * =================================================================== =============================== * / .grup :: para, .grup :: pas (përmbajtja: " " ; shfaqja: tabela;) .grup :: pas (pastaj: të dyja;) .grup (pastaj: të dyja; * zmadhimi: 1;)
Tani që mund të përdorim float, le ta vendosim atë për kryesoren
element i brendshëm majtas dhe lëreni pjesën tjetër të përmbajtjes në kokë të rrjedhë në të djathtë.
Për ta bërë këtë, shtoni klasën e logos në element.
... Më pas, brenda CSS-së tonë, ne do të shtojmë një seksion të ri stilimi për titullin kryesor. Në këtë seksion, ne do të zgjedhim artikullin
Ndërsa jemi këtu, le të shtojmë pak më shumë detaje në logon tonë. Le të fillojmë duke vendosur elementin ose një ndërprerje rreshti midis fjalëve "Stilet" dhe "Konferenca" për ta bërë tekstin e logos tonë të shfaqet në dy rreshta.
Në CSS, le të shtojmë një kufi në krye të logos sonë dhe disa mbushje vertikale për ta bërë logon të marrë frymë lirshëm.
të efektshme, atëherë duam të vendosim përmbajtjen e float. Prindi më i afërt me
është elementi kështu që ne do të shtojmë një klasë grupi në të. Kjo do të zbatojë stilet clearfix që kemi vendosur më parë për të.
...
Elementi merr formë, kështu që le t'i hedhim një vështrim elementit
Ndryshe nga elementi megjithatë, ne nuk do ta aplikojmë klasën drejtpërdrejt në elementin floated. Këtë herë, ne do të shtojmë një klasë në prindin e elementit float dhe do të përdorim një përzgjedhës unik CSS për të zgjedhur elementin dhe më pas do ta kalojmë atë.
Le të fillojmë duke shtuar klasën fillore-footer në element
Tani që klasa primar-footer është caktuar për elementin
/ * ======================================== Bodrumi kryesor ===== = ================================= * / .primar-footer i vogël (lundrues: majtas;)
Për të kontrolluar - këtu ne zgjedhim një element , i cili duhet të jetë brenda një elementi me një vlerë kryesore-footer për një atribut të klasës, siç është elementi ynë
Së fundi, shtoni pak mbushje në krye dhe në fund të elementit.
Fundi kryesor (mbushje-fund: 44px; mbushje-lart: 44px;)
Me gjithë këto ndryshime në elementë dhe
Oriz. 5.01. Me nota të shumta, elemente dhe
Pozicionimi brenda-bllokut
Përveç përdorimit të floats, një mënyrë tjetër se si mund të pozicionojmë përmbajtjen është duke përdorur veçorinë e ekranit në lidhje me vlerën e bllokut inline. Metoda e bllokut në linjë, siç do të diskutojmë më vonë, është kryesisht e dobishme për paraqitjet e faqeve ose për vendosjen e artikujve në një rresht pranë njëri-tjetrit.
Kujtoni se vlera e bllokut inline për vetinë e ekranit i jep elementet në një rresht dhe i lejon ata të pranojnë të gjitha vetitë e modelit të kutisë, duke përfshirë lartësinë, gjerësinë, mbushjen, kufirin dhe kufirin. Përdorimi i bllokut inline na lejon të përfitojmë plotësisht nga modeli i bllokut pa u shqetësuar për pastrimin e çdo lundrimi.
inline-block në praktikë
Le t'i hedhim një sy shembullit tonë me tre kolona që nga fillimi. Ne do të fillojmë duke e mbajtur HTML-në tonë si kjo:
......
...
...
Tani në vend të noton për tre elementët tanë ne do të ndryshojmë vlerën e tyre të shfaqjes në blloqe inline, duke i lënë veçoritë e marzhit dhe të gjerësisë siç ishin. Si rezultat, CSS-ja jonë do të duket kështu:
Seksioni (ekrani: blloku i brendshëm; diferenca: 0 1,5%; gjerësia: 30%;)
Fatkeqësisht, vetëm ky kod nuk mjafton për të bërë trukun dhe elementin e fundit shtyhet në një linjë të re. Mbani mend, për shkak se elementët e blloqeve të brendshme vizatohen në vijë njëri pas tjetrit, ato përfshijnë një hapësirë të vetme midis tyre. Kur madhësia e çdo hapësire individuale i shtohet gjerësisë dhe kufirit horizontal të të gjithë elementëve në rresht, gjerësia totale bëhet shumë e madhe, duke shtyrë jashtë elementin e fundit në një linjë të re. Për të shfaqur të gjithë artikujt në një rresht, duhet të hiqni hapësirën e bardhë midis secilës
.
Demonstrimi i elementeve të blloqeve në linjë me hapësirë
Heqja e hapësirës midis elementeve të blloqeve në linjë
Ka disa metoda për heqjen e hapësirës ndërmjet elementeve të blloqeve të brendshme dhe disa janë më komplekse se të tjerat. Ne do të fokusohemi në dy metodat më të thjeshta, secila prej të cilave ndodh brenda HTML.
Zgjidhja e parë është të vendosni çdo etiketë të re të elementit hapës në të njëjtën linjë me etiketën mbyllëse të elementit të mëparshëm ... Në vend që të përdorim një linjë të re për çdo element, ne përfundojmë duke i filluar elementet në të njëjtën linjë. HTML-ja jonë mund të duket kështu:
...
...
...
...
Shkrimi i elementeve të blloqeve inline në këtë mënyrë siguron që të mos ketë hapësirë midis elementeve të tillë në HTML. Prandaj, hapësira nuk do të shfaqet kur faqja të jepet.
Demonstrimi i elementeve të blloqeve në linjë pa hapësira
Një teknikë tjetër për heqjen e hapësirës ndërmjet elementeve të blloqeve inline është hapja e një komenti HTML menjëherë pas etiketës mbyllëse të elementit. Pastaj mbyllni komentin pak përpara etiketës së fillimit të elementit tjetër. Kjo lejon që elementët e blloqeve inline të fillojnë dhe të përfundojnë në rreshta të veçantë në HTML dhe do të "komentojë" çdo hapësirë të mundshme midis elementeve. Si rezultat, kodi do të duket si ky:
...
...
...
...
Asnjë nga këto opsione nuk është perfekte, por ato janë të dobishme. Unë prirem të përdor komente për organizim më të mirë, por cili opsion do të zgjidhni varet tërësisht nga ju.
Krijoni paraqitje të ripërdorshme
Kur ndërtoni një sajt, është gjithmonë më mirë të shkruani stile modulare që mund të ripërdoren diku tjetër, dhe paraqitjet e ripërdorshme janë në krye të listës së kodeve të ripërdorshme. Paraqitjet mund të krijohen me elementë lundrues ose bllokues të brendshëm, por cili funksionon më mirë dhe pse?
Pyetja se cili është më i mirë për strukturën e faqes - elementët e thjeshtë ose të blloqeve në linjë është e hapur për diskutim. Qasja ime është të përdor elementë të blloqeve inline për të krijuar një rrjetë ose paraqitje faqesh, dhe më pas të notoj kur dua që përmbajtja të rrjedhë rreth atij elementi (që është ajo për të cilën ishin floats kur punohet me imazhe). Në përgjithësi, më duket më e lehtë për të punuar edhe elementët e blloqeve inline.
Megjithatë, përdorni atë që funksionon më mirë për ju. Nëse jeni më të njohur me një qasje se tjetra, atëherë përdorni atë.
Specifikimet e reja të CSS janë aktualisht në punë - veçanërisht, vetitë fleksibël dhe rrjetë që do t'ju ndihmojnë të vendosni se si të vendosni më mirë faqet tuaja. Kini kujdes për këto metoda ndërsa fillojnë të shfaqen.
Në praktikë
Me një kuptim të fortë të paraqitjeve të ripërdorshme, është koha për të prezantuar një në faqen tonë të internetit të Konferencës Styles.
Për faqen e internetit të Konferencës Styles, ne do të krijojmë një plan urbanistik me 3 kolona duke përdorur elementë të blloqeve në linjë. Ne do ta bëjmë këtë në mënyrë që të kemi tre kolona me gjerësi të njëjtë, ose dy kolona me gjerësi totale të ndarë ndërmjet tyre si 2/3 për njërën dhe 1/3 për tjetrën.
Së pari, ne do të krijojmë klasa që përcaktojnë gjerësinë e këtyre kolonave. Ne do t'i quajmë këto dy klasa col-1-3 për një të tretën dhe col-2-3 për dy të tretat. Në seksionin Grid të skedarit tonë main.css, le të shkojmë përpara dhe të përcaktojmë këto klasa dhe gjerësinë e tyre përkatëse.
Ne duam që të dyja kolonat të shfaqen si elementë të blloqeve të brendshme. Ne gjithashtu duhet të sigurohemi që ata të kenë shtrirjen e tyre vertikale të vendosur në krye të çdo kolone.
Le të krijojmë dy përzgjedhës të rinj që ndajnë ekranin dhe rreshtimin vertikal.
Col-1-3, .col-2-3 (ekrani: blloku i brendshëm; rreshtimi vertikal: lart;)
Hidhini një sy përsëri CSS. Ne kemi krijuar dy përzgjedhës të klasave col-1-3 dhe col-2-3 të ndara me presje. Një presje në fund të përzgjedhësit të parë do të thotë se pasohet nga një përzgjedhës tjetër. Zgjedhësi i dytë ndiqet nga një mbajtës kaçurrelë i hapur, i cili tregon se fillon përshkrimi i stilit. Me ndihmën e përzgjedhësve me presje, ne mund të lidhim një stil me shumë përzgjedhës në të njëjtën kohë.
Ne duam të vendosim pak hapësirë midis kolonave për të ndihmuar në ndarjen e përmbajtjes. Kjo mund të bëhet duke shtuar mbushje horizontale në secilën kolonë.
Kjo funksionon mirë, megjithatë, kur dy kolona vendosen pranë njëra-tjetrës, hapësira midis tyre do të jetë dy herë më e gjerë se hapësira nga buza e jashtme. Për ta balancuar këtë, ne do t'i vendosim të gjitha kolonat tona në një rrjet dhe do t'i shtojmë të njëjtin mbushje.
Le të përdorim klasën grid për të përcaktuar rrjetin tonë dhe më pas të vendosim të njëjtën mbushje horizontale për klasat e rrjetit, col-1-3 dhe col-2-3. Me presjet që ndajnë përsëri përzgjedhësit tanë, CSS-ja jonë duket kështu:
Kur vendosim mbushje horizontale, duhet të kemi kujdes. Mbani mend, në tutorialin e fundit krijuam një kontejner me kontejnerin e klasës në qendër të të gjithë përmbajtjes sonë në një faqe të gjerë 960 px. Në këtë pikë, nëse do të vendosnim një element rrjeti brenda një elementi kontejner, mbushja e tyre horizontale do të paloset së bashku dhe kolonat tona nuk do të shfaqen në proporcion me gjerësinë e pjesës tjetër të faqes.
Ne do ta arrijmë këtë duke thyer rregullat e vjetra të kontejnerit në sa vijon:
Tani çdo element me kontejner ose rrjetë të klasës do të jetë 960 piksel i gjerë dhe i përqendruar në faqe. Përveç kësaj, ne kemi ruajtur mbushjen ekzistuese horizontale për çdo element me kontejner të klasës duke e zhvendosur atë në një grup të ri rregullash të veçantë.
Mirë, e gjithë pjesa e vështirë për vendosjen e rrjetës ka përfunduar. Tani është koha për të punuar me HTML-në tonë dhe për të parë se si funksionojnë këto klasa.
Do të fillojmë me ngacmuesit në faqen kryesore, në skedarin index.html, duke i renditur në tre kolona. Ngacmuesit aktualisht janë të mbështjellë me një element me enë të klasës. Ne duam të ndryshojmë klasën e kontejnerit në grid në mënyrë që brenda të fillojmë të vendosim kolonat.
...
...
...
...
Së fundi, meqenëse secila nga kolonat tona është një element i blloqeve inline, duhet të sigurohemi që të heqim hapësirën e bardhë midis tyre. Për ta bërë këtë, ne do të përdorim komentet dhe do të shtojmë disa dokumentacion në secilin seksion për të organizuar më mirë kodin tonë.
...
...
...
Për verifikim - në rreshtin 3 kemi lënë një koment që identifikon seksionin e folësve që vijon. Në fund të rreshtit 7, ne hapim komentin menjëherë pas etiketës mbyllëse. Brenda këtij komenti, në rreshtin 9, ne përcaktojmë seksionin tjetër "Orari". Pastaj mbyllim komentin në fillim të rreshtit 11, pak para etiketës hapëse ... Një strukturë e ngjashme për komentet shfaqet në rreshtat 13 deri në 17 midis dy elementeve , menjëherë përpara seksionit "Vendi". Në përgjithësi, ne kemi komentuar çdo hapësirë të mundshme të bardhë midis kolonave, duke përdorur njëkohësisht të njëjtat komente për të identifikuar seksionet tona.
Tani kemi një rrjet me 3 kolona të ripërdorshme që mbështet paraqitje të ndryshme duke përdorur gjerësinë e kolonave si 1/3 dhe 2/3. Faqja jonë kryesore tani përmban tre kolona, duke i ndarë të gjitha ngacmuesit.
Oriz. 5.02. Faqja kryesore e Konferencës Styles tani përfshin një plan urbanistik me 3 kolona
Demo dhe kodi burim
Më poshtë mund të shikoni faqen e internetit të Konferencës Styles në gjendjen aktuale, si dhe të shkarkoni kodin burimor të faqes së internetit për momentin.
Pozicionimi unik i elementeve
Herët a vonë, të gjithë do të duan të pozicionojnë me saktësi një element, por elementët lundrues ose të blloqeve inline nuk e lejojnë këtë mashtrim. Elementet e lundruar që heqin një element nga rrjedha e faqes shpesh çojnë në rezultate të padëshirueshme pasi elementët përreth notojnë rreth elementit të lundruar. Elementet e blloqeve në linjë, nëse nuk krijojmë kolona, mund të jenë mjaft të vështirë kur bëhet fjalë për pozicionimin e saktë. Për situata si kjo, ne mund të përdorim veçorinë e pozicionit në lidhje me vetitë e kompensimit të kutisë.
Vetia e pozicionit përcakton se si pozicionohet një element në faqe dhe nëse ai do të shfaqet në rrjedhën normale të dokumentit. Përdoret së bashku me vetitë e zhvendosjes së sipërme, djathtas, poshtë dhe majtas të kutisë, të cilat përcaktojnë saktësisht se ku do të pozicionohet një element duke e lëvizur elementin në drejtime të ndryshme.
Si parazgjedhje, çdo element ka një vlerë pozicioni statike, që do të thotë se elementi ekziston në rrjedhën normale të dokumentit dhe nuk pranon asnjë veçori kompensimi. Vlera statike më së shpeshti anashkalohet nga vlera relative ose absolute, të cilën do ta shohim më pas.
Pozicionimi relativ
Vlera relative për vetinë e pozicionit lejon që elementët të shfaqen në rrjedhën normale të faqes, duke i rezervuar hapësirën elementit siç synohet dhe duke mos lejuar që elementët e tjerë të mbështillen rreth tij. Megjithatë, ju lejon gjithashtu të modifikoni pozicionin e një elementi duke përdorur vetitë e kompensimit. Për shembull, merrni parasysh HTML dhe CSS të mëposhtme:
me kompensimin e klasës të vendosur në pozicion relativ dhe gjithashtu dy veti të kompensimit majtas dhe sipër. Kjo ruan pozicionin origjinal të elementit dhe elementët e tjerë nuk lejohen të lëvizin në atë zonë. Përveç kësaj, veçoritë e zhvendosjes e lëvizin elementin, duke e shtyrë atë 20 pikselë nga e majta dhe 20 pikselë nga vendi i sipërm origjinal.
Për elementët e pozicionuar relativisht, është e rëndësishme të dini se vetitë e kompensimit të kutisë përcaktojnë se ku do të zhvendoset elementi, duke pasur parasysh pozicionin e tij origjinal. Pra, një veti e majtë prej 20 pikselësh e shtyn në mënyrë efektive elementin 20 piksel djathtas. Një veti e sipërme prej 20 pikselësh do ta shtyjë më pas elementin poshtë 20 pikselë.
Kur pozicionojmë një element duke përdorur vetitë e kompensimit, elementi mbivendoset me elementin poshtë tij, në vend që ta shtyjë atë poshtë siç bëjnë vetitë e marzhit ose të mbushjes.
Pozicionimi absolut
Vlera absolute për vetinë e pozicionit ndryshon nga vlera relative në atë që një element i pozicionuar absolutisht nuk shfaqet në rrjedhën normale të dokumentit dhe hapësira dhe pozicioni origjinal i një elementi absolutisht të pozicionuar nuk është i rezervuar.
Përveç kësaj, elementët e pozicionuar absolutisht zhvendosen në raport me relacionin e tyre më të afërt me prindin e pozicionuar. Nëse një prind i pozicionuar relativisht nuk ekziston, atëherë një element i pozicionuar absolutisht do të pozicionohet në lidhje me elementin
... Kjo është një pjesë e vogël e informacionit; le të hedhim një vështrim se si funksionon brenda një kodi:
Në këtë shembull, elementi pozicionuar relativisht, por nuk përfshin asnjë veti të kompensuar. Për rrjedhojë, pozicioni i tij nuk ndryshon. Elementi
me kompensimin e klasës përfshin vlerën e pozicionit si absolute. Që nga elementi është prindi relativisht i pozicionuar më afër
, pastaj elementi
do të pozicionohet në raport me elementin
.
Për elementët e pozicionuar relativisht, vetitë e kompensimit përcaktojnë se në cilin drejtim elementi do të zhvendoset në lidhje me vetveten. Për elementët e pozicionuar absolutisht, vetitë e kompensimit përcaktojnë se në cilin drejtim lëvizet elementi në raport me relacionin më të afërt me prindin e pozicionuar.
Si rezultat i vetive të drejta dhe të larta, elementi
do të shfaqen 20 pikselë nga e djathta dhe 20 pikselë nga lart brenda
.
Që nga elementi
pozicionuar absolutisht, nuk përshtatet në rrjedhën normale të faqes dhe do të mbivendoset çdo element përreth. Përveç kësaj, pozicioni fillestar
nuk ruhet dhe artikuj të tjerë mund të zënë këtë vend. Në mënyrë tipike, pjesa më e madhe e pozicionimit mund të ndodhë pa aplikuar vetitë e pozicionit dhe vetitë e kompensimit, por në disa raste ato mund të jenë jashtëzakonisht të dobishme.
Përmbledhje
Mësimi i pozicionimit të përmbajtjes në HTML dhe CSS është një hap i madh drejt zotërimit të këtyre gjuhëve. Shtoni modelin e bllokut në këtë dhe ne jemi në rrugën tonë për t'u bërë një zhvillues i nivelit të parë.