nth-of-type
работает в соответствии с индексом того же типа элемента, но nth-child
работает только в соответствии с индексом независимо от того, какой тип элементов сиблингов.
Например
<div class="one">...</div>
<div class="two">...</div>
<div class="three">...</div>
<div class="four">...</div>
<div class="five">...</div>
<div class="rest">...</div>
<div class="rest">...</div>
<div class="rest">...</div>
<div class="rest">...</div>
<div class="rest">...</div>
Предположим, что в выше html мы хотим скрыть все элементы, имеющие класс отдыха.
В этом случае nth-child
и nth-of-type
будут работать точно так же, как и все элементы одного типа, <div>
, поэтому css должен быть
.rest:nth-child(6), .rest:nth-child(7), .rest:nth-child(8), .rest:nth-child(9), .rest:nth-child(10){
display:none;
}
OR
.rest:nth-of-type(6), .rest:nth-of-type(7), .rest:nth-of-type(8), .rest:nth-of-type(9), .rest:nth-of-type(10){
display:none;
}
Теперь вам должно быть интересно узнать, в чем разница между nth-child
и nth-of-type
, так что это разница
Предположим, что html is
<div class="one">...</div>
<div class="two">...</div>
<div class="three">...</div>
<div class="four">...</div>
<div class="five">...</div>
<p class="rest">...</p>
<p class="rest">...</p>
<p class="rest">...</p>
<p class="rest">...</p>
<p class="rest">...</p>
В приведенном выше html тип элемента .rest
отличается от других .rest
- это абзацы, а другие - div, поэтому в этом случае if вы используете nth-child
, вы должны писать так
.rest:nth-child(6), .rest:nth-child(7), .rest:nth-child(8), .rest:nth-child(9), .rest:nth-child(10){
display:none;
}
, но если вы используете nss-тип css, это может быть
.rest:nth-of-type(1), .rest:nth-of-type(2), .rest:nth-of-type(3), .rest:nth-of-type(4), .rest:nth-of-type(5){
display:none;
}
Как тип Элементом
blockquote >.rest
является<p>
, поэтому здесьnth-of-type
обнаруживает тип.rest
, а затем он накладывает css на 1-й, 2-й, 3-й, 4-й, 5-й элементы<p>
.
alleyoop и valkyrie являются альтернативными интерфейсами.
Может хватить поддержки для того, что вы хотите, вы можете использовать mingw для компиляции под Windows, если SUA не работает «из коробки».
Похоже, что WinCacheGrind не может открыть вывод callgrind. Я не пробовал открывать вывод cachegrind, но он должен работать, я думаю. Со страницы Valkyrie (по состоянию на дату) «В настоящее время Valkyrie поддерживает только Memcheck, хотя ведется работа над Cachegrind и Massif».
Существует новый проект XCallGraph для просмотра файлов cachegrind в Windows.
Я пробовал это:
Они очень похожи, но отличаются в деталях. Я могу порекомендовать QCacheGrind , который наиболее полно упакован и имеет также графическое представление, которое может помочь намного быстрее идентифицировать проблемы.
Я скомпилировал kcachegrind для окон, используя QT4.7, вот бинарный пакет (включая утилиту точек для генерации графа вызовов): http://sourceforge.net/projects/precompiledbin/files/kcachegrind.zip / скачать
Попробуйте WebGrind: https://github.com/jokkedk/webgrind
Работает на вашем локальном PHP-сервере. Будьте осторожны, используйте профилирование XDebug с флагом XDEBUG_PROFILE, иначе вы рискуете перезаписать результаты профилирования при открытии WebGrind (поскольку WebGrind также является веб-приложением PHP). На сайте WebGrind также подробно описаны другие подходы к решению этой проблемы. Приветствия.