#html #css #pseudo-element #css-content
#HTML #css #псевдоэлемент #css-контент
Вопрос:
Я пытаюсь отобразить в своих элементах 2 вещи; class
имя и собственную созданную data-size
переменную. Разделены одним пробелом.
Я мог бы заставить это работать, выполнив это:
.element:before {
content: attr(class);
}
.element:after {
content: attr(data-size);
}
Но это не похоже на правильный способ сделать это. Я также пытался это сделать:
.element:before {
content: attr(class data-size);
}
Но это не сработало.
Ввод
HTML
<div class="element" data-size="20"></div>
CSS
.element:before {
content: attr(class data-size);
}
Требуемый результат
элемент 20
Комментарии:
1. попробуйте
attr(class)" "attr(data-size)
Ответ №1:
Чтобы объединить два или более строковых значения в CSS, разделите их пробелом:
.element:before {
content: attr(class) ' ' attr(data-size);
}
Обратите внимание, что пробелы между attr()
функциями и кавычками не совпадают с пробелами внутри кавычек. Последнее представляет собой фактическую строку, содержащую пробел, который будет разделять два значения атрибута в выходных данных. Пробел между тремя частями — это оператор, который соединяет их вместе.
Комментарии:
1. Спасибо, принимаю ваш ответ, когда смогу. Могу ли я делать это столько раз, сколько захочу, и могу ли я добавить сюда и другие вещи?
2. @Bas: Да, вы можете сделать это с таким количеством строк, сколько захотите. Вы также можете поместить любую другую строку, которую хотите, если вы заключили ее в кавычки, например
content: attr(data-foo) ' abc';
3. ну ладно, не знал. Можно ли также вставить новую строку?
4. @Bas: Да, для вставки новой строки используйте
'A'
. Вам нужно будет добавитьwhite-space: pre
илиpre-wrap
к вашему правилу, чтобы заставить его фактически отображать разрыв строки. Вот демонстрация: jsfiddle.net/BoltClock/vD4E3/95. По какой-то причине это не сработало:
content: attr(class) 'A' attr(data-size);