Ce este valoarea float în CS:GO? Totul despre proprietatea float Tipuri de poziționare a elementelor HTML

07.09.2020 Recenzii

Descriere

Determină la ce parte va fi aliniat elementul, cu alte elemente curgând în jurul lui pe celelalte laturi. Când proprietatea float este setată la none , elementul este redat pe pagină ca în mod normal, dar este permis ca o linie de text de împachetare să fie pe aceeași linie cu elementul însuși.

Sintaxă

float: stânga | dreapta | niciunul | moşteni

Valori

stânga Aliniază elementul la stânga și toate celelalte elemente, cum ar fi textul, curg în jurul lui spre dreapta. dreapta Aliniază elementul la dreapta, cu toate celelalte elemente curgând în jurul lui spre stânga. none Învelișul elementului nu este setat. inherit Moștenește valoarea părintelui.

HTML5 CSS 2.1 IE 9 Cr 15 Op 11 Sa 5 Fx 8

pluti

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat.
Duis autem dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit au gue duis dolore te feugat nulla faciliti.


Rezultat acest exemplu prezentat în Fig. 1.

Orez. 1. Utilizarea proprietății float

Model obiect

document.getElementById("elementID").style.styleFloat

document.getElementById("elementID").style.cssFloat

Browsere

ÎN motor de cautare Explorer 6 are o problemă cu dublarea valorii de umplutură la stânga sau la dreapta pentru elementele plutitoare imbricate în elementele părinte. Marja care este adiacentă laturii părintelui este dublată. Problema este de obicei rezolvată prin adăugarea display: inline la elementul plutit. Acest browser adaugă, de asemenea, padding de 3 pixeli (așa-numita „bucă de trei pixeli”) în direcția specificată de valoarea float.

Versiunile de Internet Explorer până la 7.0 inclusiv nu acceptă valoarea de moștenire.

Cu câțiva ani în urmă, când dezvoltatorii au început să treacă la markup HTML fără tabele, proprietatea CSS float a preluat brusc un rol foarte important. Motivul pentru care proprietatea float a devenit atât de comună a fost că, în mod implicit, elementele bloc nu s-au aliniat unul lângă celălalt într-un format bazat pe coloane. Deoarece coloanele sunt necesare în aproape fiecare schemă CSS, această proprietate a devenit obișnuită și chiar abuzată.

Proprietate float în CSS, permite dezvoltatorului să includă coloane asemănătoare tabelelor în markup HTML fără a utiliza tabele. Dacă nu pentru proprietate pluti, atunci layout-urile CSS nu ar fi posibile altfel decât folosind poziționarea absolută și relativă - care ar fi neglijent și ar face aspectul de neîntreținut.

În acest articol vă vom spune ce este o proprietate plutiși modul în care afectează elementele în contexte specifice. De asemenea, vom arunca o privire la unele dintre diferențele care pot apărea cu această proprietate în browserele cele mai frecvent utilizate. În cele din urmă, vom demonstra câteva aplicații practice ale proprietății pluti. Aceasta ar trebui să ofere, de asemenea, o discuție cuprinzătoare și amănunțită despre această proprietate și impactul acesteia asupra dezvoltării CSS.

Definiția și sintaxa proprietății CSS Float

Scopul proprietății float este de a împinge un element bloc la stânga sau la dreapta, scoțându-l din fluxul documentului. Acest lucru permite conținutului curent să se prăbușească în mod natural în jurul elementului plutitor. Acest concept este similar cu ceea ce vedeți în fiecare zi în literatura tipărită, unde fotografiile și alte elemente grafice sunt aliniate pe o parte, iar conținutul (de obicei text) curge natural în jurul elementului aliniat în jurul marginii din stânga sau din dreapta.

Imaginea de mai sus arată secțiunea „Cititori” a site-ului revistei .net cu 3 fotografii de cititor care sunt lăsate aliniate în coloanele lor cu text înfășurat în jurul imaginilor. Aceasta este ideea de bază din spatele proprietății float în layout-urile CSS și demonstrează una dintre tehnicile utilizate în proiectarea tabelară.

Eficacitatea utilizării floaturilor în amenajări cu mai multe coloane a fost explicată de Douglas Bowman în 2004 în prezentarea sa clasică No More Tables:

Bowman a explicat principiile din spatele aspectului fără masă, folosind un vechi site Microsoft ca referință. Floatoarele au fost folosite în mod proeminent în revizuirea sa falsă a marcajului Microsoft.

Sintaxă

Proprietatea Float poate lua una dintre cele 4 valori: stânga, dreapta, niciunul și moștenire. Aceasta este declarată așa cum se arată în codul de mai jos:

#sidebar (float: stânga; )

#bara laterală (

plutește la stânga;

Cele mai frecvent utilizate valori sunt stânga și dreapta. Valoarea none sau valoarea inițială float pentru orice element de pagină HTML este valoarea implicită. Valoarea de moștenire, care poate fi aplicată aproape tuturor proprietăților CSS, nu funcționează în versiunile de Internet Explorer, inclusiv 7.

Proprietatea float nu necesită aplicarea unei alte proprietăți elementului float, cu toate acestea, pentru a funcționa corect, float va funcționa mai eficient în anumite circumstanțe.

