Malleys, неужели сложно к этому скрипту добавить следующий функционал,
Цитата:
|
Цитата:
div > a:nth-of-type(-n + 3) { background: yellow; } Вы посмотрели хоть какие-нибудь материалы, которые я посоветовал вам для изучения CSS? Цитата:
<p><s>https://example.com/<mark>textbook/css/css-filters-2/properties/backdrop-filter</mark></s></p> <p>https://example.com/textbook/<mark>css/css-filters-2/properties/backdrop-filter</mark></p> <p>https://example.com/textbook/css/<mark>css-filters-2/properties/backdrop-filter</mark></p> <p>https://example.com/textbook/css/css-filters-2/<mark>properties/backdrop-filter</mark></p> <p>https://example.com/textbook/css/css-filters-2/properties/<mark>backdrop-filter</mark></p> |
Malleys,
вот код страницы <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="https://www.w3.org/1999/xhtml"> <head> <title>transform</title> <style type="text/css"> body { font: 14px normal Times, serif; } div { border: 1px solid #999; padding: 5px; margin: 5px; } a:active, a:link { color: #005aff; text-decoration: none; } a.:visited { color: #5995ff; text-decoration: none; } a:hover { color: #7a00ff; text-decoration: none; } .efg { color: #167016; } .def { color: #127a12; } .cde { color: #0d850d; } .bcd { color: #068f06; } .abc { color: #009900; } </style> <script> var classes = ['act', 'abc', 'bcd', 'cde', 'def', 'efg']; (function() { var links = Array.prototype.slice.call(document.links); for(var index = 0, length = links.length, link; index < length; index++) { link = links[index]; if(link.href === location.href) { var p = document.createElement("span"); p.className = "act"; p.innerHTML = link.innerHTML; link.parentNode.replaceChild(p, link); } } })(); </script> </head> <body> <div class="menu" id="menu1"> <a href="/razdel/">razdel/</a><br> <a href="/razdel/01.html">page-01</a><br> <a href="/razdel/02.html">page-02</a><br> <a href="/razdel/03.html">page-03</a> <div class="menu" id="menu2"> <a href="/razdel/podrazdel/">podrazdel/</a><br> <a href="/razdel/podrazdel/01.html">page-01</a><br> <a href="/razdel/podrazdel/02.html">page-02</a><br> <a href="/razdel/podrazdel/03.html">page-03</a> <div class="menu" id="menu3"> <a href="/razdel/podrazdel/podpodrazdel/">podpodrazdel/</a><br> <a href="/razdel/podrazdel/podpodrazdel/01.html">page-01</a><br> <a href="/razdel/podrazdel/podpodrazdel/02.html">page-02</a><br> <a href="/razdel/podrazdel/podpodrazdel/03.html">page-03</a> <div class="menu" id="menu4"> <a href="/razdel/podrazdel/podpodrazdel/podrazdel-a/">podrazdel-a/</a><br> <a href="/razdel/podrazdel/podpodrazdel/podrazdel-a/01.html">page-01</a><br> <a href="/razdel/podrazdel/podpodrazdel/podrazdel-a/02.html">page-02</a><br> <a href="/razdel/podrazdel/podpodrazdel/podrazdel-a/03.html">page-03</a> </div> </div> </div> </div> </body> </html> а вот адрес сайт.ru/razdel/podrazdel/podpodrazdel/podrazdel-a/01.html" На этой странице надо найти ссылки соответствующие текущему адресу, через location href обрезать окончания адреса до слеша и присвоить классы из массива, так понятно будет? |
Цитата:
<!doctype html> <html> <head> <title>transform</title> <style> body { font: 14px normal Times, serif; } div { border: 1px solid #999; padding: 5px; margin: 5px; } a { color: #005aff; text-decoration: none; } a:visited { color: #5995ff; text-decoration: none; } a:hover { color: #7a00ff; text-decoration: none; } .act { color: initial; pointer-events: none; } .efg { color: #167016; } .def { color: #127a12; } .cde { color: #0d850d; } .bcd { color: #068f06; } .abc { color: #009900; } </style> <script> document.addEventListener("DOMContentLoaded", function() { var links = Array.prototype.slice.call(document.links); var classes = ["act", "abc", "bcd", "cde", "def", "efg"]; var href = location.href; for(var index = 0, length = links.length, link; index < length; index++) { link = links[index]; for(var level = 0, part = href; level < classes.length; level++) { if(link.href === part || link.href === part + "/") { link.className = classes[level]; break; } part = part.replace(/\/[^/]*\/?$/, ""); } } }); </script> </head> <body> <div class="menu" id="menu1"> <a href="/razdel/">razdel/</a><br> <a href="/razdel/01.html">page-01</a><br> <a href="/razdel/02.html">page-02</a><br> <a href="/razdel/03.html">page-03</a> <div class="menu" id="menu2"> <a href="/razdel/podrazdel/">podrazdel/</a><br> <a href="/razdel/podrazdel/01.html">page-01</a><br> <a href="/razdel/podrazdel/02.html">page-02</a><br> <a href="/razdel/podrazdel/03.html">page-03</a> <div class="menu" id="menu3"> <a href="/razdel/podrazdel/podpodrazdel/">podpodrazdel/</a><br> <a href="/razdel/podrazdel/podpodrazdel/01.html">page-01</a><br> <a href="/razdel/podrazdel/podpodrazdel/02.html">page-02</a><br> <a href="/razdel/podrazdel/podpodrazdel/03.html">page-03</a> <div class="menu" id="menu4"> <a href="/razdel/podrazdel/podpodrazdel/podrazdel-a/">podrazdel-a/</a><br> <a href="/razdel/podrazdel/podpodrazdel/podrazdel-a/01.html">page-01</a><br> <a href="/razdel/podrazdel/podpodrazdel/podrazdel-a/02.html">page-02</a><br> <a href="/razdel/podrazdel/podpodrazdel/podrazdel-a/03.html">page-03</a> </div> </div> </div> </div> </body> </html>Так подходит? Широкие однако у вас интересы... Теперь учебник про подподподразделы пишете! Цитата:
|
Malleys,
если честно то не знаю, на странице почему то не подсвечивает, P. S. я походу опять не так объяснила, ссылка на саму себя должна заменится на спан которому надо присвоить класс который стоит первым в массиве степень вложенности может быть намного больше, порядка 12-15, до 20 (/папка/папка/.../папка/ и т.д.) |
мне почему-то казалось что фраза (ну или пост)
Цитата:
|
Вы поменяли 33 строчку... хотя это вы попытались пошутить и неожиданно спалились, что вы знаете тонкости RegExp!
Какой баг!!! Я проверял этот скрипт на реальных переходах по ссылке (сервер же можно настроить так, чтобы он отвечал на все запросы одним ответом) Однако ваш ларёк теряет обратные слеши, если создавать файл через их сайт, однако если загрузить файл, то не теряет! Вам надо сохранить скрипт в файл, и затем загрузить на ларёк! |
Malleys,
сейчас загрузила страницу, обратные слеши появились, ссылка на саму себя заменилась на текст, но ссылки на главные папок почему то не подсвечивает, и в моём браузере и в опере классик |
А почему вы решили, что если правило написать ниже в CSS, то оно отменяет те, которые выше?
a:active, a:link замените на a Вы не ответили на вопрос... Вы посмотрели видео/статьи про CSS? Цитата:
|
Цитата:
|
походу я опять где-то накосячила, скрипт подсвечивает ссылки на главные папок, но ссылку на саму себя не меняет на спан
|
Malleys,
можно спросить? какая строка меняет тег <а> на спан? |
Никто не знает как на этой странице ссылку (тег <а>) заменить на текст (тег <span>)?
<!DOCTYPE html> <html> <head> <title>transform</title> <style> body { font: 14px normal Times, serif; } div { border: 1px solid #999; padding: 5px; margin: 5px; } a:active, a:link { color: #005aff; text-decoration: none; } a.act:active, a.act:link { color: #009900; text-decoration: none; } a.abc:active, a.abc:link { color: #009900; text-decoration: none; } a.bcd:active, a.bcd:link { color: #068f06; text-decoration: none; } a.cde:active, a.cde:link { color: #0d850d; text-decoration: none; } a.def:active, a.def:link { color: #127a12; text-decoration: none; } a.efg:active, a.efg:link { color: #167012; text-decoration: none; } a.:visited { color: #5995ff; text-decoration: none; } a:hover { color: #7a00ff; text-decoration: none; } </style> <script> document.addEventListener("DOMContentLoaded", function() { var links = Array.prototype.slice.call(document.links); var classes = ["act","abc", "bcd", "cde", "def", "efg"]; var href = location.href; for(var index = 0, length = links.length, link; index < length; index++) { link = links[index]; for(var level = 0, part = href; level < classes.length; level++) { if(link.href === part || link.href === part + "/") { link.className = classes[level]; break; } part = part.replace(/\/[^/]*\/?$/, ""); } } }); </script> </head> <body> <div class="menu" id="menu1"> <a href="/razdel/">razdel/</a><br> <a href="/razdel/01.html">page-01</a><br> <a href="/razdel/02.html">page-02</a><br> <a href="/razdel/03.html">page-03</a> <div class="menu" id="menu2"> <a href="/razdel/podrazdel/">podrazdel/</a><br> <a href="/razdel/podrazdel/01.html">page-01</a><br> <a href="/razdel/podrazdel/02.html">page-02</a><br> <a href="/razdel/podrazdel/03.html">page-03</a> <div class="menu" id="menu3"> <a href="/razdel/podrazdel/podpodrazdel/">podpodrazdel/</a><br> <a href="/razdel/podrazdel/podpodrazdel/01.html">page-01</a><br> <a href="/razdel/podrazdel/podpodrazdel/02.html">page-02</a><br> <a href="/razdel/podrazdel/podpodrazdel/03.html">page-03</a> <div class="menu" id="menu4"> <a href="/razdel/podrazdel/podpodrazdel/podrazdel-a/">podrazdel-a/</a><br> <a href="/razdel/podrazdel/podpodrazdel/podrazdel-a/01.html">page-01</a><br> <a href="/razdel/podrazdel/podpodrazdel/podrazdel-a/02.html">page-02</a><br> <a href="/razdel/podrazdel/podpodrazdel/podrazdel-a/03.html">page-03</a> </div> </div> </div> </div> </body> </html> |
Чтобы ссылка не нажималась можно так...
.act { pointer-events: none; } Непонятно зачем вы это удалили! Для вас имеет какой-то сакральный смысл элемент <span>? Зачем вы удаляете все отступы в коде? https://javascript.ru/forum/505820-post124.html |
Malleys,
ссылка хоть не нажималась, но не подсвечивалась у меня есть какая то старая версия оперы-мини которая даже радиус углов не распознаёт, этим я хочу сказать, что если я сама могу обновить свой браузер до последней версии, то заставить всех посетителей обновлять браузеры я не могу, так же нельзя предугадать с какого браузера зайдёт посетитель, поэтому желательно чтобы скрипт работал во всех браузерах и старых версиях тоже (разные недоразумения типа ослика иа в список не входят). |
Так напишите в .act как должна выглядеть эта ссылка!
99.9% обычных людей заходят с обновлённого браузера, остальные являются параноиками, веб-программистами, веб куда-то скатился, против всех, гугл следит, люблю хрюшу, гиками, ночтальгия по 2007... а вы тут со своим border-radius Я не знаю, как вы проверяете свой код, но почему бы его не запускать в песочнице, типа печатаете и сразу результат видно... Цитата:
У вас прямо философия получается: меняю кнопку на див, ссылку на спан. Давайте угадаю, дальше идёт: меняю стиль на блок, картинку на холст... как зачем? Меняю текст на картинку! Какой баг!!! типа печатаете и сразу результат видно, а то ваш ларёк на погроммирование в аду похож! И попробуй введи обратный слеш! |
возможно ли сделать со спаном или нет?
|
Цитата:
|
Цитата:
дальше я просто спросила про скрипт для более сложного сайта, где много папок и страниц, с большой вложенностью, я воспринимаю это как отдельные скрипты, каждый предназначеный для похожих но немного разных целей. |
Вот оно для одного и другого вместе, объединил, проверьте...
<!doctype html> <html> <head> <title>transform</title> <style> body { font: 14px normal Times, serif; } div { border: 1px solid #999; padding: 5px; margin: 5px; } a { color: #005aff; text-decoration: none; } a:visited { color: #5995ff; text-decoration: none; } a:hover { color: #7a00ff; text-decoration: none; } .act { text-decoration: underline; } .efg { color: #167016; } .def { color: #127a12; } .cde { color: #0d850d; } .bcd { color: #068f06; } .abc { color: #009900; } </style> <script> document.addEventListener("DOMContentLoaded", function() { var links = Array.prototype.slice.call(document.links); var classes = ["act", "abc", "bcd", "cde", "def", "efg"]; var href = location.href; for(var index = 0, length = links.length, link; index < length; index++) { link = links[index]; for(var level = 0, part = href; level < classes.length; level++) { if(link.href === part || link.href === part + "/") { if(level === 0) { var p = document.createElement("span"); p.className = classes[level]; p.innerHTML = link.innerHTML; link.parentNode.replaceChild(p, link); } else { link.className = classes[level]; } break; } part = part.replace(/\/[^/]*\/?$/, ""); } } }); </script> </head> <body> <div class="menu" id="menu1"> <a href="/razdel/">razdel/</a><br> <a href="/razdel/01.html">page-01</a><br> <a href="/razdel/02.html">page-02</a><br> <a href="/razdel/03.html">page-03</a> <div class="menu" id="menu2"> <a href="/razdel/podrazdel/">podrazdel/</a><br> <a href="/razdel/podrazdel/01.html">page-01</a><br> <a href="/razdel/podrazdel/02.html">page-02</a><br> <a href="/razdel/podrazdel/03.html">page-03</a> <div class="menu" id="menu3"> <a href="/razdel/podrazdel/podpodrazdel/">podpodrazdel/</a><br> <a href="/razdel/podrazdel/podpodrazdel/01.html">page-01</a><br> <a href="/razdel/podrazdel/podpodrazdel/02.html">page-02</a><br> <a href="/razdel/podrazdel/podpodrazdel/03.html">page-03</a> <div class="menu" id="menu4"> <a href="/razdel/podrazdel/podpodrazdel/podrazdel-a/">podrazdel-a/</a><br> <a href="/razdel/podrazdel/podpodrazdel/podrazdel-a/01.html">page-01</a><br> <a href="/razdel/podrazdel/podpodrazdel/podrazdel-a/02.html">page-02</a><br> <a href="/razdel/podrazdel/podpodrazdel/podrazdel-a/03.html">page-03</a> </div> </div> </div> </div> </body> </html> Надо для простого пишите var classes = ["act"]; Надо для сложного пишите var classes = ["act", "abc", "bcd", "cde", "def", "efg"]; Строка 21 в этом посте |
не знаю почему, но на странице спан почему-то черный
|
Блондинка, решетку пропустили.
span.act { color: *!*#*/!*ffff00; } |
Nexus,
:thanks: |
Malleys,
:thanks: |
возможно ли на странице с помощью css, так сказать "прокрутить" содержимое див'а чтобы спан или занимал верхнее положение, а ссылки которые перед ним были скрыты но можно было прокрутить вниз, или чтобы занимал такое место чтобы ниже ссылок не оставалось свободного места,
а не так как сейчас, спан находиться "поверх" ссылки на страницу 01 |
наверное лучше использовать margin с отрицательным значением для первой ссылки? и на каждой странице выставлять своё значение? вместо позиционирования? вопрос как лучше реализовать на css без использования js.
|
свойство margin с минусовыми значениями сдвигает только до границы родительского див'а, свойство position relative сдвигает на нужное количество пикселей но не даёт прокручивать вниз, только можно покрутить вверх, и при прокручивании вверх до конца остаётся свободное место между последней ссылкой и нижним краем див'а, кто знает что можно предпринять?
|
как обычно, не могу правильно сформулировать вопрос,
ну незнаю я как правильно объяснить |
laimas,
и ты тоже ничего не подскажешь по css ? |
Цитата:
|
laimas,
так уже давно всё раскрасили, вопрос в том как сделать чтобы содержимое див'а со скроллингом при первоначальной загрузке и при обновлении страницы было смещено/прокручено на столько то пикселей, и чтобы оставалась возможность прокрутки в обе стороны |
Поскольку я буду вручную редактировать страницы, скрипты не нужны, чисто стили
|
<script> window.onload = function() { menu5.scrollTop = 36 }; </script> вот что нужно, но вопрос как реализовать это чисто на css? |
Я не знаю средств css, которые бы занимались прокруткой, есть отступы внутренние/внешние.
|
Цитата:
Цитата:
Цитата:
UPD Ваше width: 200px; display: inline-block; делается так: display: block; |
Цитата:
возможно ли переделать этот скрипт Цитата:
поскольку я вручную буду редактировать страницы, то на каждой странице выставлять свои имена классов/идов див'ов, имена классов элементов чьи координаты надо найти, и значения которые надо отнять вручную – не проблема. |
Malleys,
я не хочу скрывать от пользователя что либо, а только прокрутить до спана на который была заменена ссылка, и чтобы пользователь мог прокрутить и назад и вперёд. |
другими словами я хочу чтобы подсвеченные ссылки и спан были в зоне видимости по умолчанию, а пользователь решал в какую сторону прокручивать меню
|
если пользователь на пятнадцатой странице или допустим на стокакойто, то ссылку (или ссылку замененную на спан) естественно не увидит без прокрутки вручную, я же хочу чтобы по умолчанию при загрузке страницы уже было "прокрученно"
|
Цитата:
Если такая забота о доступе, фиксируйте меню, делайте его более удобным и т.д. |
Часовой пояс GMT +3, время: 23:45. |