Изменение CSS для последнего <литий>

Все эти недокументированные

xp_getnetname 

xp_fileexist 

xp_dirtree 

xp_subdirs 

sp_who2

xp_getfiledetails 

xp_fixeddrives 

Sp_tempdbspace 

xp_enumdsn 

xp_enumerrorlogs

sp_MSforeachtable 

sp_MSforeachDB 

Видят здесь: Недокументированные хранимые процедуры

И теперь начиная с SQL-сервера 2005 все Динамические Представления управления как sys.dm_db_index_usage_stats

75
задан Mark Amery 17 May 2015 в 14:11
поделиться

7 ответов

: last-child - действительно единственный способ сделать это без изменения HTML, но если вы можете это сделать, основной вариант - просто присвоить ему класс = "last-item" , затем выполните:

li.last-item { /* ... */ }

Очевидно, вы можете автоматизировать это с помощью языка генерации динамических страниц по вашему выбору. Кроме того, в W3C DOM есть свойство JavaScript lastChild .

Вот пример выполнения того, что вы хотите, в Prototype :

$$("ul").each(function(x) { $(x.lastChild).addClassName("last-item"); });

Или еще проще:

$$("ul li:last-child").each(function(x) { x.addClassName("last-item"); });

В jQuery вы можете написать его еще более компактно:

$("ul li:last-child").addClass("last-item");

Также обратите внимание, что этот должен работать без использования фактического селектора CSS last-child - скорее, используется его реализация на JavaScript, поэтому она должна быть менее ошибочной и более надежной для разных браузеров.

103
ответ дан 24 November 2019 в 11:30
поделиться

Вы можете использовать jQuery и сделать это таким же образом

$("li:last-child").addClass("someClass");
10
ответ дан 24 November 2019 в 11:30
поделиться

Я обычно комбинирую подходы CSS и JavaScript, так что он работает без JavaScript во всех браузерах, кроме IE6 / 7, и в IE6 / 7 с включенным (но не выключенным) JavaScript, поскольку они не работают. поддержка псевдокласса : last-child .

$("li:last-child").addClass("last-child");

li:last-child,li.last-child{ /* ... */ }
12
ответ дан 24 November 2019 в 11:30
поделиться

Обычно я делаю это, создавая htc-файл (например, last-child.htc):

<attach event="ondocumentready" handler="initializeBehaviours" />
<script type="text/javascript">
function initializeBehaviours() {
  this.lastChild.className += ' last-child';
}
</script>

И вызываю его из моего условного CSS-файла IE с помощью:

ul {поведение: URL ("/ javascripts / htc / last-child.htc"); }

В то время как в моем основном файле css я получил:

ul li:last-child,
ul li.last-child {
  /* some code */
}

Другим решением (хотя и более медленным), использующим существующую разметку css без определения какого-либо класса .last-child, будет библиотека Дина Эдвардса ie7.js . .

3
ответ дан 24 November 2019 в 11:30
поделиться

Например, если вы знаете, что в списке есть три li, вы можете сделать следующее:

li + li + li { /* Selects third to last li */
}

В IE6 вы можете использовать выражения:

li {
    color: expression(this.previousSibling ? 'red' : 'green'); /* 'green' if last child */
}

Я бы рекомендовал используя специализированный класс или Javascript (а не выражения IE6), пока селектор : last-child не получит лучшую поддержку.

0
ответ дан 24 November 2019 в 11:30
поделиться

Одной из альтернатив для IE7 + и других браузеров может быть использование вместо этого : first-child и инвертирование стилей.

Например, если вы устанавливаете маржа на каждом li :

ul li {
  margin-bottom: 1em;
}
ul li:last-child {
  margin-bottom: 0;
}

Вы можете заменить его следующим образом:

ul li {
  margin-top: 1em;
}
ul li:first-child {
  margin-top: 0;
}

Это будет хорошо работать для некоторых других случаев, например границ.

Согласно sitepoint , ]: first-child ошибка, но только в той степени, в которой он выберет некоторые корневые элементы (doctype или html) и не может изменить стили, если вставлены другие элементы.

7
ответ дан 24 November 2019 в 11:30
поделиться

: last-child - это CSS3 и не имеет поддержки IE, а: first-child - это CSS2, я считаю, что следующий безопасный способ реализовать его с помощью jquery

$('li').last().addClass('someClass');
2
ответ дан 24 November 2019 в 11:30
поделиться