Я подозреваю, что это дико неэффективно, но довольно простой подход, который работал на небольшом наборе данных, в котором я его пробовал.
select top 1 field
from table
where field in (select top 5 field from table order by field asc)
order by field desc
Это получило бы 5-й элемент, изменив второй верхний номер для получения другого n-го элемента
SQL-сервера (я думаю), но должен работать над более старыми версиями, которые не поддерживают ROW_NUMBER ().
Как уже упоминалось в комментариях, это относится к несоответствующему атрибуту атрибутов. Это новая функция в CSS Selectors Level 4.
В настоящее время она доступна в Chrome 49+, Firefox 47+, Safari 9+ и Opera 37 + *. До этого он был доступен только в стилях User-Agent Chrome, начиная с Chrome 39, но может быть включен для веб-контента, установив флаг экспериментальных функций.
* Более ранние версии Opera также могут его поддерживать.
[data-test] {
width: 100px;
height: 100px;
margin: 4px;
}
[data-test="A"] {
background: red;
}
[data-test="a" i] {
background: green;
}
Green if supported, red if not:
<div data-test="A"></div>
Вышеуказанный квадрат будет зеленым, если браузер поддерживает эта функция, красный, если нет.
Это флаг чувствительности к регистру для селекторов атрибутов, введенный в Селекторах 4 . По-видимому, они включили реализацию этой функции в Chrome уже в августе 2014 года.
В двух словах: этот флаг сообщает браузеру, что соответствующие атрибуты для атрибута type
не учитываются в регистре. Поведение сравнения по умолчанию для значений атрибутов в HTML является чувствительным к регистру , что часто нежелательно, потому что многие атрибуты имеют значения, не учитывающие регистр, и вы хотите, чтобы ваш селектор взял все правильные элементы независимо от случая. type
является одним из примеров такого атрибута, поскольку это перечисляемый атрибут , а перечислены атрибуты, которые, как говорят, имеют нечувствительные к регистру значения .
Вот соответствующие коммиты:
Обратите внимание, что в настоящее время он скрыт в флагове «Включить экспериментальную веб-платформу», доступ к которому вы можете получить в chrome: // flags / # enable-experimental-web- платформа-функция. Это может объяснить, почему эта функция осталась в значительной степени незаметной - функции, скрытые за этим флагом, могут использоваться только внутри, а не в публичном коде (например, стили стилей автора), если только они не включены, потому что они являются экспериментальными и поэтому не готовы к использованию в производстве.
Вот пример, который вы можете использовать - сравнить результаты, когда флаг включен и отключен:
span[data-foo="bar"] {
color: red;
}
span[data-foo="bar" i] {
color: green;
}
<span data-foo="bar">If all of this text is green,</span>
<span data-foo="Bar">your browser supports case-insensitive attribute selectors.</span>
Обратите внимание, что вместо атрибута type
я использую атрибут пользовательских данных, чтобы показать, что он может использоваться практически с любым атрибутом.
Мне не известно о каких-либо других реализациях на момент написания этой статьи, но, надеюсь, другие браузеры скоро догонят. Это относительно простое, но чрезвычайно полезное дополнение к стандарту, и я с нетерпением жду возможности использовать его в будущем.
input[type="search" i]
, который будет соответствовать элементам, таким как <input type="SEARCH">
.
– BoltClock♦
20 January 2015 в 17:50