2016-04-01 2 views
9

Я прочитал что-то, что взорвало мой разум, и я хочу спросить, возможно ли это или нет.Звук на псевдоэлементах с использованием CSS

Согласно content атрибута w3school docs может занять url значение, которое может представлять собой звук?!

url (URL) Устанавливает содержание, чтобы быть какой-то медиа (образ, звук, видео и т.д.)

Согласно MDN

Значение является URI, который обозначает внешний ресурс (например, изображение ). Если ресурс или изображение не могут быть отображены, это либо игнорируется, либо появляется какой-либо заполнитель.

Так что я попробовал

content: url('http://www.w3schools.com/html/horse.ogg');

И ничего не происходит. Мой вопрос: Действительно ли можно запускать звуковые эффекты с помощью CSS или это просто ошибка в документах w3schools?

Edit: пример, когда это может быть полезным:

Из курса вы можете вызвать звуки с помощью JS, но бывают случаи, что вы не разрешается использовать Javascript или пользователь не включен JavaScript , Итак, представьте, что вы обслуживаете элемент на третьем веб-сайте, и вам разрешено использовать только HTML + CSS (например, баннер), если content действительно принимает звуки, это позволило бы запускать звуковые эффекты при наведении псевдоэлементов.

+2

Даже если это действительно сработало, каков будет ожидаемый результат? Как бы вы даже контролировали звук? – noahnu

+1

@noahnu запускает звуковой эффект при зависании. –

+2

[w3c пишет] (https://www.w3.org/TR/css3-content/): «Еще одним распространенным эффектом является замена элементов изображениями или другим мультимедийным контентом. Поскольку не все пользовательские агенты поддерживают все мультимедийные форматы, возможно, необходимо предоставить резервные копии. ' –

ответ

5

CSS2.1 говорит

Значение является URI, обозначающий внешний ресурс (например, изображение). Если пользовательский агент не может отобразить ресурс , он должен либо оставить его, как если бы он не был указан, либо отображает некоторые указания на то, что ресурс не может быть отображен.

Старый CSS3 Generated and Replaced Content Module рабочий проект (2003) говорит

если URI доступен и формат поддерживается, то элемент или псевдо-элемент становится заменяемый элемент, в противном случае, следующий пункт в списке, разделенном запятой, если таковой имеется.

проект более новые CSS Generated Content Module Level 3 редакторов (не готов к реализации) говорит, что в принципе то же самое:

Для другой URI, чем URI, в последней запятой разделенного значения , если URI доступен и формат поддерживается, то элемент или псевдоэлемент становится замененным элементом, иначе следующий элемент в списке, разделенном запятой, используется, если таковой имеется.

Таким образом, браузеры могут принять решение о поддержке звука и рендеринга в качестве замещаемого элемента, такого как <audio>. Но, скорее всего, они этого не сделают.

+1

Если браузер решил поддерживать аудио в' content', я бы предположил, что это не будет очень эффективно без дополнительных свойств CSS для управления аудио [атрибутами] (https://developer.mozilla.org/en/docs/Web/HTML/Element/audio#Attributes). – noahnu

2

The W3C spec читает несколько иначе

Значение является URI, обозначающий внешний ресурс (например, изображение). Если пользовательский агент не может отобразить ресурс, он должен либо оставить его, как если бы он не был указан, либо отобразить некоторое указание на то, что ресурс не может быть отображен.

Там нет ссылки на звук ... если это было возможно, нет указаний на то, как это будет отображать/звук/активировать ... и, в лучшем случае, в настоящее время, что будет выполняться до браузера.

Итак ... возможно, W3Schools ошибались .... не в первый раз.

+0

Значение «медиа» - «все», а ссылка «все» включает в себя «звук» в «типах мультимедиа»: https://www.w3.org/TR/CSS2/media.html#all-media- group – Rob

+0

@Rob не ссылается на «носитель», на котором отображается ваш HTML/CSS? Для использования в '@media screen/print' и т. Д. – noahnu

Смежные вопросы