2016-05-12 10 views
9

Mam pewne pytanie dotyczące klas mediów w bootstrap.Dlaczego klasa media-body w bootstrapie ma szerokość 10.000 pikseli, a klasa medialna ma przepełnienie ukryte i powiększenie 1?

  1. Dlaczego klasa .media-body w bootstrapie ma szerokość 10.000px? Dlaczego skorzystali z display: table-cell, a nie display: block?
  2. Dlaczego overflow: hidden i zoom: 1 używane są w klasie .media?
  3. Dlaczego div z .media-body rzeczywiście nie ma szerokości 10.000 pikseli?
  4. Co by się stało, gdyby overflow: hidden i zoom: 1 nie były używane w klasie .media?

Co do mojego wysiłku, usunąłem szerokość overflow, zoom i 10,000px i nie zaobserwowałem żadnej różnicy.

Odpowiedz

2

Znalazłem kilka uwag w kolekcji "Responsive Bootstrap":

/* 
* 1. Create new block formatting context in modern browsers 
* 2. Avoid shrink-wrap behaviour of table-cell 
* 3. Override for IE6/7 
* 4. Create new block formatting context in IE6/7 
* Alternatively, use 'overflow:hidden' if clipping is OK 
*/ 
display: table-cell; /* 1 */ 
width: 10000px; /* 2 */ 
@include old-ie() { 
    *width: auto; /* 3 */ 
    *zoom: 1; /* 4 */ 
} 

UPD

*zoom jest hack dla IE6 i IE7. Wszystkie przeglądarki ignorują atrybuty rozpoczynające się gwiazdką. Tylko IE7 i poniżej bierze je pod uwagę.

+2

Czy możesz podać wyjaśnienie tych punktów? Podobnie jak zachowanie _shrink-wrap_? Jaka jest różnica między '* zoom' i' zoom'? – user31782

+0

@ user31782 '* zoom' jest hackerem dla IE6 i IE7. Wszystkie przeglądarki ignorują atrybuty rozpoczynające się gwiazdką. Tylko IE7 i poniżej bierze je pod uwagę. –

+1

Ale w moim 'bootstrap.css' nie używają' * zoom' w klasie '.media'. Jest to linia 5207 pliku źródłowego. Napisał '.media-body { overflow: hidden; zoom: 1; } ' – user31782