Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.01.2022, 13:48
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,775

Атрибуты с префиксом в CSS. Совсем нельзя?
У атрибутов элементов может быть префикс
Типа
<time ip:alive>
Js нормально отрабатывает (пишет, читает) такие атрибуты
А в CSS никак

time[ip:alive] {
....
}

Никак не отрабатывает.
Аналогично querySelector('time[ip:alive]') орет матом

Никак нельзя? Или какой то особый синтаксис для этого есть?
Ответить с цитированием
  #2 (permalink)  
Старый 04.01.2022, 14:19
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,287

Сообщение от voraa
Никак нельзя?
В селекторах двоеточие используется как разделитель, для псевдоэлементов.
Ответить с цитированием
  #3 (permalink)  
Старый 04.01.2022, 14:31
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 499

Просто двоеточие нужно экранировать:
<head>
<style>
time[ip\:alive] {
   color: green;
}
</style>
</head>
<body>
<time ip:alive>
Js нормально отрабатывает (пишет, читает) такие атрибуты
<br>А в CSS никак
</time>
<script>
console.log(document.querySelector('time[ip\\:alive]').attributes);
</script>
</body>
Ответить с цитированием
  #4 (permalink)  
Старый 04.01.2022, 14:55
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,775

Вау! Здорово!
Мне попадалась такая конструкция тут
https://oreillymedia.github.io/Using...amespaces.html
Но там же все больше пишут про конструкцию вида [ip|alive], которая почему то ни фига не работает.

На mdn тоже только какие то не внятные слова про | находил
https://developer.mozilla.org/ru/doc...CSS/@namespace

Последний раз редактировалось voraa, 04.01.2022 в 14:58.
Ответить с цитированием
  #5 (permalink)  
Старый 04.01.2022, 15:15
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,775

Сообщение от Rise
Где на MDN об этом почитать?
https://developer.mozilla.org/en-US/...PI/Attr/prefix
Ответить с цитированием
  #6 (permalink)  
Старый 04.01.2022, 15:17
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,775

Сообщение от Rise
Ну это опять XHTML.
Да хрен с ним. Лишь бы работало
В html с <!DOCTYPE html> работает, и хорошо.
Ответить с цитированием
  #7 (permalink)  
Старый 04.01.2022, 17:17
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,775

Сообщение от Rise
А смысл в нем если он в html всегда null?
В чем и кто null?
Ответить с цитированием
  #8 (permalink)  
Старый 04.01.2022, 21:45
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,600

voraa,
Цитата:
Note: Only XML supports namespaces. HTML does not. That means that the prefix of an attribute of an HTML element will always be null.
Цитата:
В html с <!DOCTYPE html> работает, и хорошо.
Даже если оно работает - оно может в любой момент перестать. Использовать недокументированные возможности без очень серьёзной причины - не стоит.
__________________
29375, 35

Последний раз редактировалось Aetae, 04.01.2022 в 21:50.
Ответить с цитированием
  #9 (permalink)  
Старый 04.01.2022, 22:04
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,775

Ну хорошо, пускай это не префикс, а просто имя такое. Разрешенное!
Цитата:
Attribute names must consist of one or more characters other than the space characters, U+0000 NULL, U+0022 QUOTATION MARK ("), U+0027 APOSTROPHE ('), U+003E GREATER-THAN SIGN (>), U+002F SOLIDUS (/), and U+003D EQUALS SIGN (=) characters, the control characters, and any characters that are not defined by Unicode. In the HTML syntax, attribute names, even those for foreign elements, may be written with any mix of lower- and uppercase letters that are an ASCII case-insensitive match for the attribute's name.
https://www.w3.org/TR/2011/WD-html5-...l#attributes-0

Важно было, как задать это в CSS.
Экранировка доставляет удовольствие.
Если просто в CSS так
time[ip\:alive] {
   color: green;
}


В js так
document.querySelector('time[ip\\:alive]')


А в js в строке, которую потом загонять в элемент style так
const tymestyle =`
time[ip\\\\:alive] {
   color: green;
}`;
Ответить с цитированием
  #10 (permalink)  
Старый 05.01.2022, 15:42
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,775

Там любой атрибут (не обязательно с : ), который не предназначен для данного тега вызывает ошибку.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Jquery load() и css, подгружаемый элeмент не воспринимает атрибуты validol jQuery 0 15.12.2010 13:59
JQuery CSS анализатор javascript jQuery 2 15.08.2010 21:27
Подскажите по CSS меню Александр_1988 Элементы интерфейса 1 17.05.2010 11:58