Что такое этот селектор CSS? [Класс = "Диапазон" ]

Я видел этот селектор в Twitter Bootstrap:

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

Кто-нибудь знает, что называется этой техникой и что она делает?

Ответ 1

Это селектор шаблонов атрибутов. В примере, который вы указали, он ищет любой дочерний элемент под .show-grid, который имеет класс, содержащий CONTIINS span.

Итак, в этом примере будет выбран элемент <strong>:

<div class="show-grid">
    <strong class="span6">Blah blah</strong>
</div>

Вы также можете выполнить поиск "начинается с..."

div[class^="something"] { }

который будет работать над чем-то вроде этого: -

<div class="something-else-class"></div>

и 'заканчивается...'

div[class$="something"] { }

который будет работать на

<div class="you-are-something"></div>

Хорошие ссылки

Ответ 2

.show-grid [class*="span"]

Это селектор CSS, который выбирает все элементы с классом show-grid, который имеет дочерний элемент, класс которого содержит имя span.

Ответ 3

Он выбирает все элементы, где имя класса содержит строку "span" где-то. Там также ^= для начала строки и $= для конца строки. Здесь хорошая ссылка для некоторых селекторов CSS: http://net.tutsplus.com/tutorials/html-css-techniques/the-30-css-selectors-you-must-memorize/

Мне знакомы только классы bootstrap spanX, где X - целое число, но если бы были другие селектор, который закончился в span, он также попадал под эти правила.

Он просто помогает применять общие правила CSS.

Ответ 4

Следующие:

.show-grid [class*="span"] {

означает, что все дочерние элементы ".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>

Все элементы попадают, кроме самого <span>.


В отношении бутстрапа:

  • span6: это была методика Bootstrap 2, которая разделяла секцию на горизонтальную сетку на основе частей 12. Таким образом, span6 имел бы ширину 50%.
  • В текущем дне реализации Bootstrap (v.3 и v.4) теперь вы используете классы .col-* (например, col-sm-6), который также определяет col-sm-6 останова для обработки реагирования, когда окно сжимается ниже определенного размера. Для получения дополнительной документации проверьте Bootstrap 4.1 и Bootstrap 3.3.7. Я бы порекомендовал идти с более поздним Bootstrap в наши дни