html - 我的 div 元素忽略了带有长文本的 CSS 样式

标签 html css sass

我有一个设置为特定宽度的元素列表。但是,无论出于何种原因,具有大量文本的元素都忽略了 CSS 以使其更长。

<ion-view view-title="Events">
<ion-content class="events-body">
    <div ng-repeat="month in vm_events.months | orderBy: 'monthNum'">
        <div class="card">
            <div class="item item-divider">
                {{month.monthName}}
            </div>
            <div class="card eventCard"
                 ng-repeat="event in vm_events.events | filter: {month: month.monthName} | orderBy: 'orderBy'"
                 ui-sref="app.events.event-details({eventID: event.id})">
                <ion-item ui-sref="app.events.event-details({eventID: event.id})">
                    <div class="flex-container eventDay">
                        <div class="flex-item left" ui-sref="app.events.event-details({eventID: event.id})">
                            <div class="flex-item day" ng-show="event.day">{{event.day}}</div>
                            <div class="flex-item tbd" ng-hide="event.day">TBD</div>
                            <div class="flex-item dayOfWeek">{{event.weekday}}</div>
                        </div>
                        <div class="flex-item right eventSummary">
                            <div class="name">
                                {{event.name}}
                            </div>
                            <div class="flex-container timeAndPlace">
                                <div class="flex-item place">{{event.location}}</div>
                                <div class="flex-item time">{{event.start}}</div>
                            </div>
                        </div>
                    </div>
                </ion-item>
            </div>
        </div>
    </div>
</ion-content>
</ion-view>

这是 scss。

.events-body {
font-weight: 100;


.card {
    margin: 0;
    border-radius: 0;
    padding-bottom: 8px;
    box-shadow: none;

    .item.item-divider {
        height: 20px;
        min-height: 0;
        border-radius: 0;
        padding: 0 0 0 16px;
        background-color: #909090;

        font-size: 12px;
        color: white;
    }

    .eventCard {
        width: 98%;
        margin: 10px 4px;

        font-size: 16px;
        letter-spacing: 2px;

        ion-item.item.item-complex {
            border-radius: 0;

            a.item-content {
                border-radius: 0;
                padding: 0;

                &.activated .right{
                    background: #8ebce3;

                }
            }

            .left {
                min-width: 21%;
                margin: 0;
                background-color: #e3e3e3;

                display: flex;
                flex-direction: column;
                justify-content: center;

                .flex-item {
                    align-self: center;
                    margin: 0;
                }

                .day {
                    margin: 2px;

                    font-size: 28px;
                }

                .tbd {
                    font-size: 20px;
                }

                .dayOfWeek {
                    font-size: 14px;
                }
            }

            .right {
                width: 100%;
                margin: 0;
                padding: 10px 18px;
                background: #4089c9;
                flex-direction: column;

                font-size: 14px;
                color: white;
                line-height: 20px;

                .timeAndPlace {
                    width: 92%;
                    justify-content: space-between;
                    align-items: flex-end;

                    .place {
                        width: 70%;
                        overflow: hidden;
                        text-overflow: ellipsis;
                    }

                    .time {
                        width: 30%;
                    }
                }
            }
        }
    }
}

.flex-container {
    display: flex;
}
}

我们使用一些内部工具以及 npm gulp 和 cordova。不过,我想我可以展示这么多。

无论我在 div 元素中有多少文本,如果它小于一定长度,那么宽度就是正确的。否则,宽度开始动态调整。我试图将其更改为最大宽度,但这没有任何帮助。

是什么原因造成的,我该如何解决?

编辑 - 此外,我正在使用 Chrome 的检查元素,尽管该元素的大小与其他 70% 元素不同,但该元素的计算样式仍然显示为 70%。

最佳答案

这是因为你的 flexbox 应该随着它的内容而增长。为防止这种情况,请在 flexbox 元素上使用 max-width。

.flexBox {
  display: flex;
  width: 98%;
  margin: 10px 4px;

  .location {
    width: 70%;
    max-width: 70%;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .time {
    max-width: 30%
    width: 30%
  }
}

关于html - 我的 div 元素忽略了带有长文本的 CSS 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38273955/

相关文章:

javascript - Bootstrap Adminlte 模板 - 在菜单上创建子项时自动折叠不起作用

php - 限制下拉菜单中的选项

css - 使用 CSS 等高元素

jquery: 切换函数 'hide' 与 'shown' 不同

css - 用scss知道类是否存在

css - 将父属性中的值设置为变量,以便子项中的其他属性可以使用它

javascript - 使用选择选项输入js更改正文背景颜色

html - 页面在除 IE7 之外的大多数浏览器中看起来都不错...为什么

css - 使用CSS水平居中和间距

css - Bourbon/Neat Grid 问题 - 网格未正确对齐