如何让 Angular Material Design 的 <md-card> 指令在 IE 中正确缩放为图像?
Posted
技术标签:
【中文标题】如何让 Angular Material Design 的 <md-card> 指令在 IE 中正确缩放为图像?【英文标题】:How to get Angular Material Design's <md-card> directive to scale to image properly in IE? 【发布时间】:2015-01-23 19:40:14 【问题描述】:我已经在material.angularjs.org 网站上以possible issue 的形式发布了此内容,但我想在此处发布此内容,以防有我应该知道的基于 CSS 的解决方案。
我正在尝试创建一个“砌体布局”,其中有多列不同尺寸的图像。我正在尝试使用卡片来保存每个图像,并且在 Chrome 和 Firefox 中它的工作方式完全符合我的预期。卡片缩放到窗口(使用 flex),图像缩放匹配卡片的大小。然而,在 IE 11 上,卡片的高度似乎与图像的实际高度保持一致,即使它被缩小到更小的尺寸。我创建了一个演示问题的 Codepen:
http://codepen.io/sstorie/pen/myJWxQ
<body ng-app="materialApp" layout-fill>
<div ng-controller="AppCtrl" layout='column'>
<md-toolbar class='md-medium-tall'>
<div class="md-toolbar-tools">
<span>Fixed to Top</span>
</div>
</md-toolbar>
<div class='md-padding' layout="row" flex>
<div layout="row" flex>
<div layout="column" ng-repeat="photoColumn in data.photos3p" flex>
<md-card class="card" data-ng-repeat="photo in photoColumn">
<img ng-src="photo.path">
</md-card>
</div>
</div>
</div>
</div>
</body>
...这是我添加的唯一非物质 CSS:
.card img
width: 100%;
height: auto;
这是在 Chrome 中运行的示例。请注意卡片的宽度和高度与图像相关:
...但这是 IE11 中的结果。您可以在 IE 中看到水平方向的图像会缩小其高度以适应卡片的宽度,但卡片的高度不会随之缩小。它仍然是图像的高度。
是否有针对此类问题的 CSS 修复,或者更多的是 <md-card>
指令的实现方式存在问题?
明确地说,我意识到这个库是一项正在进行的工作,到目前为止我很喜欢它。我只是不擅长 CSS,所以不确定这是否是我可以解决的问题,或者我是否需要等待材料代码中解决问题。
【问题讨论】:
FWIW,我有另一个例子,我使用的是 元素,而不是使用在 vero eos et accusamus et iusto odio dignissimos ducimus
你的问题只是纯 CSS,因为 IE 不能很好地处理“height: auto”,你需要提供一些具体的值......
所以,这是您的解决方案:
.parent
display: block;
.card img
width: 100%;
height: 100%;
display: inline-block;
祝你好运!
【讨论】:
以上是关于如何让 Angular Material Design 的 <md-card> 指令在 IE 中正确缩放为图像?的主要内容,如果未能解决你的问题,请参考以下文章
Angular 2 Material - 如何居中进度微调器
如何让 Angular Material Design 的 <md-card> 指令在 IE 中正确缩放为图像?
Angular Material Table - CSS 在文本换行时让标题左对齐
如何在 Angular Material 中创建自定义输入错误
[Angular Material完全攻略] Day 04 - MatButton、MatButtonToggle和MatRipple