Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

a:hover и животное под именем осёл

15
15 сентября 2006 года
shaelf
2.7K / / 04.05.2005
Трабла вот в чём. У меня ослик отказывается признавть <а> как <a>, если в нём нету href.
Небольшой exemple
[html]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
<style>
a:hover {
color:#F00;
}
</style>
</head>

<body>
<a onclick="test()">test</a><br />
<a href="" onclick="test()">test</a>
</body>
</html>
[/html]
Может кто сталкивался?
13
15 сентября 2006 года
RussianSpy
3.0K / / 04.07.2006
Занимательно... Еще один глюк осла.
Я не вижу иного решения кроме принудительного прописывания цвета скриптом. CSS тут не поможет. Хотя по стандарту все нормально (даже лиса не ругается).

Запомню в свою копилку глюков осла наравне с глюком с тегом <select>

:confused:
15
15 сентября 2006 года
shaelf
2.7K / / 04.05.2005
у меня меню в 700 пунктов и я хочу, чтобы при наведении подчёркивалось...
13
15 сентября 2006 года
RussianSpy
3.0K / / 04.07.2006
Только так:
 
Код:
<a &#111;&#110;mouseover="this.style.textDecoration='underline';this.style.color='#FF0000';this.style.cursor='pointer'" &#111;&#110;mouseout="this.style.textDecoration='none';this.style.color='#000000'">test</a><br />


Лучше еще просто вынеси это все в отдельную функцию чтоб трафик сэкономить... Но зато работает.
15
15 сентября 2006 года
shaelf
2.7K / / 04.05.2005
Через JavaScript то можно (хотя пока не пробывал), но меня просто это реально поразило. Для меня проще (и наверное даже правильно) не делать подчёркивание, тем самым объявить небольшую войну этому ослу.
12
16 сентября 2006 года
alekciy
3.0K / / 13.12.2005
[QUOTE=shaelf]
Может кто сталкивался?[/QUOTE]
Я сталкивался. href="#" спасет отца русской демократии :D
860
16 сентября 2006 года
Abell2000
138 / / 15.01.2003
А может это и не глюк вовсе.
Из описания анкора (W3C):
User agents generally render links in such a way as to make them obvious to users (underlining, reverse video, etc.). The exact rendering depends on the user agent.
и далее:
Usually, the contents of A are not rendered in any special way when A defines an anchor only.
т.е. если нет href, то броузер не обязан воспринимать его как указатель на что то, а следовательно hover и т.п. применимые для указателя не будут работать.
Вот они тут даже про это и говорят:
Authors may also create an A element that specifies no anchors, i.e., that doesn't specify href, name, or id.
т.е. <а> без href, name, или id не является якорем!!
15
16 сентября 2006 года
shaelf
2.7K / / 04.05.2005
А где написанно, что hover применяется только для якорей?)))
2alekciy угу, пасиб.
860
16 сентября 2006 года
Abell2000
138 / / 15.01.2003
А hover здесь совсем не причем, вопрос же был про тег <А>
15
16 сентября 2006 года
shaelf
2.7K / / 04.05.2005
Посмотри в exemple я привёл пример. Тэг я могу сделать какой мне вздумается и hover должен работать!
[html]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<style>
foo:hover {
color:red;
}
</style>
</head>
<body>
<foo>test</foo>
</body>
</html>
[/html]
Смотрим. Hover должен относиться к элементу, а не к его аттрибутом, а это животное как то через одно место его обрабатывает. Если в правиле написано a:hover и он это понимает, то он должен реагировать просто на <a>foo</a>.
8
16 сентября 2006 года
mfender
3.5K / / 15.06.2005
Абаждите. <A> без href - якорь. У него есть только name. Его в браузере не видно. У свойства href должно быть значение. Иначе - ссылкой не считается.
К тому же, есть вполне официальное правило для написания стилей тэга <A> - LoVe HeArth. Т.е. именно в таком порядке рекомендуется располагать: A:Link, A:Visited, A:Hover и A:Active. Эту последовательность следует соблюдать, как завещает нам консорциум 3WC (три туалета :D)

