Возможо ли изменить css по названию документа, например:
index.html a {color:orange;}
или
$('index.html a').css({'color':'orange'});
Через CSS нельзя (не существует такого селектора), а через JS - легко:
document.location.pathname
; pathname
, используя любой удобный метод проверки вхождения подстроки; <style>
/ через свойство style
для отдельных элементов).Простой пример:
let test = document.getElementById('test'),
pageName = document.location.pathname;
console.log('pageName (у здешних вставок кода оно всегда "/js"): ' + pageName);
test.addEventListener('click', () => {
// это условие вернет false (т.к. в пути не содержится 'search') и стиль применен не будет
if(pageName.indexOf('search') !== -1)
test.style.borderRadius = '50px';
// а тут условие выполняется, и фоновый цвет изменится на зеленый
if(pageName.indexOf('js') !== -1)
test.style.backgroundColor = '#4a4';
});
#test {
width: 100px;
height: 100px;
border: 1px solid red;
cursor: pointer;
}
Кликните по элементу для применения стилей
<div id="test"></div>
Когда требуется гибкость, вместо indexOf
(который тут использован для простоты) при сравнении можно использовать регулярное выражение, например /^\/articles\/[\w-]+?.php/i
.
var s = document.getElementsByTagName("title")[0];
var test = document.getElementById("test");
if(s.dataset.file == "index.html"){
test.style.color = "red";
} else {
test.innerText ="Что-то не работает этот скрипт";
}
<head>
<meta charset="utf-8">
<title data-file="index.html">Test</title>
</head>
<body>
<div id="test">Test</div>
</body>
Вообщем, логика такова: нужно как-то пометить нужную страницу. Я это сделал, добавив в тег title
дополнительный атрибут с названием файла.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
на сайте https://smartbalanceonline стоит плагин Buy one click WooCommerce
Написал для наглядности часть меню с выпадающим списком, хочу понять следующее: