А где сказано, что ::before нельзя выделять?
Простой пример
<head> <style> .text { font-size: 18px; margin-left: 2em; } p { margin-bottom:1em; } .anchor{ position: relative; scroll-margin-top: 2rem; } .anchor::before { content: "#" attr(id); color: #888; font-family: Arial; font-size: 0.8em; /* font-weight: bold; */ position: absolute; display: block; left: -2rem; top: -1em; padding-right: 0.5em; } </style> </head> <body> <div class='text'> <p> Текст Текст Текст Текст Текст Текст Текст Текст <br> Текст Текст Текст Текст Текст Текст Текст Текст <br> Текст Текст Текст Текст Текст Текст Текст Текст <br> Текст Текст Текст Текст Текст Текст Текст Текст <br> Текст Текст Текст Текст Текст Текст Текст Текст <br> </p> <h3 id='Zagolovok' class='anchor'> Заголовок </h3> <p> Текст Текст Текст Текст Текст Текст Текст Текст <br> Текст Текст Текст Текст Текст Текст Текст Текст <br> Текст Текст Текст Текст Текст Текст Текст Текст <br> Текст Текст Текст Текст Текст Текст Текст Текст <br> Текст Текст Текст Текст Текст Текст Текст Текст <br> Текст Текст Текст Текст Текст Текст Текст Текст <br> Текст Текст Текст Текст Текст Текст Текст Текст <br> Текст Текст Текст Текст Текст Текст Текст Текст <br> Текст Текст Текст Текст Текст Текст Текст Текст <br> Текст Текст Текст Текст Текст Текст Текст Текст <br> </p> </div> </body> Очень надо выделить '#Zagolovok' Как быть то? |
Оказывается сказано.
Сказано, что User Agent (то бишь браузер) МОЖЕТ позволить выделение псевдоэлементов ::before и ::after. Раз может позволить, значит может и не позволить. Вот эти агенты и стараются - не позволяют. Печалька. |
Хороший пример логической ошибки.
Когда вывод делается с нарушением 4го закона логики. Просто ты воспринимаешь '#Zagolovok' как часть страницы которую можно отдельно выделить а на самом деле это стилевое свойство блока "Заголовок". К примеру если бы у блока "Заголовок" было бы стилевое свойство красной тени и желтого фона то так же было бы невозможно выделить только тень и фон что бы скопировать. |
Цитата:
Это не просто часть заголовка типа тени или подчеркивания. Это элемент (как везде говорится), хотя и псевдо. Рисунки (img), тоже используются для стилевого оформления, однако их можно и выделить и скопипастить. Проблема в том, что ни в одном месте разных документаций не сказано, что эти элементы нельзя выделять. Даже в спецификации CSS-2 для псевдоэлементов. Единственное место нашел - спецификация CSS-4 для свойства user-selеct, где говорится, что UserAgent может позволить устанавливать для них и другие значения, кроме none. |
элемент === псевдоэлемент ?
|
Цитата:
Если посмотреть в средствах разработчика свойства псевдоэлемента, то у него есть такие свойства, как nodeType = 1 tagName = '::before' parentElement Ну и многое другое, свойственное элементу. |
А почему их называют разными названиями?
|
Цитата:
ПОКА - потому, что ведутся какие то обсуждения, что бы дать к нему доступ из js. Вроде пока остановились на методе pseudo() для html элементов. Насколько полный набор свойств там будет - не понятно. Пока обсуждают, что должны быть свойства для целей анимации (не знаю, какие это) Возвращаясь к предыдущей теме. В одном документе написано, что браузер МОЖЕТ дать возможность выделять. В другом документе, посвященном свойству content, сказано, что сгенерированное содержимое ДОЛЖНО быть выделяемым, доступным для поиска и речевых технологий. https://drafts.csswg.org/css-content/#content-property Слишком много народу все это разрабатывает и между собой согласовать все не могут. А уж с производителями браузеров тем более. |
Часовой пояс GMT +3, время: 20:04. |