Я хотел бы, чтобы все "®" на сайте были в верхнем индексе. Могу ли я сделать это с помощью CSS?
Товарный знак регистрации суперскриптов CSS
Ответ 1
Я знаю, что вы спросили CSS, но этот код jQuery работал у меня, надеюсь, что это поможет вам
<html>
<head>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js">
</script>
<script type="text/javascript">
$(document).ready(function() {
$("body").html(
$("body").html().replace("®", "<sup>®</sup>")
);
});
</script>
</head>
<body>
Some text here ®
</body>
</html>
Ответ 2
Ответ на AverageAdam будет работать нормально, но если вам по какой-то причине нужна версия CSS, вы можете сделать это:
.sup { vertical-align: super; }
и
<span class="sup">®</span>
Из здесь.
Ответ 3
<sup>®</sup>
К сожалению, у CSS нет способа указать верхний индекс. Однако вы можете имитировать его с помощью диапазона и некоторых тегов.
Ответ 4
добавьте это в свой html файл <sup>your mark here</sup>
затем добавьте это в свой css
sup {
position: relative;
font-size: 40%;
line-height: 0;
vertical-align: baseline;
top: -1.2em;
}
Вы можете отрегулировать высоту метки с помощью "top" в css и размера с "font-size". Это также будет работать для любого TM, SM или символа, который вы хотите. Это не повлияет на ваш интервал или типографику.
Ответ 5
используйте CSS ниже, чтобы создать тег, который не возится с вашим ведущим. Отрегулируйте значения по мере необходимости. Размер шрифта не является обязательным, я использовал его, чтобы сделать r-шары немного меньше, чем зарегистрированный товарный текст.
sup{
vertical-align: 75%;
line-height: 5px;
font-size:11px;
}
Ответ 6
Виктор ответил только на первый знак Reg на моей странице. Я нашел этот код для работы на всей странице. Надеюсь, это поможет кому-то:
$("body").html(
$("body").html().replace(/®/gi, '<sup>®</sup>').replace(/®/gi, '<sup>®</sup>')
);
нашел это здесь: http://www.cmexsolutions.com/blog/use-jquery-to-superscript-all-register-marks-reg-or-%C2%AE
Ответ 7
В дополнение к предыдущим ответам, я бы предположил, что надстрочный шрифт является презентационным, а не семантическим, и поэтому стилизация регистрационной метки должна выполняться с использованием CSS. Независимо от того, надстрочный или нет, отметка о регистрации по-прежнему является регистрационным знаком и будет признана как знак регистрации людьми/компьютерами. Сам символ можно считать смысловым, поскольку он дает "особый" смысл объекту, к которому он относится, но его стиль является полностью презентационным. По соглашению регистрационный знак часто (но не всегда) надстрочный, как и символ торговой марки.
Ответ 8
Единственная проблема с некоторыми из приведенных выше сценариев заключается в том, что они не имеют дело с тем, что на странице могут существовать некоторые элементы & reg;. В этом случае они будут заменены на: & reg;.
Я думаю, что такое решение может иметь больше смысла.
$("body").html(
$("body").html().replace(/<sup>®<\/sup>/gi, '®').
replace(/®/gi, '<sup>®</sup>').
replace(/®/gi, '<sup>®</sup>')
);
Ответ 9
если вы не против использования jQuery:
$("p,h1,h2,h3,h4").each(function(){
$(this).html($(this).html().replace(/®/gi, '<sup>®</sup>').replace(/®/gi, '<sup>®</sup>'));
});
он работает намного быстрее, чем модификация всего тега body
(как в Robert's и ответы Виктора)
Ответ 10
Если вы собираетесь использовать регулярное выражение, почему бы не очистить его одним вызовом
$("p,h1,h2,h3,h4,h5,h6,li,dd,dt,a").each(function(){
var $this = $(this);
$this.html($this.html().replace(/(<sup>)?(®|®)(<\/sup>)?/gi, '<sup>®</sup>'));
});
Я не рекомендую делать это на теле, как это сделал OP. Это может помешать встроенному javascript, который может иметь в нем символ.