Назначение случайных псевдо-классов CSS с использованием массивов PHP - PullRequest
1 голос
/ 08 ноября 2010

Цель: произвольно назначить различные цветовые фоны CSS для сгенерированного Wordpress облака тегов при наведении курсора на пользователя.

Мой метод (пока безуспешно):

        <?php 
            $colors = array( 0 => "#645676", "#427048", "#654335", "#ab2805", "#a59d57", "#302f2f", "#81510d" );
            $tags = wp_tag_cloud('smallest=10&largest=10&unit=px&number=40&format=array&echo=0'); 
            shuffle($tags); 
            foreach ($tags as $tag) { 
                    shuffle($colors);
                echo "<li style=\"a:hover=background:".$colors[0].";\"> $tag \n </li>"; 
            } 
        ?>

Я подумал, что цикл PHP foreach будет самым простым способом сделать это.Я создал два массива ($ colors и $ tags).Я вручную заполнил $ colors шестнадцатеричными тегами цветов, которые я хочу использовать.$ tags заполняется облачным массивом wordpress tag (больше информации здесь, если вы заинтересованы: http://codex.wordpress.org/Function_Reference/wp_tag_cloud), который я установил, чтобы получить 40 самых популярных тегов в этом блоге.

Затем я использую PHP shuffleфункция на $ тэгах, чтобы смешать 40 верхних тэгов, запустить эти 40 тэгов через цикл foreach, который затем случайным образом назначает один из перемешанных $ цветов псевдоклассу CSS, который выводится на экран.

Код работает,Вот пример вывода:

<li style="a:hover=background:#302f2f;"> <a href='http://localhost:8888/nutritionwonderland_2/tag/truvia/' class='tag-link-49' title='3 topics' style='font-size: 10px;'>truvia</a> 
 </li><li style="a:hover=background:#81510d;"> <a href='http://localhost:8888/nutritionwonderland_2/tag/cancer/' class='tag-link-8' title='11 topics' style='font-size: 10px;'>cancer</a> 
 </li><li style="a:hover=background:#427048;"> <a href='http://localhost:8888/nutritionwonderland_2/tag/antioxidants/' class='tag-link-93' title='4 topics' style='font-size: 10px;'>antioxidants</a> 
 </li>

Проблема: при наведении мыши на любой из тегов фон никогда не появляется. Это заставляет меня думать, что CSS может быть плохим.

Пара вопросов для галереи арахиса:
1) Как применять псевдоклассы CSS случайным образом с помощью PHP?
2) Даже если это сработает, будет ли CSS выводиться здесь в соответствии со стандартами?
3) Следует лиЯ даже беспокоюсь о стандартах здесь?

Заинтересованы услышать любые ответы - заранее спасибо за ваше время.

Ответы [ 3 ]

0 голосов
/ 08 ноября 2010

первое, что выпрыгивает. если вы просто изменяете цвет фона и не относитесь к остальным элементам, связанным с фоном, вам лучше использовать фоновый цвет в качестве целевого элемента для изменения. во-вторых, я бы, вероятно, вывел css в таблицу стилей, даже с вашей рандомизацией, и дал бы каждому из тегов a соответствующий класс

<li class="pseudo_01"> <a href='http://localhost:8888/nutritionwonderland_2/tag/truvia/' class='tag-link-49' title='3 topics' style='font-size: 10px;'>truvia</a> 

и

<style>
.pseudo_01{
...
}
</style>
0 голосов
/ 08 ноября 2010

Я думаю, вам понадобится JavaScript для этого.PHP на стороне сервера, поэтому вы не можете выбрать случайный цвет при наведении курсора мыши.Возможно, я полностью неверно истолковал вопрос;Я предполагаю, что вы не хотите просто выбирать случайный цвет при загрузке страницы и отображать этот же цвет при каждом наведении мыши.

0 голосов
/ 08 ноября 2010

Как написать: hover во встроенном CSS?

короткий ответ: вы не можете.

длинный ответ: вы не должны.

Дайте ему имя класса или идентификатор и используйте таблицы стилей для применения стиля

: hover является псевдо-селектором и, для css, имеет значение только в таблице стилей.Не существует встроенного эквивалента в стиле (поскольку он не определяет критерии выбора).

...