Sunt oricare dintre aceste metode preferate de un web designer profesionist?
Sunt oricare dintre aceste metode prefereed de catre un web-browser-ul atunci când se elaborează site-ul?
Asta e doar o preferință personală?
Există și alte tehnici de am'm a dispărut?
Notă: întrebările de mai Sus în ceea ce privește proiectarea unui multi-column layout
Aceasta este metoda pe care eu o folosesc mereu atunci când crearea de machete de coloană, și se pare să funcționeze bine. Părintele se prăbuși pe sine, deși, astfel încât aveți nevoie doar să vă amintiți să clar:atât;
după aceea. Alt con pe care am găsit a fost incapacitatea de a alinia textul pe verticală.
Acest lucru pare a corecta problema de colaps părinte, dar adaugă spațiu.
1/Eliminând spațiile albe de la html pare a fi cel mai simplu de a rezolva această problemă, dar nu este de dorit dacă sunt foarte pretentios despre html.
2/Pare să se comporte exact ca display:inline;
.
Funcționează perfect.
Am'sunt sigur că am'm lipsesc o grămadă de lucruri, cum ar fi anumite excepții, care va rupe structura, dar care, display:table-cell;
pare să funcționeze cel mai bine, și cred că va începe înlocuirea float:stânga;
ca intotdeauna mi-am par să încurce pe clear:both;`. Am'am citit multe articole si bloguri despre asta pe internet, dar nici unul dintre ei dă-mi un răspuns clar cu privire la ceea ce ar trebui să utilizați atunci când de stabilire afară site-ul meu.
De opțiuni ați întrebat despre:
float:stânga;
Marcare suplimentare pentru compensare poate să nu fie necesară dacă utilizați :după
selector pentru a șterge pluteste, dar nu't o opțiune, dacă doriți să sprijine IE6 sau IE7.
display:inline;
Acest lucru ar trebui't fi utilizate pentru aspect, cu excepția IE6/7, unde display:inline; zoom:1
este o cădere pe spate hack de spart suport pentru inline-block
.
display:inline-block;
Aceasta este preferata mea opțiune. Aceasta funcționează bine și în mod constant în toate browserele, cu un avertisment pentru IE6/7, care susțin că pentru unele elemente. Dar a se vedea mai sus pentru hacky soluție pentru a lucra în jurul valorii de acest lucru.
Celălalt mare opoziție cu inline-block
este că, din cauza inline aspect, spații albe între elemente sunt tratate la fel ca spații albe între cuvinte din text, astfel încât să puteți obține golurile care apar între elemente. Există improvizații la acest lucru, dar nici unul dintre ele sunt ideale. (cel mai bun este pur și simplu pentru ca să nu existe spații între elemente)
display:table-cell;
masă " și " tabel-rândul
; folosind masa de celule în izolare nu este destinat mod de a face asta, așa că pot experimenta diferite browsere tratează diferit.Alte tehnici pe care le-ai ratat? Da.
Când vă spun acest lucru este pentru un multi-aspect coloană, există o CSS Coloane feature pe care ați putea dori să știți despre. Cu toate acestea nu e't mai bine susținută caracteristică (nu este suportat de IE chiar în IE9, și un furnizor prefix cerute de toate celelalte browsere), astfel încât este posibil să nu doriți să-l folosească. Dar aceasta este o altă opțiune, și i-ai cerut.
Nu's, de asemenea, CSS FlexBox caracteristică, care este destinat pentru a vă permite să text care curge de la cutie la cutie. L's o caracteristică interesantă, care vă va permite unele machete complexe, dar acest lucru este încă foarte mult în dezvoltarea -- vezi http://html5please.com/#flexbox
Sper că vă ajută.
Eu folosesc de obicei float: stânga;
și se adaugă overflow: auto;
a [a rezolva colaps părinte problema][1] (de ce acest lucru funcționează, overflow: auto
va extinde părinte în loc de a adăuga barele de derulare dacă nu-l dau explicit înălțime, overflow: ascuns
funcționează la fel de bine). Cele mai multe dintre aliniere verticală are nevoie am avut eu pentru [o linie de text în barele de meniu][2], care pot fi rezolvate folosind line-height
de proprietate. Dacă am într-adevăr nevoie pentru a alinia vertical un element de bloc, am'd set explicit înălțime pe părinte și aliniate vertical articol, poziția absolută, mai sus de 50%, iar marja negativă.
Motivul pentru care am don't folosi display: table-cell` este modul în care se revarsă atunci când aveți mai multe elemente decât site-ul's lățimea poate descurca. masa de celule va forța utilizatorului pentru a defila pe orizontală, în timp ce plutește va încheia meniul preaplin, făcându-l mai ușor de utilizat, fără a fi nevoie pentru derulare pe orizontală.
Cel mai bun lucru despre float: stânga și overflow: auto este că funcționează tot drumul înapoi la IE6 fara hacks, probabil, chiar mai departe.
Am'd spun asta depinde de ce ai nevoie:
Dacă aveți nevoie de ea doar pentru a obține 3 coloane aspect, am'd sugerez să o faci cu "float".
Dacă aveți nevoie de ea pentru meniu, puteți folosi inline-block`. Pentru spațiu problemă, puteți folosi câteva trucuri descrise de Chris Coyier aici http://css-tricks.com/fighting-the-space-between-inline-block-elements/.
Dacă aveți nevoie pentru a face o alegere multiplă opțiune, care lățimea trebuie să se răspândească uniform în interiorul o anumită casetă, apoi m-am'd prefer display: table
. Acest lucru nu va funcționa corect în unele browsere, așa că depinde de browser-ul de sprijin.
În cele din urmă, ceea ce ar putea fi cea mai bună metodă este folosind flexbox
. Spec pentru acest lucru s-a schimbat de câteva ori, așa că'nu e stabil încă. Dar, odată ce acesta a fost finalizat, acest lucru va fi cea mai buna metoda cred.
Prefer inline-block, deși float este, de asemenea, util. Masa de celule e't prestate în mod corect de vechi IEs (nici inline-block, dar nu's zoom: 1; *display: inline
hack care o folosesc frecvent). Dacă aveți copii care au o înălțime mai mică decât părinții lor, plutește le va aduce la partea de sus, întrucât inline-block va bară uneori.
Cele mai multe din timp, browser-ul va interpreta totul corect, cu excepția cazului, desigur,'s IE. Întotdeauna trebuie să verificați pentru a vă asigura că IE nu't suge-de exemplu, masa de celule concept.
În realitate, da, totul se reduce la o preferință personală.
O tehnica ai putea folosi pentru a scapa de spațiu alb ar fi să setați o font-size
de la 0 la mamă, apoi da font-size
înapoi la copii, deși asta's un hassle, și brut.
Pentru a înregistra numai, pentru a adăuga la Pitic's a răspunde, există, de asemenea, posibilitatea de a utiliza position: absolute și marjele dacă știi lățimile coloanelor.
Pentru mine, principala problemă atunci când chossing o metodă este dacă aveți nevoie de coloane pentru a umple întreaga înălțime (înălțimi egale), în cazul în care masa de celule este cea mai simplă metodă (dacă nu't pasă prea mult pentru browsere mai vechi).
Prefer inline-block
, dar "float" sunt încă util mod de a pune împreună HTML elemenets, în special atunci când avem elemente care ar trebui să rămânem la stânga și unul la dreapta, float lucrează mai bine cu scrisul mai puțin de linii, în timp ce inline-block funcționează bine în multe alte cazuri.