md-card-image with overflow:hidden + max-height杀死100%宽度

时间:2017-04-20 18:18:05

标签: css angular angular-material

使用Angular 2,我尝试使用

部分显示封面图像
img[md-card-image] {
   hidden: overflow;
   max-heigth: 160px;
}

但是,Angular决定在溢出期间将图像装入内部。我似乎无法弄清楚如何让图像填满卡片的整个顶部。

cover image not 100%

修改1

如果我不使用上面的css,而是将包裹我的封面图像的div更改为margin-bottom: -50%;,将文本移到图像顶部;但是,在这种情况下,我无法设置卡上内容的背景。对于在图像上运行的文本部分。

1 个答案:

答案 0 :(得分:1)

经过几天尝试不同的事情,我终于想出了一个解决方案。我不得不删除md-card-image并使用div手动执行此操作。我想在将hidden: overflow添加到容器时,材料设计css正在弄乱它,导致问题。

这就是它的样子:

solution

我对素材卡的造型:

md-card {
    padding: 0px;
    margin: 20px;

    .cover-wrapper {
        width: 100%;
        height: 160px;

        .cover-image {
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-size: cover;
        }
    }

    .cover-footer {
        background-color: rgba(255, 255, 255, 0.5);
        margin: -50px 0px 0px 0px;
        padding: 10px;

        div[md-card-title] {
            font-weight: bold;
            width: 100%;
            font-size: $font-size-large;
        }
    }
}

素材卡的html:

<md-card class="mat-elevation-z2" mat-whiteframe="8" fxLayout="column">
    <div class="cover-wrapper" fxFlex>
        <div class="cover-image" [style.background-image]="'url(' + _cover + ')' | safeStyle"></div>
    </div>
    <div class="cover-footer" fxFlex>
        <div md-card-title fxFlex>{{ _title }}</div>
    </div>
    <md-card-content>
        <div [innerHtml]="_text | safeHtml" id="markdown"></div>
    </md-card-content>
</md-card>