Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: IFRAME, css и a:active
 
 автор: SNSNSN456   (03.09.2010 в 21:51)   письмо автору
 
 

На сайте на всех страницах IFRAME в котором меню сайта.
Все работает нормально, за исключением того, что a:active не фунциклирует.
На те секунды, пока открывается страница, цвет меняется, а потом снова становиться прежним.
Такое подозрение, что профи с этим наверняка сталкивались и решение где то на поверхности – пжлста подскажите, кто в курсе!

Да, кстати, если открыть в новой вкладке(окне), то все работает отлично. А если открываем в этом же, то ни-че-го.

Если сумбурно рассказал, то скажите поясню.

А если здесь это уже обсуждалось, дайте ссылку плиз.

  Ответить  
 
 автор: Gubichev   (03.09.2010 в 22:53)   письмо автору
 
   для: SNSNSN456   (03.09.2010 в 21:51)
 

А стили для страницы в iframe прописали?

  Ответить  
 
 автор: SNSNSN456   (03.09.2010 в 23:45)   письмо автору
 
   для: Gubichev   (03.09.2010 в 22:53)
 

>А стили для страницы в iframe прописали?

Да прописал,
На всех страницах код:
<IFRAME frameborder="1" scrolling="no" align="top" Width=100% Height="500" src="menu.htm">
</IFRAME>


В файле menu.htm

<link rel="stylesheet" type="text/css" href="styles.css">
</head>
<body>
<a target="_parent" id="menu" href="index.htm">Раздел 1</a><br><br>
<a target="_parent" id="menu" href="index2.htm">Раздел 2</a>



В файле styles.css
#menu {
    text-decoration: none;
    font-family: Tahoma, Verdana, Helvetica, sans-serif;
    font-weight: bold;
}

#menu a:active {color: #2e3092;  text-decoration: none;}
#menu a:hover {color: #FF0000;}
#menu a:link {color: #1a1c0f;}
#menu a:visited {color: #1a1c0f;}


Ситуация показана здесь www.Vopros157.narod.ru
!!! Причем, если открыть в другом окне(вкладке) то ссылка как и задумывалось становиться темно-синей, т.е. работает как положено.
Как все таки сделать что бы она становилась синей и при обычной работе?

  Ответить  
 
 автор: bishake   (04.09.2010 в 00:50)   письмо автору
 
   для: SNSNSN456   (03.09.2010 в 23:45)
 

Забудьте про псевдокласс active. Его реализация различается в различных браузерах. Активная ссылка реализуется двумя способами:
1) на каждой странице прописывается, какая ссылка активна (обычно серверным скриптом)
2) для подсветки используется JS - когда страница не перезагружается

  Ответить  
 
 автор: АЯ   (04.09.2010 в 01:01)   письмо автору
 
   для: SNSNSN456   (03.09.2010 в 23:45)
 

Порядок имеет значение.
Перепишите файл styles.css
#menu a:hover {color: #FF0000;}
#menu a:link {color: #1a1c0f;}
#menu a:visited {color: #1a1c0f;} 
#menu a:active {color: #2e3092;  text-decoration: none;}

  Ответить  
 
 автор: sl1p   (04.09.2010 в 03:12)   письмо автору
 
   для: АЯ   (04.09.2010 в 01:01)
 

помоему a:active, в основном, это как onMouseDown :)
а при onMouseOut:) всё становится прежним)

  Ответить  
 
 автор: SNSNSN456   (04.09.2010 в 12:45)   письмо автору
 
   для: АЯ   (04.09.2010 в 01:01)
 

>Порядок имеет значение.
>Перепишите файл styles.css
#menu a:hover {color: #FF0000;}
>#menu a:link {color: #1a1c0f;}
>#menu a:visited {color: #1a1c0f;} 
>#menu a:active {color: #2e3092;  text-decoration: none;}


Попробовал не помогло,

Я выложил полностью коды трех файлов, которые участвуют в данной конструкции:
index.html
menu.html
styles.css
по адресу [url]www.Vopros157.narod.ru[/url]
Как в той пословице "заблудился в трех соснах", в моем случае "в трех файлах"
По вопросу в каком браузере: попробовал в IE, FF и в Opere - ситуация везде аналогичная

Буду признателен за любой совет для решения данного вопроса!

  Ответить  
 
 автор: АЯ   (04.09.2010 в 13:29)   письмо автору
 
   для: SNSNSN456   (04.09.2010 в 12:45)
 

"Гражданин Иванов снимает комнату у гражданина Иванова в доме, который находится на улице Иванова в городе Иваново."

"Кто на ком стоял" - Вам понятно?

Аналогично и у Вас в коде: Ссылка с идентификатором menu находится в ячейке с идентификатором menu, которая находится в строке с идентификатором menu, коя, в свою очередь, - в таблице с идентификатором menu. И всё это вместе - в файле под названием menu.html

ID - это УНИКАЛЬНЫЙ в пределах документа идентификатор, который должен ОДНОЗНАЧНО определять ОДИН-ЕДИНСТВЕННЫЙ конкретный тег.
Прочитайте самое начало текста по ссылке - http://www.w3.org/TR/1999/REC-html401-19991224/struct/global.html#idx-id_attribute. Найдите текст: This name must be unique in a document.
--------------------

Что касается Вашего вопроса, то ответ на него ОЧЕВИДЕН.
После нажатия на ссылку у Вас перегружается ВЕСЬ документ, включая ифрейм и ссылки в нём.
Соответственно, ссылки в НОВОМ документе уже не будут активными.

Вот если бы страница с меню была бы у Вас одна, а содержимое находилось бы в ифрейме и менялось бы в зависимости от выбора ссылки, то тогда активная ссылка таковой бы оставалась.
Иначе - действие псевдокласса ссылки распространяется ТОЛЬКО на ТЕКУЩИЙ документ.

  Ответить  
 
 автор: SNSNSN456   (04.09.2010 в 16:07)   письмо автору
 
   для: АЯ   (04.09.2010 в 13:29)
 

>ID - это УНИКАЛЬНЫЙ в пределах документа идентификатор, который должен ОДНОЗНАЧНО определять ОДИН-ЕДИНСТВЕННЫЙ конкретный тег.

Критика принимается - большое спасибо

>Что касается Вашего вопроса, то ответ на него ОЧЕВИДЕН.
>После нажатия на ссылку у Вас перегружается ВЕСЬ документ, включая ифрейм и ссылки в нём.
>Соответственно, ссылки в НОВОМ документе уже не будут активными.
>Вот если бы страница с меню была бы у Вас одна, а содержимое находилось бы в ифрейме и менялось бы в зависимости от выбора ссылки, то тогда активная ссылка таковой бы оставалась.
>Иначе - действие псевдокласса ссылки распространяется ТОЛЬКО на ТЕКУЩИЙ документ.
Вы будете удивлены, но я это хорошо понимаю.

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

Большое спасибо за Ваш отклик!

  Ответить  
 
 автор: АЯ   (04.09.2010 в 16:42)   письмо автору
 
   для: SNSNSN456   (04.09.2010 в 16:07)
 

В данном конкретном случае единственный выход - прописать скрипт в файле menu.html, который определит parent.document.location.href и таким образом узнает - в каком из разделов меню в данном случае находится юзер.

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

Если нужна будет помощь по скрипту - свистите :-)

  Ответить  
 
 автор: SNSNSN456   (04.09.2010 в 17:30)   письмо автору
 
   для: АЯ   (04.09.2010 в 16:42)
 

АЯ, Огромное спасибо за Ваши советы, пошел пробовать.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования