2016-08-04 23 views
0

Ich möchte ein Element abschneiden, wenn der Inhalt seiner Kinder zu groß ist, aber es funktioniert nicht in display:table-cell Elemente. Hier ist ein Beispiel auf JsFiddle:CSS-Anzeige: Tabellenzelle, eingestellte Höhe und Überlauf: versteckt, funktioniert nicht?

JSFiddle

.table{ 
 
    display: table; 
 
    table-layout: fixed; 
 
    width: 100%; 
 
    height:200px; 
 
} 
 
.cell{ 
 
     display: table-cell; 
 
     vertical-align: top; 
 
     position: relative; 
 
     height:200px; 
 
     overflow:hidden; 
 
} 
 
.container{ 
 
    height:100%; 
 
    background-color:red; 
 
} 
 
.container img{ 
 
    display:block; 
 
}
<div class="table"> 
 
    <div class="cell"> 
 
     <div class="container"> 
 
      <img src="http://img5.imgtn.bdimg.com/it/u=172690696,3532821463&fm=206&gp=0.jpg" /> 
 
      <img src="http://img5.imgtn.bdimg.com/it/u=172690696,3532821463&fm=206&gp=0.jpg" /> 
 
      <img src="http://img5.imgtn.bdimg.com/it/u=172690696,3532821463&fm=206&gp=0.jpg" /> 
 
     </div> 
 
    </div>

jemand bitte sagen, wo bin ich falsch? Vielen Dank!

+0

Sie können nicht die Höhe der 'Anzeige gelten. Wenden Sie stattdessen die Höhe auf das Element ".container" an. wie '.container {height: 200px}'. –

Antwort

1

, damit es funktioniert, müssen wir Position verwenden: relative für Tisch und position: absolute für Tabellenzelle Artikel. Auch in Ihrem Code habe ich die Höhe des Containers entfernt: 100%, was nutzlos ist. Hier ist die Vorschau und fiddle. Tisch cell` Behälter:

.table{ 
 
    display: table; 
 
    table-layout: fixed; 
 
    width: 100%; 
 
    height:200px; 
 
    position: relative; 
 
} 
 
.cell{ 
 
     display: table-cell; 
 
     vertical-align: top; 
 
     position: absolute; 
 
     height:200px; 
 
     width: 100%; 
 
     overflow-y:scroll; 
 
     overflow-x: hidden; 
 
} 
 
.container{ 
 
    background-color:red; 
 
} 
 
.container img{ 
 
    display:block; 
 
}
<div class="table"> 
 
    <div class="cell"> 
 
     <div class="container"> 
 
      <img src="http://img5.imgtn.bdimg.com/it/u=172690696,3532821463&fm=206&gp=0.jpg" /> 
 
      <img src="http://img5.imgtn.bdimg.com/it/u=172690696,3532821463&fm=206&gp=0.jpg" /> 
 
      <img src="http://img5.imgtn.bdimg.com/it/u=172690696,3532821463&fm=206&gp=0.jpg" /> 
 
     </div> 
 
    </div>

+0

Ich weiß, wie ich die Frage lösen kann, ich weiß nicht, warum ich die Höhe einstelle, und setze Überlauf, aber es funktioniert nicht ... – Perhaps

-1

ändern Sie Ihre CSS-Display-Typ.

.table{ 
    display:block; 
    width: 100%; 
    height:200px; 
} 
.cell{ 
    display:block; 
    vertical-align: top; 
    position: relative; 
    height:200px; 
    overflow:hidden; 
} 
.container{ 
    height:100%; 
    background-color:red; 
} 
.container img{ 
    display:block; 
} 

fiddle here

Verwandte Themen