1. Maxx

    05.07.2008 16:40

    Не подскажете, есть ли способ подчеркиванием элементов в ссылках

    Пример кода:
    <a href='#'>
    <span class='name'>Название</span><br />
    <span class='addr'>Адрес</span>
    </a>
    Нужно чтобы при наведении Название подчеркивалось, а адрес нет.
    Пробовал такой вариант:
    <style>
    a:hover{
    text-decoration: none;
    }
    a:hover span.addr {
    text-decoration: none;
    }
    a:hover span.name {
    text-decoration: underline;
    }
    </style>
    Работает везде, кроме IE

    Если так:
    <style>
    a:hover span.addr {
    text-decoration: none;
    }
    </style>
    в IE работает как задумано, но в FF подчеркивается все, т.е. правило игнорируется почему то

    Существует ли решение для всех браузеров?

    Заранее спасибо

    P.S. Иван, круто вы форум переделали :)
  2. Иван Сагалаев

    05.07.2008 17:46

    То, что во втором случае в FF подчеркивается все — это верно. По стандарту text-decoration: none не должен перекрываться underline от родительского элемента. То есть черточка под span.addr в FF — это не своя собственная, а это черточка от верхнего <a> :-)

    У меня было ощущение, что в IE это тоже все починено, но только в стандартном режиме, то есть при включенном DOCTYPE каком-нибудь. Мы, кстати, о какой версии говорим?

  3. Maxx

    05.07.2008 18:44

    У меня указано так:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">


    Т.е. underline перекрывает none родителя, а наоборот - нет?

    Спасибо, что подредактировали мой пост, было бы супер, если была бы кратенькая инструкция по возможностям оформления + редактирование своих постов
  4. Maxx

    05.07.2008 18:45

    Или вы про версии IE?

    в IE6/7 не работает первый вариант
    в FF2/3 - второй
  5. Maxx

    05.07.2008 19:02

    Похоже на то, что в IE баг, ибо в таком коде:
    <style>
    a {
    text-decoration:none
    }
    a:hover {
    text-decoration:none
    }

    a span.addr {
    text-decoration:underline
    }

    a:hover span.name {
    text-decoration:underline
    }
    </style>

    <a href='#'>

    <span class='name'>test span 1</span> <br />
    <span class='addr'>test span 1</span>

    </a>
    просто у ссылок все OK во всех браузерах, т.е. вторая подчеркивается
    а вот :hover в IE не подчеркивает первую (без DOCTYPE - тоже самое)
  6. Иван Сагалаев

    05.07.2008 22:36

    Т.е. underline перекрывает none родителя, а наоборот - нет?

    Ну да, вполне логичная имитация. Напишите на бумаге два слова, не подчеркивая их. Потом подчеркните только одно — подчерк виден. Потом напишите на бумаге два слова, подчеркнув оба. Потом не подчеркивайте одно из них — подчерк ведь не пропал? :-)

    Спасибо, что подредактировали мой пост, было бы супер, если была бы кратенькая инструкция по возможностям оформления + редактирование своих постов

    Форум все время в процессе доделывания, там дальше предпросмотр будет. Но вообще, под окном редактирования написано, в каком синтаксисе можно писать. По умолчанию — обычный bbcode.

    Похоже на то, что в IE баг

    Наверное... Не видел такого ни разу.

    А если отказаться от text-decoration, а воспользоваться нижним border'ом?

  7. Maxx

    06.07.2008 00:05

    Фишка в том, что с border-bottom такая же фигня :)

    Но я неумышленно обманул вас, сказав что это поведение в IE 6/7. Не знаю куда я смотрел, но в IE7 все работает как надо. Остается проблема с IE6, но ее я так понимаю по нормальному не решить, потому для него отдельный css.

    Итогом вот такое решение, для тех кому может понадобиться
    CSS: (for FF/Opera/IE7)
    a {
    text-decoration: none
    }
    a:hover {
    text-decoration: none
    }
    a:hover span.name {
    text-decoration: underline
    }
    CSS2: for IE6
    <!--[if lte IE 6]>
    a:hover {
    text-decoration:underline;
    }
    a:hover span.addr {
    text-decoration:none;
    }
    <![endif]-->
    думаю так оптимально, а главное работает :)
  8. Иван Сагалаев

    06.07.2008 00:19

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

  9. Maxx

    06.07.2008 00:23

    Иван, спасибо, последний вопрос —

    А как у вас тут зарегестрироваться? :)
  10. Иван Сагалаев

    06.07.2008 01:45

    Вписать своей OpenID в поле имени при постинге. Или в корне форума внизу справа. Или на специальной странице, где есть очень краткая инструкция: http://softwaremaniacs.org/forum/users/login/

bbcode