【问题标题】:can I write a loop for css我可以为 css 写一个循环吗
【发布时间】:2013-06-07 15:25:05
【问题描述】:

我有这样一个场景,我会像这样生成 ID

<div class="containerLength">
<div id="new-1"></div>
<div id="new-2"></div>
<div id="new-3"></div>
<div id="new-4"></div>
</div>

等等

有没有办法我可以编写一些 css 来通过循环定位它们? 也许像

#new[i; for(i=0; i<="containerLength.length"; i++)]{
float:left;
}

我大概是在做白日梦吧?

【问题讨论】:

  • 使用普通的 CSS 没有。为什么不给这些元素分配一个类呢?不过你可以试试div.containerLength &gt; div {...}
  • div.containerLength div[id^="new"] { float: left; }?一旦找到/“循环”,你想对这些元素做什么?
  • ...或.containerLength div:nth-child() ?
  • CSS 不是程序化的。您可以定位 .containerLength > div {float:left;},但那里没有任何循环

标签: css


【解决方案1】:

你不能用纯 CSS 做循环,但是,如果你使用的是 SASS 或 LESS 之类的东西,那么你可以同时做:

SASS

@for $i from 1 through 4
  .#{$class-slug}-#{$i}
    width: 60px + $i

Can you do a javascript for loop inside of LESS css?

但是,假设您只想对每个嵌套的div 应用相同的样式,您可以这样做

.containerLength > div{
  float: left;
}

或者也许创建一个名为 .float-left 的类并将其应用于您希望向右浮动的每个元素。

【讨论】:

    【解决方案2】:

    你可以的

    div.containerLength > div { /* > Matches only first level children of the wrapper div */
        float: left;
    }
    

    【讨论】:

    • 你真的不需要初始的'div','.containerLength > div'就足够了。
    • @facildelembrar 我通常喜欢让事情更明确。我同意这不是必需的。
    • 有了 CSS,太具体总比不够具体好。只选择您想要更改的内容,仅此而已。我无法告诉你我花了多少工作时间来修复糟糕的 CSS 选择器。
    • 我曾经同意你们的观点,并使用标签选择器和类选择器。让我改变主意的是性能,在较小程度上是文件大小。使用 yslow 和 pagespeed 检查您的页面。
    【解决方案3】:
    div[id|="new"]{
        float: left;
    }
    

    documentation

    您可能需要也可能不需要引号,有时这很奇怪。

    【讨论】:

      【解决方案4】:

      你为什么不试试这个:

      .containerLength > div {float:left}
      

      【讨论】:

        【解决方案5】:

        您根本无法在 css 中编写任何逻辑。但是,您可以使用 JavaScript 管理 css,或者在一个规则中包含多个 id,或者只使用一个类。

        您还可以使用 Css 属性选择器,具体取决于 id 的排列方式以及您需要浏览器支持的范围。

        https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors

        【讨论】:

        • 谢谢大家。这真的很棒。感谢您的所有帮助
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-30
        • 2015-12-17
        • 2021-02-12
        相关资源
        最近更新 更多