De obicei, un element plutitor ar trebui să aibă lățimea stabilită în mod explicit(cu excepția cazului în care este un element înlocuit, ca o imagine). Acest lucru asigură că float se comportă conform așteptărilor și ajută la evitarea problemelor în unele browsere.

#sidebar ( float: stânga; lățime: 350px; )

#bara laterală (

plutește la stânga;

latime: 350px;

Caracteristicile elementelor plutitoare

Următoarea este o listă a comportamentului elementelor plutitoare, conform specificației CSS2:

Un bloc flotant la stânga va fi plutit spre stânga până când marginea sa din stânga (sau limita marginii dacă nu există margine) atinge fie marginea conținutului blocului, fie marginea altui bloc plutit.

Dacă dimensiunea unui bloc flotant depășește spațiul orizontal disponibil, atunci blocul flotant va fi deplasat în jos

Elementele bloc nepoziționate, neflotate acționează ca elemente plutitoare, de ex. este în afara fluxului de documente

Marginile unui bloc flotant nu se vor potrivi cu marginile blocurilor adiacente

element rădăcină ( ) nu poate fi flotat

Un element inline, unul care este flotat, este convertit într-un element bloc

Plutește în practică

Cel mai obișnuit caz de utilizare pentru proprietatea float este flotarea unei imagini cu text care o învelește. De exemplu:

Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui.

Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, torttor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus.

CSS-ul aplicat imaginii din caseta de mai sus arată astfel:

