0

我在我的网站 ( https://mypleaks.com ) 上沿着 bootstrap 5 和 angular 13 新实现了砌体。

我从https://getbootstrap.com/docs/5.1/examples/masonry/引用了示例并添加了<script src="https://cdn.jsdelivr.net/npm/masonry-layout@4.2.2/dist/masonry.pkgd.min.js" integrity="sha384-GNFwBvfVxBkLMJpYMOABq3c+d3KnQxudP/mGPkzpZSTYykLBNsZEnG2D9G/X/+7D" crossorigin="anonymous" async></script>

我已经动态创建了如下卡片:

<div class="container-lg content-container mt-lg-5 pr-lg-3 pl-lg-3 pt-lg-2 mt-3 p-0">
    <div class="row" data-masonry='{"percentPosition": true }' style="position: relative; height: 1068px;">
        <div class="col-sm-6 col-lg-4 mb-4" *ngFor="let content of contentList">
            <div class="card" [class.remove-card-border]="content.contentType === advertisement">
                <img *ngIf="content.attachments" [src]="content.attachments[0].identifier" class="card-img-top">
                <div *ngIf="content.contentType != advertisement" class="card-body">
                    <h5 class="card-title">{{ content.title }}</h5>
                    <p class="card-text">{{ content.contentText }} <a [href]="content.externalUrl" class="text-nowrap" target="_blank">read more</a></p>
                    <div class="btn-toolbar d-flex justify-content-center" role="toolbar" aria-label="Toolbar with button groups">
                        <div class="btn-group mr-3 input-group" role="group" aria-label="First group" ngbTooltip="good enough, people should know">
                            <button type="button" [disabled]="evaluationClicked" class="btn btn-success" placement="top"
                            (click)="upVote(content); evaluationClicked = true;"><i class="fa fa-thumbs-up" aria-hidden="true"></i></button>
                            <div class="input-group-prepend">
                                <div class="input-group-text">{{content.promoteCount}}</div>
                            </div>
                        </div>
                        <div class="btn-group ml-3 input-group" role="group" aria-label="Second group" ngbTooltip="fake or not good enough">
                            <div class="input-group-prepend">
                                <div class="input-group-text">{{content.rejectCount}}</div>
                            </div>
                            <button type="button" [disabled]="evaluationClicked" class="btn btn-danger" placement="top"
                            (click)="downVote(content); evaluationClicked = true;"><i class="fa fa-thumbs-down fa-flip-horizontal" aria-hidden="true"></i></button>
                        </div>
                    </div>
                </div>
                <div *ngIf="content.contentType === advertisement" class="d-flex justify-content-center">
                    <app-google-ads></app-google-ads>
                </div>
            </div>
        </div>
    </div>
</div>

不知何故,样式未在 myPleaks 上更新,类似于引导示例,请参阅下面的片段 myPleaks 上的样式未更新

引导示例 在引导示例中更新样式

提前感谢您的帮助。

4

1 回答 1

0

而不是masonry-layout直接使用,我使用ngx-masonry. 以下是 package.json 依赖项。并参考这里的文档

"masonry-layout": "^4.2.2",
"ngx-masonry": "^13.0.0"

在 app.module.ts 中添加以下模块 在此处输入图像描述

将动态代码包装在标签<ngx-masonry [options]="myOptions">中,并在组件实现中添加以下配置。

public myOptions: NgxMasonryOptions = {
gutter: 10};
于 2021-12-28T18:12:31.180 回答