你可以使用display:table-cell并且有一个固定的宽度/高度?

Cod*_*bat 19 html css css-tables

我有以下内容:

CSS:

.photo {
  overflow: hidden;
  display: table-cell;
  vertical-align: middle;
  text-align: center;
  width: 100px;
  height: 100px;
}
Run Code Online (Sandbox Code Playgroud)

HAML

.photo
  %img{:src => my_url}
Run Code Online (Sandbox Code Playgroud)

这里查看jsFiddle .我用来演示的图像是150px×80px.

我需要在.photodiv中显示图像并裁掉任何多余的图像.图像需要垂直和水平居中.但是,display:table-cell导致.photodiv忽略我的宽度和高度设置.我怎么能绕过这个?

Mat*_*Cat 20

table-cell 不是垂直对齐的唯一解决方案.

.photo {
    overflow: hidden;
    background: #c0c0c0;
    display:inline-block; /* or float:left; */
    text-align: center;
    width: 100px;
    height: 100px;
    line-height:97px;
}
.photo img {
    vertical-align:middle;
    max-width:100%;
    max-height:100%;
}
Run Code Online (Sandbox Code Playgroud)

  • 这种方法的缺点是“.photo”需要固定的高度和宽度。 (2认同)

小智 5

您可以使用display: table-cell但父级需要具有display: table-row该行的父级display: table;