Adding HTML entities using CSS content

后端 未结 9 1140
长情又很酷
长情又很酷 2020-11-22 06:57

How do you use the CSS content property to add HTML entities?

Using something like this just prints  

相关标签:
9条回答
  • 2020-11-22 07:23

    In CSS you need to use a Unicode escape sequence in place of HTML Entities. This is based on the hexadecimal value of a character.

    I found that the easiest way to convert symbol to their hexadecimal equivalent is, such as from ▾ (▾) to \25BE is to use the Microsoft calculator =)

    Yes. Enable programmers mode, turn on the decimal system, enter 9662, then switch to hex and you'll get 25BE. Then just add a backslash \ to the beginning.

    0 讨论(0)
  • 2020-11-22 07:23

    Use the hex code for a non-breaking space. Something like this:

    .breadcrumbs a:before {
        content: '>\00a0';
    }
    
    0 讨论(0)
  • 2020-11-22 07:24

    CSS is not HTML.   is a named character reference in HTML; equivalent to the decimal numeric character reference  . 160 is the decimal code point of the NO-BREAK SPACE character in Unicode (or UCS-2; see the HTML 4.01 Specification). The hexadecimal representation of that code point is U+00A0 (160 = 10 × 161 + 0 × 160). You will find that in the Unicode Code Charts and Character Database.

    In CSS you need to use a Unicode escape sequence for such characters, which is based on the hexadecimal value of the code point of a character. So you need to write

    .breadcrumbs a:before {
      content: '\a0';
    }
    

    This works as long as the escape sequence comes last in a string value. If characters follow, there are two ways to avoid misinterpretation:

    a) (mentioned by others) Use exactly six hexadecimal digits for the escape sequence:

    .breadcrumbs a:before {
      content: '\0000a0foo';
    }
    

    b) Add one white-space (e. g., space) character after the escape sequence:

    .breadcrumbs a:before {
      content: '\a0 foo';
    }
    

    (Since f is a hexadecimal digit, \a0f would otherwise mean GURMUKHI LETTER EE here, or ਏ if you have a suitable font.)

    The delimiting white-space will be ignored, and this will be displayed  foo, where the displayed space here would be a NO-BREAK SPACE character.

    The white-space approach ('\a0 foo') has the following advantages over the six-digit approach ('\0000a0foo'):

    • it is easier to type, because leading zeroes are not necessary, and digits do not need to be counted;
    • it is easier to read, because there is white-space between escape sequence and following text, and digits do not need to be counted;
    • it requires less space, because leading zeroes are not necessary;
    • it is upwards-compatible, because Unicode supporting code points beyond U+10FFFF in the future would require a modification of the CSS Specification.

    Thus, to display a space after an escaped character, use two spaces in the stylesheet –

    .breadcrumbs a:before {
      content: '\a0  foo';
    }
    

    – or make it explicit:

    .breadcrumbs a:before {
      content: '\a0\20 foo';
    }
    

    See CSS 2.1, section "4.1.3 Characters and case" for details.

    0 讨论(0)
  • 2020-11-22 07:28

    I know this is an pretty old post, but if spacing is all your after, why not simply:

    .breadcrumbs a::before {
        content: '>';
        margin-left: 8px;
        margin-right: 8px;
    }
    

    I have used this method before. It wraps perfectly fine to other lines with ">" by its side in my testing.

    0 讨论(0)
  • 2020-11-22 07:30

    You have to use the escaped unicode :

    Like

    .breadcrumbs a:before {
        content: '\0000a0';
    }
    

    More info on : http://www.evotech.net/blog/2007/04/named-html-entities-in-numeric-order/

    0 讨论(0)
  • 2020-11-22 07:30

    There is a way to paste an nbsp - open CharMap and copy character 160. However, in this case I'd probably space it out with padding, like this:

    .breadcrumbs a:before { content: '>'; padding-right: .5em; }
    

    You might need to set the breadcrumbs display:inline-block or something, though.

    0 讨论(0)
提交回复
热议问题