img ( float: stânga; margine: 0 15px 5px 0; chenar: solid 1px #bbb; )

img(

plutește la stânga;

marginea : 0 15px 5px 0 ;

chenar : solid 1px #bbb ;

Singura proprietate care poate realiza acest efect este proprietatea float. Celelalte proprietăți (marja și marginea) sunt acolo din motive estetice. Alte elemente din bloc (etichete

Cu text în ele) nu au nevoie de niciun stil.

După cum sa menționat mai devreme, elementele plutitoare sunt împinse în afara fluxului documentului, iar alte elemente bloc rămân în flux, acționând ca și cum elementul plutit nici măcar nu ar fi acolo. Acest lucru este demonstrat vizual mai jos:

Această casetă este plutită spre stânga

Acest

Elementul are o culoare de fundal diferită pentru a arăta că se întinde pe lățimea părintelui său, ignorând elementul flotant. Acest text inline, totuși, se înfășoară în jurul casetei plutitoare.

În exemplul de mai sus

element la nivel de bloc, deci ignoră elementul plutit care se întinde pe lățimea containerului (minus umplutura). Toate elementele de tip bloc care nu sunt flotante se vor comporta similar.

Textul dintr-un paragraf este inline, deci încapsulează elementul flotant. Blocului flotant i se oferă, de asemenea, opțiuni de marjă pentru a-l deplasa față de paragraful, făcându-l curat vizual, astfel încât elementul de paragraf să ignore blocul flotant.

Plutitoare de curățare

Problemele de amenajare cu flotoare sunt de obicei rezolvate prin folosire Proprietăți CSS clar, care vă permite să „eliminați” elementele plutitoare din stânga sau din dreapta sau din ambele părți.

Să ne uităm la un exemplu care este adesea văzut - un subsol care se înfășoară în partea dreaptă a unui aspect cu 2 clonuri:

Coloana din stânga a plutit spre stânga

Dacă te uiți la pagina IE6 și IE7, nu vei vedea probleme. Coloanele din stânga și din dreapta sunt la locul lor, iar subsolul este în partea de jos. Dar în Firefox, Opera, Safari și Chrome, veți vedea că subsolul se mută din loc. Acest lucru este cauzat de aplicarea float pe coloane. Acesta este un comportament corect, deși este mai problematic. Pentru a rezolva această problemă, folosim proprietatea clear de mai sus, relativ la subsol:

#footer ( clar: ambele; )

#subsol (

clar: ambele;

Rezultatul este prezentat mai jos:

Coloana din stânga a plutit spre stânga

Coloana din dreapta a plutit și la stânga

Proprietatea clear va șterge numai elementele flotante, așa că aplicarea clear: ambelor coloane nu ar face ca subsolul să scadă, deoarece subsolul nu este un element flotant.

Proprietatea clear va șterge numai elementele plutitoare. Utilizarea clear este aceasta: ambele coloane nu vor omite subsolul deoarece nu este un element flotant.

Așadar, utilizați clear pe elementele care nu sunt flotante și chiar uneori pe elementele flotante, pentru a forța elementele paginii să ocupe pozițiile desemnate.

Remedierea abandonului părinților

Una dintre cele mai comune caracteristici ale markupului float este „leave-parent”. Acest lucru este demonstrat în exemplul de mai jos:

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum torttor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas sempre.

Observați că baza imaginii plutitoare apare în afara părintelui. Părinte nu este complet extins pentru a conține o imagine plutitoare. Acest lucru este cauzat de ceea ce am discutat mai devreme: elementul flotant este în afara fluxului natural al documentului, deși toate elementele blocului sunt afișate, dar elementul flotant nu este acolo. Aceasta nu este o eroare CSS, totul este în conformitate cu Specificații CSS. Toate browserele fac același lucru în acest exemplu. Trebuie spus că, în acest exemplu, adăugarea lățimii containerului poate preveni problema în IE, dar ar trebui să rezolve problema și pentru Firefox, Opera, Safari sau Chrome.

Soluția 1: Plutește pentru container

Cel mai simplu mod de a rezolva această problemă este să plutiți elementul părinte:

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum torttor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas sempre.

Acum containerul se extinde pentru a se potrivi cu totul elemente copil. Dar, din păcate, această remediere va funcționa doar într-un număr limitat de cazuri, deoarece părintele plutitor poate avea consecințe nedorite asupra aspectului dvs.

Soluția 2: Adăugați un marcaj suplimentar

Aceasta este o metodă învechită, dar este o opțiune simplă. Doar adauga element suplimentarîn fundul recipientului și „curăță-l”. Iată cum va arăta codul HTML după implementarea acestei metode:

XHTML

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum torttor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas sempre.

„//media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/10/lifesaver.jpg” lățime = "200" înălțime = "222" alt = "" />

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum torttor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas sempre.

Și, ca rezultat, CSS-ul este aplicat noilor elemente:

Clearfix ( clar: ambele; )

Clearfix (

clar: ambele;

Puteți face acest lucru și prin intermediul
etichetați cu stilul curent. În orice caz, veți obține rezultatul dorit: containerul părinte se va extinde pentru a include toți copiii săi. Dar această metodă nu este recomandată deoarece adaugă cod non-semantic la marcaj.

Soluția 3: pseudo-elementul după

:after pseudo-element adaugă un element la completat Pagina HTML. Această metodă a fost folosită pe scară largă pentru a rezolva problemele de curățare a plutitorilor. Iată cum arată CSS-ul:

Clearfix:după (conținut: "."; afișare: bloc; înălțime: 0; clar: ambele; vizibilitate: ascuns; )

Clearfix:după (

continut: "." ;

afisare: bloc;

inaltime: 0;

clar: ambele;

vizibilitate: ascuns;

Clasa CSS „clearfix” se aplică oricărui container care are copii float și nu se extinde pentru a le include.

Dar această metodă nu funcționează pentru Internet Explorer până la versiunea 7, așa că pentru IE trebuie să utilizați una dintre următoarele opțiuni:

Clearfix ( afișare: bloc inline; ) .clearfix ( zoom: 1; )

Clearfix (

display: inline-block;

Clearfix (

zoom: 1;

În funcție de tipul de problemă, aveți de-a face cu una dintre cele două soluții care vor rezolva această problemă în Internet Explorer. Trebuie remarcat faptul că proprietatea zoom nu este o proprietate standard Microsoft și, prin urmare, CSS-ul dvs. va deveni invalid.

Deoarece elementul pseudo :after nu funcționează în IE6/7, codul este puțin umflat și complicat și este necesar un stil suplimentar care nu este valabil doar pentru IE, deci această soluție nu este cel mai bun mod, dar probabil cel mai bun la care ne-am uitat până acum.

Soluția 4: Proprietatea overflow

De departe, cel mai bun și mai ușor mod de a rezolva problema abandonului părintelui este să adăugați overflow: hidden sau overflow: auto la elementul părinte. Este clar, ușor de întreținut, funcționează în aproape toate browserele și nu adaugă niciun marcaj inutil.

Observați că am spus „aproape” în toate browserele. Acest lucru se datorează faptului că nu funcționează în IE6. Dar, în multe cazuri, containerul părinte va avea o lățime stabilită, ceea ce rezolvă problema în IE6. Dacă containerul părinte nu are o lățime, puteți adăuga un stil unic IE6 cu următorul cod:

// Această remediere este doar pentru IE6 .clearfix (înălțime: 1%; overflow: vizibil; )

// Această remediere este doar pentru IE6

Clearfix (

înălțime: 1%;

preaplin: vizibil;

În IE6, proprietatea înălțime este tratată incorect ca înălțime minimă, astfel încât acest lucru obligă containerul să-și includă copiii. Proprietatea Overflow este apoi setată din nou la „vizibil” pentru a se asigura că conținutul nu este ascuns sau derulat.

Singurul dezavantaj al folosirii metodei overflow (în orice browser) este posibilitatea ca conținutul elementului să aibă bare de defilare sau să ascundă conținutul. Dacă există elemente cu margini negative sau poziționare absolută în părinte, acestea vor fi ascunse dacă se extind dincolo de părinte, așa că această metodă trebuie folosită cu atenție. De asemenea, trebuie remarcat faptul că, dacă elementul conținut ar avea o înălțime specificată sau o înălțime minimă, atunci cu siguranță nu ați putea folosi metoda de overflow.

Deci, nu este chiar ușor să rezolvi această problemă încrucișată. Dar aproape orice problemă de curățare a plutitorului poate fi rezolvată prin una dintre metodele de mai sus.

Erori de float asociate în Internet Explorer

De-a lungul anilor, au existat numeroase articole publicate online care discută despre erorile comune asociate cu float-urile în marcajul CSS. Toate, deloc surprinzător, se ocupă de probleme specifice Internet Explorer. Mai jos, veți găsi o listă de link-uri către o serie de articole care discută probleme legate de float:

Modificarea proprietății float folosind JavaScript

Pentru a modifica o valoare CSS în JavaScript, trebuie să accesați stilul obiectului prin conversia proprietății CSS intenționate într-un „caz Camel.” De exemplu, proprietatea CSS „margin-left” devine marginLeft, proprietatea background-color devine BackgroundColor , și așa mai departe. Dar cu proprietatea float, lucrurile stau diferit deoarece cuvântul float este deja rezervat în JavaScript. Prin urmare, următoarele vor fi incorecte:

Stil. styleFloat = "stânga" ;

// Pentru toate celelalte browsere

myDiv. stil. cssFloat = "stânga" ;

Utilizarea practică a Float

Float poate fi folosit pentru a rezolva o serie de probleme în marcajul CSS. Câteva exemple sunt descrise aici.

2 coloane, latime fixa

3 coloane, aspect cu înălțime egală

Imagine plutitoare cu titlu.

Similar cu ceea ce am discutat mai devreme în Float in Practice, Max Design descrie modul în care flotarea unei imagini cu un titlu permite textului să se înfășoare în jurul ei în mod natural.

Navigare orizontală cu liste neordonate

Proprietatea float este o componentă cheie în codificarea orizontală bazată pe sprite bare de navigare. Chris Spooner de la Line25 descrie crearea Menu of Awesomeness, care etichetează

  • , ținând apăsat butoanele de navigare, folosește float: left:

    Pentru a demonstra importanța proprietății float în acest exemplu, iată o captură de ecran a aceleiași imagini după ce ați folosit firebug pentru a elimina float: left:

    Galerii foto bazate pe grilă

    O simplă utilizare a proprietății float este să float:left o serie de fotografii conținute într-o listă neordonată, care produce același rezultat ca ceea ce ați vedea în marcajul tabelului.

    Pagina de produse Foremost Canada (vezi imaginea de mai sus) își afișează produsele într-un format de grilă lângă o bară laterală. Fotografiile sunt afișate ca o listă neordonată cu o proprietate float, pentru toți

  • elemente setate să plutească: stânga. Acest lucru funcționează mai bine decât o grilă de tabel, deoarece numărul de fotografii din galerie se poate schimba fără ca aspectul să fie afectat.

    Pagina futons a lui Paragon Furniture (vezi imaginea de mai sus) este un alt exemplu de pagină de produs care folosește o listă neordonată cu etichete plutitoare

  • .

    Pagina cu rezultatele căutării iStockphoto (vezi imaginea de mai sus) are aceeași grilă de fotografii structurate, aici fotografiile conțin float:left

    etichete, nu
  • Etichete.

    Aliniere câmpuri cu un buton

    Modelarea implicită a elementelor de formular pentru browsere diferite poate fi problematică. Adesea, într-un câmp de formular, cum ar fi un formular de căutare, trebuie să puneți element de lângă butonul „trimite”.

    Astăzi vă voi spune despre un astfel de parametru de articol în CS:GO ca valoare flotant sau valoare flotantă. Acesta este un număr zecimal până la 1. Cu cât acest număr este mai mare, cu atât mai mult zgâriat articolul va arăta ca. De ce este important să aflați ce valoare are un articol înainte de a cumpăra?

    Uite, au fost două de vânzare pe Steam Market astăzi la aproximativ acelasi pret. Dar unul avea plutitor 0,54 , si celalalt 0,81 .

    Este imediat evident că o pușcă cu mai puțin plutitor pare mult mai atractivă. Aș spune chiar că arată mai degrabă uzat decât întărit de luptă.

    Există cinci stări ale articolelor în total:

    • Urcat de luptă 1.00 – 0.44
    • Bine purtat 0.44 – 0.37
    • Testat pe teren 0.37 – 0.15
    • Uzură minimă 0.15 – 0.07
    • Nou din fabrică 0.07 – 0.00

    În consecință, al nostru AWP | Asimov (Marcat de luptă) cu valoare flotant 0,57 seamănă cu Uzat.
    Revânzătorii urmăresc, de asemenea, o valoare bună, deoarece un indicator bun al acestui parametru poate aproape dubla prețul unor articole.

    Deci, cum afli valoarea float în CS:GO?

    Dacă doriți să aflați numărul de articole din inventarul dvs., atunci site-ul web csgo.exchange vă va ajuta. Accesați site-ul, faceți clic pe butonul de conectare folosind Steam și așteptați până când site-ul vă încarcă inventarul (cu cât sunt mai multe articole, cu atât este nevoie de mai mult pentru încărcare). Apoi, arată doar armă și vezi valoarea.

    Cum să vizualizați valoarea flotantă pe piață?

    Nu cu mult timp în urmă am scris o recenzie a pluginului. Așadar, o altă caracteristică excelentă a acestui plugin este determinarea float-ului unui articol pe piață. După instalarea pluginului, lângă fiecare articol apare un link „Vizualizare pe glws”, la clic pe care vei fi dus la o pagină unde, printre altele, este indicat parametrul „WEAR_FLOAT”.

    Flotarea este, de asemenea, activată în mod implicit pe site-urile pentru vânzarea de skinuri. Ca Opskins.com.

    Pe lângă vizualizarea Float, vă sfătuiesc în continuare să vizualizați fiecare articol separat în joc sau pe site-ul metjm.net

    Mulțumesc că ai citit articolul. Sper că te-a ajutat. Dacă acesta este cazul, atunci voi fi bucuros să primesc orice bunuri de larg consum ca donație folosind link-ul. Mulțumesc .

    Determină la ce parte va fi aliniat elementul, cu alte elemente curgând în jurul lui pe celelalte laturi. Când proprietatea float este setată la none , elementul este redat pe pagină ca în mod normal, dar este permis ca o linie de text de împachetare să fie pe aceeași linie cu elementul însuși.

    informatie scurta

    Sintaxă

    float: stânga | dreapta | nici unul

    Denumiri

    DescriereExemplu
    <тип> Indică tipul valorii.<размер>
    A && BValorile trebuie să fie afișate în ordinea specificată.<размер> && <цвет>
    A | BIndică faptul că trebuie să selectați o singură valoare dintre cele propuse (A sau B).normal | litere mici
    A || BFiecare valoare poate fi folosită independent sau împreună cu altele în orice ordine.lățime || numara
    Grupează valori.[ recolta || cruce ]
    * Repetați de zero sau de mai multe ori.[,<время>]*
    + Repetați una sau mai multe ori.<число>+
    ? Tipul, cuvântul sau grupul specificat este opțional.medalion?
    (A, B)Repetați cel puțin A, dar nu mai mult de B ori.<радиус>{1,4}
    # Repetați o dată sau de mai multe ori, separate prin virgule.<время>#

    Valori

    stânga Aliniază elementul la stânga și toate celelalte elemente, cum ar fi textul, curg în jurul lui spre dreapta. dreapta Aliniază elementul la dreapta, cu toate celelalte elemente curgând în jurul lui spre stânga. none Învelișul elementului nu este specificat.

    Cutie cu nisip

    Winnie the Pooh nu s-a împotrivit întotdeauna la o mică răcoritoare, mai ales la unsprezece dimineața, pentru că la acea oră micul dejun se terminase de mult, iar prânzul încă nu începuse. Și, bineînțeles, a fost teribil de bucuros să vadă că Iepurele scoate cești și farfurii.

    img ( float: (( playgroundValue )) ; )

    Exemplu

    pluti

    Behaviorismul, oricât de paradoxal ar părea, luminează stimulul sublimat; de exemplu, Richard Bandler a folosit o schimbare a submodalităților pentru a construi stări eficiente.



    Rezultatul acestui exemplu este prezentat în Fig. 1.

    Orez. 1. Utilizarea proprietății float

    Model obiect

    Un obiect.style.cssFloat

    Notă

    În Internet Explorer 6, există o problemă cu dublarea valorii de umplutură la stânga sau la dreapta pentru elementele plutitoare care sunt imbricate în elementele părinte. Marja care este adiacentă laturii părintelui este dublată. Problema este de obicei rezolvată prin adăugarea display: inline la elementul plutit. Acest browser adaugă, de asemenea, padding de 3 pixeli (așa-numita „bucă de trei pixeli”) în direcția specificată de valoarea float.

    Specificație

    Fiecare specificație trece prin mai multe etape de aprobare.

    • Recomandare - Specificația a fost aprobată de W3C și este recomandată ca standard.
    • Recomandarea candidatului ( Recomandare posibilă) - grupul responsabil de standard este mulțumit că își îndeplinește obiectivele, dar necesită ajutor din partea comunității de dezvoltare pentru a implementa standardul.
    • Recomandare propusă Recomandare sugerată) - în această etapă documentul este înaintat Consiliului Consultativ W3C pentru aprobare finală.
    • Proiect de lucru - O versiune mai matură a unui proiect care a fost discutat și modificat pentru revizuire comunitară.
    • Schița redactorului ( Proiect editorial) - o versiune preliminară a standardului după ce au fost făcute modificări de către editorii de proiect.
    • Ciornă ( Proiect de specificație) - prima versiune a standardului.

    Browsere

    Browsere

    Următoarele notații sunt utilizate în tabelul browserului.

    Proprietatea CSS descrisă în detaliu pluti, sunt date caracteristici de aplicare și subtilități de utilizare, tipuri de poziționare a elementelor HTML.

    Aș dori să remarc că pentru începători cele de mai sus pot părea confuze și complicate, dar vă asigur că, fără să cunoașteți regulile de redare a elementelor într-un browser, nu veți deveni un bun layout designer. Prin urmare, vă sfătuiesc să aveți răbdare.

    Terminologie

    Pentru a evita orice ambiguitate, să cădem de acord asupra termenilor.
    Pluti(element plutitor) – sub pluti sau un element plutitor dintr-un articol înseamnă un element bloc cu un set de proprietăți CSS plutidreapta sau stânga.
    Box– termenul casetă se referă la un dreptunghi imaginar care cuprinde fiecare element de marcare HTML. În conformitate cu terminologia engleză, vom numi acest dreptunghi imaginar o cutie.
    Dacă nu este foarte clar despre box, atunci vă recomand cu tărie să vă familiarizați cu cutiile și proprietățile lor mai detaliat, deoarece acest termen este folosit destul de des în articol și, cel mai important, este baza tuturor aspectului HTML.
    Notă. Mai departe în text ne vom întâlni cuvinte subliniate. Astfel, vreau să atrag o atenție deosebită asupra unei anumite proprietăți sau calități a unui element.

    Tipuri de poziționare a elementelor HTML

    Pentru a prezenta clar cele de mai sus, trebuie să cunoașteți și principiile de bază ale afișării elementelor în documentele HTML.
    Potrivit w3.org, marcajul WEB utilizează trei aspecte de elemente în Document web X.
    Debit normal– În CSS 2.1, fluxul normal al unui document Web include elemente redate ca casete bloc, elemente formatate ca casete inline și poziționarea relativă a casetelor bloc și inline.
    Cu alte cuvinte, fluxul normal include elemente de aspect normal care nu au pluti, egal stanga dreapta, sau poziţie, egal absolut/fix .
    Pluti– un element plutitor este plasat mai întâi în conformitate cu regulile de amplasare în fluxul normal, apoi scos din acest flux și deplasat în linia sa la stânga sau la dreapta pe cât posibil.
    Înțelegeți clar această regulă importantă. Deoarece elementele plutitoare sunt derivate din fluxul normal al documentului, casetele cu flux normal nu le văd, dar casetele cu flux normal în linie le văd și curg pe o parte; casetele în linie, în special, includ textul normal al casetelor bloc. Aceasta înseamnă că, dacă, atunci când plasează cutii cu bloc de flux normal, acestea nu acordă nicio atenție prezenței cutiilor plutitoare, atunci conținutul acestor cutii (elemente inline) curge în jurul acestor elemente.
    Poziționare absolută– cu poziționare absolută, cutia este îndepărtată complet din fluxul normal (nu le afectează pe cele ulterioare) și este așezată față de poziția recipientului său, adică elementul în care este plasată.
    Mai multe despre fluxuri documente HTML poti citi in articol

    Diferențele dintre elementele de plutire și poziție

    La început, pentru orice eventualitate, permiteți-mi să vă reamintesc care este diferența dintre plutire ( pluti) și poziționat ( poziţie) elemente. Element poziționat relativ cu valoare poziție: relativă rămâne în fluxul normal al documentului, dar este deplasat față de poziția sa, alte elemente nu sunt afectate și rămân acolo unde erau. Acest lucru permite elementelor poziționate relativ să se suprapună elementelor din jur pe pagină. Dacă elementul are poziție: absolut; sau poziție:fixă;, apoi se scoate din fluxul normal si se aseaza dupa reguli absolute de pozitionare.
    Un element plutitor este întotdeauna îndepărtat din fluxul normal al documentului și afectează plasarea elementelor din jur.

    Acum să începem.

    Ce este plutitorul?

    „Float” este una dintre proprietățile CSS ale unui element de marcare bloc, datorită căreia elementul HTML este mutat în poziția extremă din stânga sau din dreapta disponibilă pentru plasare în containerul care conține acest element. Dacă în linia curentă lățimea recipientului nu este suficientă pentru a-l găzdui, acesta este mutat pe următoarea linie până se poate încadra. Rețineți că lățimea pluti elementul este determinat de conținutul său. În funcție de valoarea setată pluti, elementele inline pot curge în jurul unui astfel de element bloc de-a lungul uneia dintre laturile sale orizontale.
    Proprietate pluti poate accepta următoarele valori: nici unul(Mod implicit), stânga, dreapta și moșteniți.

    Reguli pentru desenarea elementelor flotante

    Ce se întâmplă când browserul întâlnește un element care are proprietatea pluti diferit de nici unul?
    La început, o astfel de cutie este plasată ca un element obișnuit, apoi este îndepărtată din fluxul normal și deplasată la stânga sau la dreapta până când întâlnește același pluti elementul sau chenarul containerului său părinte. Dacă nu mai rămâne suficient spațiu orizontal pentru un element, browserul îl mută pe următoarea linie a containerului său.
    Deoarece pluti element îndepărtat din fluxul normal, elemente bloc normale fără proprietăți setate pluti nu știu despre existența lui și sunt plasate în modul obișnuit, fiecare pe o linie nouă. Elementele de marcare în linie „vedeți” pluti cutie și curge în jurul ei de-a lungul unei laturi, în funcție de valoare - stânga sau dreapta.
    Pentru a demonstra clar ceea ce s-a spus, voi da următorul exemplu.

    Caseta normală 1.

    float div1.

    float div2.

    Caseta normală 2.

    Acesta este ceea ce va afișa browserul.

    Demonstrarea redării elementelor float

    Acum să ne dăm seama ce s-a întâmplat. Exemplul arată 4 blocuri, caseta1 și caseta2 sunt desenate implicit de browser, adică în flux normal, iar elementele interne au float = stânga. Pentru a face exemplul mai clar, am adăugat o culoare de fundal și o umplutură la blocuri. Deci, în final, blocurile implicite (1 și 4) au fost afișate ca de obicei, fiecare pe o linie nouă și ocupând întreaga lățime( deoarece aceasta este o captură de ecran a marcajului, lățimea casetelor este limitată de lățimea imaginii). Cele plutitoare (a 2-a și a 3-a) au fost extrase din fluxul normal (adică casetele 1 și 4 nu le văd, așa că „caseta normală2” începe sub prima de la începutul liniei) și mutate la marginea stângă a liniei. recipient. Și deși casetele normale de bloc nu văd casete plutitoare, caseta inline a ultimei casete (și acesta este textul său) vede casete plutitoare și curge în jurul lor pe partea dreaptă.
    După cum puteți vedea, totul este în conformitate cu algoritmul de randare de mai sus pluti elemente.

    Cum se folosește float

    Există două moduri principale de a folosi proprietatea pluti.
    Să ne uităm la ele.

    Încheierea textului în jurul unei imagini.

    Marcajul HTML utilizează adesea imagini și doar câteva elemente dreptunghiulare. Proprietatea float este utilizată pe scară largă pentru a se asigura că textul curge în jurul lor, mai degrabă decât cu linia care urmează aceste dreptunghiuri.

    Textul se înfășoară în jurul imaginii cu float:left

    Un exemplu de aspect de pagină cu text înfășurat în jurul unei imagini.

    CSS
    img.alignleft(float: stânga; margine: 0 10px 10px 0)

    În codul de mai sus există un element plutitor img iar textul de ambalare se află în interiorul aceluiași container p.
    Vă rugăm să rețineți că în Stiluri CSS a fost adăugată căptușeală în partea stângă și dreaptă a elementului plutitor. Este o practică obișnuită să adăugați spațiu între imagine și textul din jur.

    Aspecte de coloane

    Proprietate Pluti permite ca două elemente bloc să fie plasate unul lângă celălalt, mai degrabă decât să plece de la linie nouă. Această proprietate a elementelor plutitoare este foarte convenabilă de utilizat pentru a crea coloane într-un document. Pentru a obține un aspect cu 2 coloane, trebuie doar să setați float (adică setați proprietatea float) la două DIV.
    Un exemplu de creare a unui aspect cu 2 coloane folosind float.

    HTML
    ‹div id="wrapper"›
    ‹div id="coloana din stânga"›‹div›
    ‹div id="coloana-dreapta"›‹/div›
    ‹/div›

    CSS
    #coloana-stânga (float: stânga)
    #coloana-dreapta (float: stânga)

    În exemplu, ambele DIV interne sunt marcate la stânga, rezultând 2 coloane. De asemenea, trebuie să vă asigurați că lățimea totală a celor două coloane interioare (div) nu depășește lățimea casetei părinte, altfel a doua coloană va sări la Pozitie noua, sub prima coloană.
    Adăugând un antet div peste 2 coloane și un subsol div folosind proprietatea clar, veți obține un aspect simplu și frumos cu 2 coloane.

    Și încă un sfat. Setați întotdeauna lățimea elementului plutit; dacă nu o faceți, este posibil să aveți consecințe nedorite.

    Dezactivarea proprietății float

    Adesea când lucrezi cu pluti Poate fi necesar ca elementele de marcare ulterioare să fie plasate nu lângă cel curent plutitor, ci, ca de obicei, pe linia următoare, adică trebuie să reveniți la plasarea elementelor în conformitate cu fluxul normal.
    Acest lucru se realizează adesea folosind proprietatea clar. Proprietate clar ia valori stânga, dreapta, ambele, niciunul(implicit) și moşteni. În practică, se folosesc primele 3 valori, iar în marea majoritate a cazurilor le vei folosi clar: ambele.
    Cel mai adesea, poate, clar folosit pentru a seta subsolul paginii sub cele 2 sau 3 coloane plutitoare.


    Atenție. Când este folosit după un element plutitor într-o cutie nouă, regulile cu clar, readuceți această cutie la fluxul normal, dar în același timp proprietatea ei margine-topîncetează să funcționeze. Această situație este adesea corectată prin plasarea unui div gol cu ​​proprietatea în fața casetei necesare în fluxul normal clar

    . Pentru a fi corect, trebuie remarcat faptul că această tehnică este considerată corectă din punct de vedere tehnic, dar incorectă din punct de vedere semantic, deoarece apare gol în document div recipient.

    Container cu elemente plutitoare

    Primul lucru pe care trebuie să-l faceți atunci când utilizați un container pentru elemente plutitoare este să vă asigurați că containerul este suficient de lat pentru a se potrivi cu elementele unul lângă celălalt. Dacă setați proprietatea a două elemente plutește la stânga pentru a crea un aspect cu 2 coloane, iar lățimea totală a elementelor este mai mare decât lățimea containerului, atunci unul dintre elemente va sări la linia următoare. Acest lucru se va întâmpla deoarece a doua coloană nu va avea suficient spațiu pentru a sta în caseta părinte de lângă prima coloană. Mai jos sunt imagini care ilustrează această situație.

    S-a menționat anterior că elementele plutitoare sunt îndepărtate din fluxul normal al documentului. Acest lucru duce la o problemă interesantă și confuză atunci când toate elementele din interiorul containerului plutesc. Acest lucru se observă de obicei, de exemplu, atunci când se află în containerul div antet pagini web există o imagine de logo cu proprietatea plutește la stânga. În antet, de asemenea, folosind de obicei proprietatea imagine de fundal orice imagine de fundal. În total, avem un container în flux normal care conține un element plutitor și un element gol în flux normal, deoarece imaginea este afișată în fundal. Problema este că antetul div conține singurul element care nu este gol - o imagine de logo plutitoare care a căzut din fluxul normal. Deci browserul consideră că antetul div este gol și își setează înălțimea la zero. Ei spun adesea că containerul s-a prăbușit. Există mai multe modalități de a rezolva această problemă. Puteți seta în mod explicit înălțimea div-ului containerului să nu fie mai mică decât înălțimea imaginii. Acest lucru ar funcționa bine cu un titlu ca exemplul de mai sus, dar nu este întotdeauna posibil din mai multe motive. Uneori adăugarea unui div gol cu ​​un set de proprietăți clar astfel încât următoarele elemente să nu plutească.

    HTML
    ‹div class="clear"›‹/div›

    CSS
    .clear ( clar: ambele; )

    Acest lucru este convenabil dacă vi se permite să aveți un spațiu gol după elementele plutitoare, deoarece... Unele browsere pentru div-uri goale pot avea valori finale implicite pentru înălțime, margine, umplutură etc.
    Există, de asemenea, o metodă de utilizare a proprietății revărsareîn elementul părinte. De obicei folosit debordare: ascuns, dar în funcție de situație poți folosi preaplin: automat sau preaplin-yîn loc să folosiți această proprietate în ambele direcții. Folosind proprietatea revărsare Protejează containerul părinte împotriva prăbușirii.

    Probleme cu plutitoarele

    Pe lângă problema prăbușirii containerului, proprietatea plutitoare are o serie de alte probleme.
    Vechi versiuni de internet Explorer are o eroare dublă de indentare ( marginea). Dacă elementele sunt zburate în aceeași direcție și se adaugă și elementele margineaîn aceeași direcție (stânga/stânga sau dreapta/dreapta), IE dublează valoarea marginea. O soluție simplă stabilește proprietatea display: inline pentru un element plutitor, apropo, această proprietate ajută la scăderea altor bug-uri ale măgarului dăunător. În plus, puteți utiliza comentarii condiționate pentru a seta anumite marginea pentru IE sau pentru versiuni individuale de IE.
    O altă problemă este adăugarea de elemente în interiorul unui element plutitor, iar lățimea elementelor adăugate este mai mare decât lățimea containerului. Puteți, de exemplu, să adăugați o imagine în interiorul unui element plutitor, iar lățimea imaginii este mai mare decât lățimea containerului. În funcție de browser, acest lucru poate duce la ca elementul dvs. flotant să fie mai lat decât s-a prevăzut sau ca conținutul să se suprapună cu imaginea dvs. Asigurați-vă că elementele din interiorul elementului plutit nu depășesc lățimea elementului plutit.
    Există, de asemenea, o problemă cu căptușeala de jos dispare ( margine-fond). Umplutura inferioară a unui element plutitor în interiorul altor elemente plutitoare poate fi ignorată. Soluția este folosirea căptușealăîn loc de marginea, dacă se întâmplă acest lucru.

    Rezumat pe plutitor

    La învăţarea CSSÎncepătorii gravitează spre poziționarea absolută și relativă pentru că par mai ușori. Dar, de obicei, cea mai bună practică este să folosiți float. Dacă vă amintiți câteva puncte cheie, veți fi pe cale să înțelegeți și să gestionați elementele plutitoare din machetele dvs.

    • Elementele flotante sunt așezate în fluxul normal al documentului, apoi sunt deplasate la stânga sau la dreapta în cadrul elementului părinte în funcție de valoarea flotantă și sunt eliminate din fluxul normal al documentului.
    • Etichete cu valori setate pluti devin automat elemente de bloc.
    • Cutii bloc cu instalate pluti aşezate unul lângă altul atâta timp cât există suficient spaţiu pentru ei. Dacă nu există suficient spațiu în container, acestea vor apărea sub elementele plutitoare.
    • Lățimea cutiei cu proprietățile setate pluti determinat de lăţimea conţinutului său. Este recomandat să setați lățimea pentru elementele plutitoare atunci când marcați, altfel rezultatul poate fi imprevizibil.Recomandarea nu se aplică imaginilor, deoarece lățimea este implicită pentru acestea.
    • Elementele plutitoare și poziționate sunt diferite și se comportă diferit. Nu poți folosi proprietăți plutiȘi poziţieîntr-un singur element.
    • Pentru a reseta proprietatea de împachetare pentru elementele ulterioare, utilizați proprietatea CSS clar.
    • Pluti boxul este scos din firul principal, astfel încât elementele blocului din firul normal sunt așezate ca și cum nu ar fi acolo, dar cutiile inline ale acelor elemente fac loc blocului plutitor.
    • Un container cu elemente exclusiv plutitoare are înălțime zero, deoarece elementele float sunt scoase din fluxul normal, astfel încât părintele îl consideră gol. Există modalități de a combate acest efect fără markup suplimentar; vă puteți familiariza cu ele, de exemplu,.
    • Spre deosebire de elementele principale ale fluxului, marginile verticale pluti casetele nu se contopesc cu limitele blocurilor învecinate.
    • Găsiți soluțiile care se potrivesc cel mai bine nevoilor dvs. pentru a rezolva problemele cu elementele flotante afișate corect în Internet Explorer.

    Sper că cele de mai sus vă vor ajuta să clarificați o confuzie când folosind CSS proprietăți pluti.