Supongamos que quiero decorar enlaces a ciertos tipos de archivos usando una imagen. Podría declarar mis enlaces como
<a href='foo.pdf' class='pdflink'>A File!</a>
entonces tener CSS como
.pdflink:after { content: url('/images/pdf.png') }
Ahora, esto funciona muy bien, excepto si pdf.png
no es el tamaño correcto para mi texto de enlace.
Me gustaría poder decirle al navegador que escale la :after
imagen, pero por mi vida no puedo encontrar la sintaxis correcta. ¿O es esto como imágenes de fondo, donde el cambio de tamaño simplemente no es posible?
ETA: Me estoy inclinando hacia a) cambiar el tamaño de la imagen de origen para que sea del tamaño "correcto", del lado del servidor y / o b) cambiar el marcado para simplemente proporcionar una etiqueta IMG en línea. Estaba tratando de evitar ambas cosas, pero parece que serán más compatibles que intentar hacer cosas puramente con CSS. La respuesta a mi pregunta original parece ser "se puede clasificar de hacerlo, a veces".
fuente
Respuestas:
background-size
Se permite ajustar el . Sin embargo, aún debe especificar el ancho y la altura del bloque.Consulte la tabla de compatibilidad completa en el MDN .
fuente
:after
en absoluto. No es compatible debajo de IE8.width: 10px; height: 20px;
para ver la imagen.background-image
propiedad específica , lo simplebackground
no funcionará.:before
) también necesitabaposition: absolute
, yleft: -10px
.Tenga en cuenta que el
:after
pseudo-elemento es un cuadro, que a su vez contiene la imagen generada. No hay forma de darle estilo a la imagen, pero puedes darle estilo al cuadro.Lo siguiente es solo una idea, y la solución anterior es más práctica.
http://jsfiddle.net/Nwupm/
Inconvenientes: necesita conocer las dimensiones intrínsecas de la imagen, y le deja un poco de espacio en blanco, que no puedo eliminar del cajero automático.
fuente
position: absolute
para podertransform: scale(0.5)
trabajar. También tuve que ponerposition: relative
el elemento "padre" (el dueño del:after
pseudo) por cordura. Además, tuve que agregartranslate(-16px, -16px)
a mi transformación para colocar el icono de 16x16 correctamente. Elposition: absolute
también tiene el beneficio de eliminar el problema del espacio en blanco.Como mi otra respuesta obviamente no fue bien entendida, aquí hay un segundo intento:
Hay dos enfoques para responder la pregunta.
Práctico (¡solo muéstrame la maldita foto!)
Olvídate del
:after
pseudo-selector, y ve por algo comoTeórico
La pregunta es: ¿Se puede diseñar el contenido generado ? La respuesta es: no, no puedes. Ha habido una larga discusión sobre la lista de correo del W3C sobre este tema, pero hasta ahora no hay solución.
El contenido generado se representa en un cuadro generado, y puede diseñar ese cuadro, pero no el contenido como tal . Los diferentes navegadores muestran un comportamiento muy diferente.
(de http://lists.w3.org/Archives/Public/www-style/2011Nov/0451.html )
Del mismo modo, los navegadores muestran resultados muy diferentes en cosas como http://jsfiddle.net/Nwupm/1/ , donde se genera más de un elemento. Tenga en cuenta que CSS3 aún se encuentra en una etapa temprana de desarrollo, y este problema aún no se ha resuelto.
fuente
Debes usar el fondo en lugar de la imagen.
fuente
diplay: block;
no tiene ningún efectopositionin también funciona de manera muy extraña para los elementos básicos de la interfaz, así que tenga cuidado
fuente
Aquí hay otra solución (funcional): simplemente cambie el tamaño de sus imágenes al tamaño que desee :)
necesita pdf.png para ser 20px * 10px para que esto funcione. Los 20px / 10px en el CSS están aquí para dar el tamaño del bloque para que los elementos que vienen después del bloque no estén todos desordenados con la imagen.
No olvides guardar una copia de la imagen en bruto en su tamaño original
fuente
fuente
Puedes usar la
zoom
propiedad. Mira este jsfiddlefuente
Puede cambiar la altura o el ancho del elemento Antes o Después de esta manera:
fuente
Utilicé este ancho de control de tamaño de fuente
fuente
Hoy en día con flexbox puede simplificar enormemente su código y solo ajustar 1 parámetro según sea necesario:
Ahora puede ajustar el ancho del elemento y la altura se ajustará automáticamente, aumentará / disminuirá el ancho hasta que la altura del elemento esté en el número que necesita.
fuente
url(//placeimg.com/800/200/arch)
fuente