Или я опять не понял сути вопроса?.. :eek:
8
16 сентября 2006 года
mfender
3.5K / / 15.06.2005
[QUOTE=shaelf]Если в правиле написано a:hover и он это понимает, то он должен реагировать просто на <a>foo</a>.[/QUOTE]
Не должен.
Я с женой всегда скандалю по поводу того, что она считает, что все чего-то "должны". Никто никогда ничего не должен. Выше уже написал, как это работает. <a> без свойства href - порожняк.
15
16 сентября 2006 года
shaelf
2.7K / / 04.05.2005
При чём тут это??? Дайте пистолет, пойду стреляться. Есть тэг (даже не в <a> дело) и у CSS есть динамические псевдоклассы (ДП), которые реагируют на эллемент, повторюсь именно на эллемент, а не на аттрибуты (http://shaelf.ru/book/css2/selector.html#dynamic-pseudo-classes). Тут дело даже не в <a>, и не в конкретном тэге, дело в том, что он при обработки ДП судя по всему смотрит на присутствие эллементов. Hover не закреплён не за <a>, не за <b>. Ладно, я смирился, что эта скотина не обрабатывает некоторые эллементы (тот же <tr>), но то, что она ещё определяет по атрибутам приминять ли hover... ИМХО - бред
12
16 сентября 2006 года
alekciy
3.0K / / 13.12.2005
[QUOTE=Abell2000]А может это и не глюк вовсе.
Из описания анкора (W3C):
[/QUOTE]
Глюк это глюк. И ссылаться на эту часть описания я бы не стал. Почему? Да потому что есть такая штука как DTD. Чатаем его и что там видим (как для строго так и для переходного):
 
Код:
<!ELEMENT A - - (%inline;)* -(A)       -- якорь -->
<!ATTLIST A
  %attrs;                              -- %coreattrs, %i18n, %events --
  charset     %Charset;      #ПРЕДПОЛАГАЕТСЯ  -- набор символов связанного ресурса --
  type        %ContentType;  #ПРЕДПОЛАГАЕТСЯ  -- информативный тип содержимого --
  name        CDATA          #ПРЕДПОЛАГАЕТСЯ  -- именованный конец гиперссылки --
  href        %URI;          #ПРЕДПОЛАГАЕТСЯ  -- URI связанного ресурса --

Для тех кто в танке подчеркиваю, что написано #ПРЕДПОЛАГАЕТСЯ, т.е. задание данного атрибута не обязательно в разметке и браузер сам должен решить, какое значение присваивается для этого атрибута если он явно не задано. Нормальные браузеры ситуацию отсутсвия href разруливают нормально, и только один ослик нас как всегда "радует".

Мне думается я дал по данному вопросу исчерпывающий ответ и дисскусию можно прекратить.
15
16 сентября 2006 года
shaelf
2.7K / / 04.05.2005
"Поэт остался непонятым" (с)
12
16 сентября 2006 года
alekciy
3.0K / / 13.12.2005
Почему? И вообще к чему это и кому?

"shaelf остался непонятым" (с)
:D
15
17 сентября 2006 года
shaelf
2.7K / / 04.05.2005
Да к тому, что я уже не про <a> говорю, а про то, что он лезит в атрибуты при применении (проверке) динамических псевдокласов. Он должен увидеть эллемент и применить, а не влезать во внутрь.
860
17 сентября 2006 года
Abell2000
138 / / 15.01.2003
[QUOTE=alekciy]есть такая штука как DTD.[/QUOTE]
Да dtd описывает тэг <а> и необязательные параметры как name и href, но позвольте как браузер может додумать какое значение положить в тэг href ?
Поэтому они и описывают как влияют эти необязательные параметры на поведение конкретного элемента, т.е. если есть href - то это указатель, а если есть name - то это на что указывают. И браузер уже должен решать как рендерить конечный элемент в зависимости от этих параметров.
А вот то что IE не воспринимает псевдо классы - вот это действительно беда.
12
17 сентября 2006 года
alekciy
3.0K / / 13.12.2005
[QUOTE=Abell2000]но позвольте как браузер может додумать какое значение положить в тэг href ?[/QUOTE]
В спецификации это не оговаривает и оставлятеся на усмотрение создателей браузера. Например, можно вычислять значение исходя из наследования. В любом случае это должны решать сами создатели браузера. И мелкомягкие когда это решали как всегда сели в лужу :D .

К слову. Когда в 1997 году судья Томас Пенфилд запретил поставлять IE в составе Windows я удивлялся. Действительно, вроде как круго, когда браузер уже есть в оси и его покупать (крякать :D ) уже не нужно.
И только вот теперь я понимаю, что решение это было не такое уж и глупое. Потому как такая схема практически монополизует рынок браузеров благодаря чайникам и ламерам. В отсутствии конкуренции Microsoft не спещит развивать/улучшать IE. Что сейчас мы собственно и видим.
Имхо, IE сейчас это самый слаборазвивающийся браузер из все самых ходовых. Если бы его не было в составе винды очень может быть, что его юзало бы народу на несколько порядков меньше.
13
18 сентября 2006 года
RussianSpy
3.0K / / 04.07.2006
[QUOTE=alekciy]Имхо, IE сейчас это самый слаборазвивающийся браузер из все самых ходовых. [/QUOTE]
Собственно никто и не сомневался. Таких примеров достаточно много.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог