Estoy tratando de aplicar estilos CSS a algunos fragmentos de HTML que se generaron a partir de un documento de Microsoft Word. El HTML generado por Word es bastante atroz e incluye muchos estilos en línea. Es algo parecido a esto:
<html>
<head></head>
<body>
<center>
<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span
style='font-size:12.0pt;line-height:115%;font-family:"Times New Roman"'>Title text goes here<o:p></o:p></span></b></p>
<p class=MsoNormal style='margin-left:18.0pt;line-height:150%'><span
style='font-size:12.0pt;line-height:150%;font-family:"Times New Roman"'>Content text goes here.<o:p></o:p></span></p>
</body>
</html>
... y muy simplemente, me gustaría darle estilo a la primera letra de la sección del título. Solo necesita ser más grande y tener una fuente diferente. Para hacer esto, estoy tratando de usar el :first-letter
selector, con algo como:
p b span:first-letter {
font-size: 500px !important;
}
Pero no parece estar funcionando. Aquí hay un violín que demuestra esto:
¿Alguna idea de qué está mal / cómo hacer que la primera letra de la sección del título tenga el estilo correcto? Puedo hacer cambios menores en el marcado (como agregar un div contenedor alrededor de las cosas), aunque no sin cierta dificultad.
span
elemento, así que me sorprende que no funcione.Puede obtener el comportamiento deseado estableciendo la propiedad de visualización del intervalo en inline-block:
.heading span { display: inline-block; } .heading span:first-letter { color: red; }
<div class="heading"> <span>An</span> <span>Interesting</span> <span>Heading</span> </div>
fuente
Esto se debe a que
:first-letter
solo funciona en elementos de bloque / bloque en línea.SPAN
es un elemento en línea.Tomado de http://reference.sitepoint.com/css/pseudoelement-firstletter :
fuente