我正在编写一个组件,它接受@Input()中的TemplateRef,并将其呈现在组件中的某个位置.模板出现在容器div中,该容器div具有不一定与模板的纵横比匹配的给定宽度和高度.我的目标是拉伸(扭曲)模板以适应容器.

<div class="box-content box-background box-template-container">
    <ng-container *ngTemplateOutlet="boxTemplate; context: { box: box }">
    </ng-container>
</div>

我在SCSS中找到了使其发挥作用所必需的东西:

.box-template-container {
    > ::ng-deep * {
        transform-origin: top left;
        transform: scale(1, 2);
    }
}

问题是,只有当容器的高度是模板的两倍时,这才有效,所以我需要以某种方式使2动态.这就是我正在寻找但又找不到的东西.挑战是::ng-deep部分,比例值是我可以在函数中计算的东西.

有没有人知道怎么做,或者知道更好的方法?

我创造了一个Stackblitz来证明

推荐答案

不确定模板中应该包含什么内容,但总的来说,这种方法感觉是错误的.

也许这样的事情应该就足够了:

.box-template-container::ng-deep > * {
  width: 100%;
  height: 100%;
}

或更复杂的问题:

.box-template-container {
  position: relative;
}

.box-template-container::ng-deep > * {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

Html相关问答推荐

在Apps Script中连接CSS与HTML

如何才能只给没有孟加拉语Kar符号的字母上色?

在 Select 前后更改选项卡的背景

如何阻止Chromecast图标出现在HTML5视频

如何修复与导航栏重叠的css网格?

我希望创建一个对角手风琴与不同的内容(文本和图像)在其正常状态和其他元素悬停

如何用等宽字体固定数字在有序列表中的位置

响应网格,响应调整大小以适应父div,保留父div S自己的响应高度

如何使用CSS创建文件夹选项卡的形状?

有没有什么方法可以很容易地给一个SVG一个插框阴影?

Chatbox底部显示新消息,并向上推送旧消息

为什么字体大小而不是 colored颜色 属性适用于元素?

配置了 HTML 视口的 Google Apps 脚本移动网络应用程序无法正确显示

Django 如何从文件系统下载文件?

为什么我的 div 元素没有形成一个圆形时钟?

CSS:第一个类型的伪类没有按预期工作

父背景仅在子元素中可见

font awesome 的 CDN/CSS 如何工作?

如何突出显示 .qmd html 文件中的特定代码行

是否可以使用纯 css 创建具有斜角效果的锯齿形边缘?