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

<?php
$return = array(any array)
$len = count($return);
$str = '';
$i = 1;
foreach($return as $key=>$value)
{
    $str .= '<a href='.$value['cat_url'].'>'.$value['cat_title'].'</a>';
    if($len > $i)
    {
        $str .= ',';
        $i = $i+1;
    }
}
echo $str;
?>
926
задан sanmai 5 February 2017 в 01:57
поделиться

8 ответов

Краткий ответ: нельзя.

Длинный ответ: не следует.

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

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

Ответ на комментарии OP:

См. Totally Pwn CSS with Javascript для получения хорошего скрипта для динамического добавления правил CSS. Также см. Изменить таблицу стилей для получения некоторых теоретических сведений по этому вопросу.

Также не забывайте, что вы можете добавлять ссылки на внешние таблицы стилей, если это ' s вариант. Например,

<script type="text/javascript">
  var link = document.createElement("link");
  link.setAttribute("rel","stylesheet");
  link.setAttribute("href","http://wherever.com/yourstylesheet.css");
  var head = document.getElementsByTagName("head")[0];
  head.appendChild(link);
</script>

Внимание: вышесказанное предполагает, что существует раздел head .

541
ответ дан 19 December 2019 в 20:21
поделиться

Нет способа сделать это. Вы можете использовать JavaScript или CSS-блок.

Может быть, есть какая-нибудь библиотека JavaScript, которая преобразует проприетарный атрибут стиля в блок стиля. Но тогда код не будет соответствовать стандарту.

4
ответ дан 19 December 2019 в 20:21
поделиться
<style>a:hover { }</style>
<a href="/">Go Home</a>

Hover - это псевдокласс, поэтому его нельзя применять с атрибутом стиля. Это часть селектора.

4
ответ дан 19 December 2019 в 20:21
поделиться

Вы можете получить тот же эффект, изменив свои стили с помощью JavaScript в параметрах onMouseOver и onMouseOut , хотя это крайне неэффективно, если вам нужно изменить более одного элемента:

Кроме того, я не могу точно вспомнить, работает ли этот в данном контексте. Возможно, вам придется переключить его с помощью document.getElementById ('idForLink') .

406
ответ дан 19 December 2019 в 20:21
поделиться

Судя по вашим комментариям, вы все равно отправляете файл JavaScript. Сделайте переход на JavaScript. Метод jQuery $. Hover () упрощает эту задачу, как и любая другая оболочка JavaScript. В прямом JavaScript это тоже не так уж сложно.

4
ответ дан 19 December 2019 в 20:21
поделиться

Встроенные объявления псевдокласса не поддерживаются в текущей итерации CSS (хотя, насколько я понимаю, это может появиться в будущей версии).

На данный момент лучший вариант - возможно, чтобы просто определить блок стиля непосредственно над ссылкой, которую вы хотите стилизовать:

<style type="text/css">
    .myLinkClass:hover {text-decoration:underline;}
</style>
<a href="/foo" class="myLinkClass">Foo!</a>
10
ответ дан 19 December 2019 в 20:21
поделиться

Вы не можете делайте именно то, что вы описываете, поскольку a: hover является частью селектора, а не правил CSS. Таблица стилей состоит из двух компонентов:

selector {rules}

Встроенные стили имеют только правила; селектор неявно является текущим элементом.

Селектор - это выразительный язык, который описывает набор критериев для сопоставления элементов в XML-подобном документе.

Однако вы можете приблизиться, потому что Набор стилей технически может идти практически куда угодно:

<html>
    <style>
    #uniqueid:hover {do:something;}
    </style>
    <a id="uniqueid">hello</a>
 </html>
28
ответ дан 19 December 2019 в 20:21
поделиться

Я согласен с shadow . Вы можете использовать события onmouseover и onmouseout , чтобы изменить CSS через JavaScript.

И не говорите, что людям нужно активировать JavaScript. Это всего лишь проблема стиля, поэтому не имеет значения, есть ли посетители без JavaScript;) Хотя большая часть Web 2.0 работает с JavaScript. См., Например, Facebook (много JavaScript) или Myspace .

1
ответ дан 19 December 2019 в 20:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: