什么是这个CSS选择器?[类*= "跨度"]

jon*_*jon 180 css css-selectors css3

我在Twitter Bootstrap中看到了这个选择器:

.show-grid [class*="span"] {
    background-color: #eee;
    text-align: center;
    border-radius: 3px;
    min-height: 30px;
    line-height: 30px;
}
Run Code Online (Sandbox Code Playgroud)

有谁知道这种技术被称为什么以及它做什么?

isN*_*247 322

它是一个属性通配符选择器.在您给出的示例中,它查找其下.show-grid具有CONTAINS类的任何子元素span.

所以会<strong>在这个例子中选择元素:

<div class="show-grid">
    <strong class="span6">Blah blah</strong>
</div>
Run Code Online (Sandbox Code Playgroud)

您也可以搜索"以...开头"

div[class^="something"] { }
Run Code Online (Sandbox Code Playgroud)

这将适用于这样的事情: -

<div class="something-else-class"></div>
Run Code Online (Sandbox Code Playgroud)

并且'结尾......'

div[class$="something"] { }
Run Code Online (Sandbox Code Playgroud)

哪个会起作用

<div class="you-are-something"></div>
Run Code Online (Sandbox Code Playgroud)

很好的参考

  • `div [class ^ ="something"] {}`"starts with"选择器仅在元素包含一个单独的类时才有效,如果该类是左侧的第一个类,则只有多个. (6认同)
  • 想要添加另一个参考,以防人们发现这个有用:http://AllCssSelectors.com (2认同)
  • 我会添加`div [class〜=“ something”]`用于在空格分隔的列表(例如,类)中查找匹配项,而`div [class | =“ something”`用于在连字符分隔的列表中进行匹配,例如,匹配您所需要的内容-上面的类名 (2认同)

Spi*_*keh 30

.show-grid [class*="span"]
Run Code Online (Sandbox Code Playgroud)

它是一个CSS选择器,它使用类show-grid选择所有元素,该类具有一个子元素,其子类包含名称span.

  • 实际上,它选择"包含名称范围的类的子元素"和**而不是**"具有类show-grid的所有元素" (14认同)

Tyl*_*ler 5

下列:

.show-grid [class*="span"] {
Run Code Online (Sandbox Code Playgroud)

意味着 '.show-grid' 的所有子元素的类中包含单词 'span' 将获得这些 CSS 属性。

<div class="show-grid">
  <div class="span">.span</div>
  <div class="span6">span6</div>
  <div class="attention-span">attention</div>
  <div class="spanish">spanish</div>
  <div class="mariospan">mariospan</div>
  <div class="espanol">espanol</div>

  <div>
    <div class="span">.span</div>
  </div>

  <p class="span">span</p>
  <span class="span">I do GET HIT</span>

  <span>I DO NOT GET HIT since I need a class of 'span'</span>
</div>

<div class="span">I DO NOT GET HIT since I'm outside of .show-grid</span>
Run Code Online (Sandbox Code Playgroud)

除了<span>本身之外,所有元素都被击中。


关于 Bootstrap:

  • span6:这是 Bootstrap 2 的脚手架技术,它根据 12 个部分将一个部分分成一个水平网格。因此span6宽度为 50%。
  • 在 Bootstrap(v.3 和 v.4)的当前实现中,您现在使用.col-*类(例如col-sm-6),它还指定了一个媒体断点来处理窗口缩小到特定大小以下时的响应。查看Bootstrap 4.1Bootstrap 3.3.7以获取更多文档。我建议现在使用较晚的 Bootstrap