【问题标题】:Masonry not working with bootstrap 5 and angular 13砌体不适用于 bootstrap 5 和 angular 13
【发布时间】:2022-01-26 23:19:23
【问题描述】:

我在我的网站 (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 上的样式未更新,类似于 bootstrap 示例,请参阅下面的 sn-ps

bootstrap example

提前感谢您的帮助。

【问题讨论】:

    标签: bootstrap-5 angular-components masonry angular-masonry


    【解决方案1】:

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

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

    在 app.module.ts 中添加以下模块

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

    public myOptions: NgxMasonryOptions = {
    gutter: 10};
    

    【讨论】:

      猜你喜欢
      • 2015-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-07
      • 2022-06-20
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多