Подтвердить что ты не робот

Товарный знак регистрации суперскриптов CSS

Я хотел бы, чтобы все "®" на сайте были в верхнем индексе. Могу ли я сделать это с помощью CSS?

4b9b3361

Ответ 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>&reg;</sup>")
                ); 
            });
        </script>
    </head>
    <body>
        Some text here &reg;
    </body>
</html>

Ответ 2

Ответ на AverageAdam будет работать нормально, но если вам по какой-то причине нужна версия CSS, вы можете сделать это:

.sup { vertical-align: super; }

и

<span class="sup">&reg;</span>

Из здесь.

Ответ 3

<sup>&reg;</sup>

К сожалению, у CSS нет способа указать верхний индекс. Однако вы можете имитировать его с помощью диапазона и некоторых тегов.

http://www.webmasterworld.com/forum83/1031.htm

Ответ 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(/&reg;/gi, '<sup>&reg;</sup>').replace(/®/gi, '<sup>&reg;</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>&reg;<\/sup>/gi, '&reg;').
        replace(/&reg;/gi, '<sup>&reg;</sup>').
        replace(/®/gi, '<sup>&reg;</sup>')
);

Ответ 9

если вы не против использования jQuery:

$("p,h1,h2,h3,h4").each(function(){
    $(this).html($(this).html().replace(/&reg;/gi, '<sup>&reg;</sup>').replace(/®/gi, '<sup>&reg;</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>)?(&reg;|®)(<\/sup>)?/gi, '<sup>®</sup>'));
});

Я не рекомендую делать это на теле, как это сделал OP. Это может помешать встроенному javascript, который может иметь в нем символ.