2015-07-24 9 views
5

Ho un elemento CSS istituito per inserire alcuni contenuti, attraverso:È possibile utilizzare (più) stili di carattere all'interno del contenuto `CSS`?

.foo:after { 
    content: "Bold, italics"; 
} 

mi piacerebbe la parola "Bold" da rendere in un audace font-weight e la parola "corsivo" per essere reso in stile font in corsivo. So che è possibile aggiungere righe:

font-weight: bold; 
font-style: italics; 

Ma questo renderà entrambe le parole in grassetto e in corsivo. Se io uso could elementi HTML all'interno del campo del contenuto metterei qualcosa di simile:

content: "<strong>Bold</strong>, <em>italics</em>" 

Ma, ahimè, che non è possibile.

C'è un altro modo per ottenere questo effetto? Idealmente senza invocare javascript e usando esclusivamente html/css.

+1

Io non la penso così (hack?), Ma sarei interessato a vedere se qualcuno può risolverlo. –

+0

Sembra impossibile, secondo le risposte [1] (http://stackoverflow.com/questions/4505093/css-content-property-is-it-possible-to-insert-html-instead-of-text) e [2] (http://stackoverflow.com/questions/22511499/add-html-tag-inside-css-content-property). Probabilmente verrà contrassegnato come duplicato. – Stickers

+3

oltre all'uso di '.foo: before {font-weight: bold; } 'e poi' .foo: after {font-style: italics; } 'Mi piacerebbe anche conoscere anche questo. Sembra che fare solo uno psuedo senza cambiare il markup non sia possibile? – s0rfi949

risposta

0

E 'di cui sopra, ma a meno che non si aggiunge un :before e non :after troppo sicuro come può essere realizzato senza JS ..

.foo { 
    float: left; 
} 
.foo:after { 
    content: "Bold, "; 
    font-weight: bold; 
    float: right; 
    margin-left: .5em; 
    display: block; 
} 
.foo:before { 
    content: 'Italic'; 
    font-style: italic; 
    float: right; 
    margin-left: .5em; 
    display: block; 
} 

Contiene anche carri allegorici in tutto il mondo, ma, ehi! funziona :)

controllare qui: http://codepen.io/achoukah/pen/gpBopd

EDIT:

Heres lo stesso, ma con flex-box:

.foo { 
    width: 100%; 
    clear: both; 
    display: flex; 
} 
.foo:before { 
    content: "Bold, "; 
    font-weight: bold; 
    margin-left: .5em; 
    order: 1; 

} 
.foo:after { 
    content: 'Italic'; 
    font-style: italic; 
    margin-left: .5em; 
    order: 2; 
} 
1

Si ha altri elementi pseudo di "dopo"/"prima", come prima riga o prima lettera, che, con una certa fantasia, forse si potrebbe utilizzare sul vostro particolare caso:
w3schools Pseudo-elements
Ma 'all'interno' quei primi 2 penso che non si può fare niente di più, come @ s0rfi949 sottolineato.

Problemi correlati