【问题标题】:Angular: Why doesn't CSS justification work with ng-repeat?Angular:为什么 CSS 对齐不适用于 ng-repeat?
【发布时间】:2014-04-23 18:38:41
【问题描述】:

我要做什么

我正在尝试将li 均匀分布在ul 中(证明)。当我对li 进行硬编码时,CSS 可以工作,但是当我使用ng-repeat 时,不再应用 CSS。

HTML

<div ng-app="SampleApp">
    <div ng-controller="ListCtrl">
        <ul class="two-column">
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>

        <ul class="two-column">
            <li ng-repeat="item in items"></li>
        </ul>
    </div>
</div>

CSS

.two-column {
    text-align: justify;
}

.two-column:after {
    content: '';
    display: inline-block;
    width: 100%;   
}

小提琴

http://jsfiddle.net/RyanWalters/M8228/

预期结果

两个列表的每个li 之间都应该有空格。

实际结果

使用ng-repeat 生成的列表在每个li 之间没有空格。

为什么会这样?

【问题讨论】:

    标签: javascript css angularjs


    【解决方案1】:

    li 元素之间的空格(证明所必需的)不会随着 Angular 的重复而发出。您还必须包装空格以便重复。您可以执行以下操作:

    <span ng-repeat-start="item in items"></span>
        <li></li>
    <span ng-repeat-end></span>
    

    http://jsfiddle.net/M8228/1/

    【讨论】:

    • @Populus 我倾向于同意。理想情况下,会有一个重复指令的注释版本,比如 Knockout 允许你这样做,但在 Angular 中不是这样
    • 或者你需要重新考虑为什么你首先需要证明一堆 inline-block 的合理性。如果您有固定数量的项目,则项目的宽度应固定;如果数字可以变化,则使用 justified 会给您带来不一致的结果,这对 UX 不利。
    • @Populus:你说得对,这对用户体验不利。我遇到了同样的问题,当我终于让它工作时,它看起来很奇怪。
    【解决方案2】:

    你试过了吗

    <ul class="two-column" ng-repeat="item in items">
                <li></li>
            </ul>
    

    并浮动 li 元素?

    css:

    .two-column {
        list-style: none;
        padding: 0;
    }
    
    
    
    .two-column li {
        background-color: #f00;
        border: 1px solid #000;
        display: inline-block;
        height: 50px;
        width: 100px;
        margin-left:10px;
    margin-top:10px;
        float:left;
    }
    

    【讨论】:

    • 你显然不知道 justify 是做什么的。它用于将物品均匀地分布在容器的整个宽度上。最初它的目的是让文本在段落内对齐,以便左侧的单词完美对齐,并且单词之间的间距正确,因此单词也可以在右侧完美对齐。这也可以通过使用display:inline-block 来在盒子上使用,它基本上表示盒子表现为“文本元素”,因此您可以使用文本流技术来处理布局。
    猜你喜欢
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多