Rachel Andrew on web-kehittäjä, kirjailija ja puhuja. Hän on kirjoittanut useita kirjoja, muun muassa uuden CSS-asettelun., Hän on yksi niistä ihmisistä, takana …Enemmän aboutRachel↬
12 min lukea
CSS,Selaimet
Tallennetaan offline käsittelyssä
Jaa Twitterissä, LinkedIn
Reunukset CSS tuntua yksinkertaiselta ensi silmäyksellä. Kohdistettuna elementtiin se muodostaa tilan elementin ympärille työntäen muita elementtejä pois. Marginaalissa on kuitenkin enemmän kuin voisi luulla.,
Yksi ensimmäisiä asioita, joita useimmat meistä ovat oppineet, kun olemme oppineet, CSS, oli tiedot eri osien laatikko, CSS, kuvattu CSS-Laatikko Malli. Yksi Laatikkomallin elementeistä on marginaali, laatikon ympärillä oleva läpinäkyvä alue, joka työntää muut elementit pois laatikon sisällöstä., margin-top, margin-right, margin-bottom ja margin-left ominaisuudet kuvattiin takaisin CSS1, yhdessä pika margin asettaa kaikki neljä ominaisuuksia kerralla.
marginaali näyttää olevan melko mutkaton asia, mutta, tässä artikkelissa, me katsomaan joitakin asioita, joka matkaa ihmisten kanssa huomioon käyttämällä marginaaleja. Tarkastelemme erityisesti sitä, miten marginaalit ovat vuorovaikutuksessa keskenään ja miten marginaalien romahtaminen todella toimii.,
CSS Box Model
Kuten kaikki artikkeleita osat CSS Box Model, meidän pitäisi määritellä, mitä sillä tarkoitetaan, ja miten malli on selvennetty kautta versiot CSS. Laatikkomalli viittaa siihen, miten laatikon eri osat — sisältö, pehmuste, reunus ja marginaali — asetetaan ja ovat vuorovaikutuksessa keskenään. CSS1: ssä Laatikkomallia tarkennettiin alla olevassa kuvassa näkyvällä ASCII-taidekaaviolla.,
neljä marginaali ominaisuudet kummallakin puolella laatikko ja margin pika olivat kaikki määritelty CSS1.
CSS2.1 erittely on esimerkki osoittaa, Laatikko Malli ja määritellään myös ehdot, me silti käyttää kuvaamaan eri laatikot., Erittely kuvaa content box, padding box, border box ja margin box, joka on määritelty reunat sisältöä, padding, border ja margin vastaavasti.
Siellä on nyt Tasolla 3 Laatikko Malli erittely luonnoksena., Tämä erittely viittaa takaisin CSS2 määritelmiä Laatikko Malli ja marginaalit, siksi se on CSS2 määrittelyyn käytämme suurin osa tämän artikkelin.
marginaalin romahtaminen
CSS1-spesifikaatiossa määriteltyjen marginaalien mukaan myös pystysuuntaiset marginaalit romahtivat. Tämä romahtava käytös on aiheuttanut marginaaliin liittyvää turhautumista siitä lähtien. Marginaali romahtaa järkevää, jos ajatellaan, että noina varhaisina päivinä, CSS oltiin käytetty dokumentointi muotoilun kieli., Marginaali romahtaa tarkoittaa sitä, että kun otsikko pohja marginaali, seuraa kohdan alkuun marginaali, sinun ei saada valtava kuilu niiden välillä kohteita.
kun marginaalit romahtavat, ne yhdistyvät niin, että kahden elementin välinen tila muuttuu kahdesta marginaalista suuremmaksi. Pienempi marginaali päätyy olennaisesti suuremman sisälle.,
Marginaalit romahtaa seuraavissa tilanteissa:
Viereisen sisarukset
Täysin tyhjä laatikot
Vanhemman ja ensimmäinen tai viimeinen lapsi elementti
katsotaanpa katsomaan jokainen näistä skenaariot puolestaan, ennen kuin katsot asioita, jotka estävät marginaalit romahtamasta näissä tilanteissa.
Viereisen Sisarukset
ensimmäinen kuvaus marginaali romahtamassa on osoitus siitä, miten marginaalit vierekkäisten sisarukset romahtaa., Muissa kuin niissä tilanteissa, jotka on mainittu alla, jos sinulla on kaksi elementit näyttää yksi toisensa jälkeen normaalia, pohja marginaali ensimmäisen elementin romahtaa yläreunaan seuraavat elementti.
Vuonna CodePen esimerkissä on kolme div elementit. Ensimmäisessä on ylä-ja alapinta-ala-marginaali 50 pikseliä. Toisessa on ylä-ja alaraja 20px. Kolmannella on ylä-ja alaraja 3EM. Kahden ensimmäisen elementin välinen marginaali on 50 pikseliä, kun pienempi ylämarginaali yhdistetään suurempaan alamarginaaliin., Marginaali kahden toisen elementin välillä 3EM, koska 3em on suurempi kuin 20 pikseliä toisen elementin pohjassa.
täysin tyhjät laatikot
jos laatikko on tyhjä, sen ylä-ja alamarginaali voi romahtaa keskenään. Seuraavassa CodePen esimerkiksi elementin luokan tyhjä on ylhäältä ja alhaalta marginaali 50 pikseliä, kuitenkin, väli ensimmäisen ja kolmannen kohteita ei ole 100 pikseliä, mutta 50. Tämä johtuu kahden marginaalin romahtamisesta. Jos siihen lisätään jotain (jopa pehmuste), käytetään ylä-ja alarajoja eikä romahdeta.,
Vanhemman Ja Ensimmäinen Tai Viimeinen Lapsi Elementti
Tämä on marginaali romahtaa skenaario, joka saaliit ihmiset useimmiten, koska se ei näytä erityisen intuitiivinen. Seuraavassa CodePen, minulla on div luokan kääre, ja olen antanut, että div ja outline punaisella, jotta voit nähdä, missä se on. Kaikkien kolmen lapsen elementtien marginaali on 50 pikseliä. Kuitenkin, ensimmäinen ja viimeinen kohteet ovat samassa tasossa reunat wrapper; ei ole 50-pikselin marginaali välillä elementti ja kääre.,
Tämä johtuu siitä, että lapsen marginaali romahtaa minkä tahansa vanhemman marginaalin päätyessä vanhemman ulkopuolelle. Näet tämän, jos tarkastat ensimmäisen lapsen DevTools-valmisteen avulla. Korostettu keltainen alue on marginaali.
Vain Estää Marginaalit Romahtaa
viimeinen esimerkki tuo esiin myös jotain marginaali romahtaa., CSS2: ssa vain pystysuuntaiset marginaalit on määritelty romahtamaan — eli alkuaineen ylä-ja alarajat, jos olet horisontaalisessa kirjoitustilassa. Yllä olevat vasen ja oikea marginaali eivät siis romahda ja pääty kääreen ulkopuolelle.
Huomautus: kannattaa muistaa, että marginaalit vain romahtavat lohkosuuntaan, kuten kappaleiden väliin.
Asiat, Jotka Estävät Marginaali Romahtaa
Marginaalit koskaan romahtaa, jos kohde on absoluuttinen paikannus, tai on esillä., Mutta jos olet törmännyt johonkin edellä mainituista paikoista, joissa marginaalit romahtavat, miten voit estää marginaalien romahtamisen?
ensimmäisenä romahduksen lopettaa tilanteet, joissa kyseessä olevien elementtien välillä on jotain.
esimerkiksi täysin sisällöltään tyhjä laatikko ei romahda sen ylä-ja alarajaa, jos siinä on reunus tai pehmuste. Alla olevassa esimerkissä olen lisännyt laatikkoon 1px pehmustetta. Ruudun ylä-ja alapuolella on nyt 50 pikselin marginaali.,
Vastaa