Gli sprite funzionano bene per le piccole icone che non cambiano le dimensioni, ma io tendo ad usare molte fette di sfondo larghe 1px per cose come gli sfondi pulsante e div. C'è un modo per includere queste fette negli sprite? Per fare ciò, ci deve essere un modo per prendere un piccolo pezzo da uno sprite e estrapolarlo su tutto lo sfondo dell'elemento, tagliandolo essenzialmente dallo sprite e lasciandolo ripetere come se fosse un'immagine di sfondo indipendente.Estrapola la porzione di sfondo in css dallo sprite
risposta
solo modo in cui posso pensare a dove ciò sarebbe possibile è con uno "stack SVG". L'idea di base è che ogni sprite è su un diverso "layer" nella stessa "piastrella", ma essi sono nascosti/rivelata attraverso un po 'di CSS all'interno del file in formato SVG:
<style>
svg .icon { display: none }
svg .icon:target { display: inline }
</style>
Una più approfondita spiegazione qui : http://simurai.com/post/20251013889/svg-stacks
Ora, il lato negativo di questo metodo è che al momento funziona solo in Mozilla. Va bene, siamo in grado di aggirare che utilizzando gradienti lineari per garantire a tutti, ma Mozilla ottiene l'immagine di ripiego:
.element {
background: url(myBG.png);
background-image: -moz-linear-gradient(transparent, transparent), url(spriteStack.svg#myBG);
}
Una volta che gli altri browser salire a bordo con il supporto di frammenti su sfondi SVG, è possibile aggiungere il gradiente lineare appropriata prefissato per loro.
Poiché le immagini della tua bg sono piccole, la mia raccomandazione è di utilizzare un URI di dati. Sembrano qualcosa di simile:
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAADU5ErkJggg==");
Se vi aspettate di essere l'aggiornamento questa immagine con qualsiasi tipo di frequenza, Compass (un'estensione Sass) in grado di generare questi per voi automaticamente insieme minifying il CSS (vedi: http://compass-style.org/reference/compass/helpers/inline-data/#inline-image).
Sembra che si utilizzino immagini di 1px per gradienti. Immagino che tu voglia ripetere l'immagine in una sola direzione, non entrambe. In questo caso, puoi creare uno sprite di immagini di 1px. Il trucco è di disporre il tuo sprite in base alle direzioni in cui ripeterai le immagini. Fai attenzione anche se li posizionerai a destra o in basso, ad esempio, se la tua sfumatura dovesse andare in fondo a un contenitore, probabilmente vorresti posizionare quella sfumatura nella parte inferiore del tuo sprite. Se tutte le immagini vengono ripetute orizzontalmente, è possibile disporre i singoli file uno sull'altro. Mi piace avere una certa trasparenza tra le immagini, sia per allinearle con le linee della griglia sia per lasciare uno spazio sufficiente in modo che le altre immagini non vengano visualizzate.
Nella maggior parte dei browser tranne IE vecchio è possibile creare i gradienti tramite CSS senza utilizzare alcuna immagine. Per le vecchie versioni di IE dovresti usare le immagini.
Se ho capito bene, la risposta di Miriam è la risposta corretta.
Mi limiterò ad elaborare la risposta di Miriam con alcuni esempi.
Ecco uno sprite CSS di gradienti per utilizzare i pulsanti.
Usa CSS background-position di indirizzare il gradiente specifico che si desidera utilizzare per i pulsanti specifici.
Tuttavia i gradienti con le immagini non sono aggiornati. Per la maggior parte dei gradienti puoi semplicemente utilizzare i filtri CSS e IE per ottenere lo stesso risultato.È anche possibile creare sfumature piuttosto complesse con i CSS (IE ridurrà a un gradiente standard "da un colore a un colore" e, se si desidera davvero che l'utente IE8 abbia la stessa vista dei browser moderni, si possa comunque utilizzare un'immagine come fallback .
Qui è un grande strumento (photoshop-like) per creare sfumature e semplicemente/copia incolla il codice che genera: http://www.colorzilla.com/gradient-editor/
- 1. Tecniche CSS Sprite, sfondo css o clip di img
- 2. Come utilizzare uno sprite CSS per un'immagine di sfondo ripetuta?
- 3. Posizione sfondo non funzionante per gli sprite CSS
- 4. Come utilizzare SVG Sprite Sheet come immagine di sfondo CSS mantenendo le proporzioni e la scalabilità
- 5. Come rilevare la modalità in incognito dallo sfondo di estensione
- 6. Sfocare una porzione specifica di un'immagine di sfondo
- 7. CSS - Sprites come immagini di sfondo
- 8. Aggiornamento ObservableCollection dallo sfondo Worker
- 9. È possibile utilizzare immagini di sfondo ripetute negli sprite?
- 10. CSS Navigation Sprite - Forme dispari (non quadrato)
- 11. Sprite CSS vs URI di dati
- 12. rimuovi l'immagine di sfondo dallo stile
- 13. La posizione dello sfondo della bussola sprite non è come la voglio io
- 14. Best practice per immagine sprite CSS
- 15. Location.HorizontalAccuratezza eccessiva quando si ottiene la posizione dallo sfondo
- 16. quando non utilizzare gli sprite CSS?
- 17. Più colori di sfondo, immagini in css
- 18. Quando uno Sprite CSS è troppo grande?
- 19. CSS Sprites - non solo per le immagini di sfondo?
- 20. css due immagini di sfondo
- 21. Come rimuovo l'immagine di sfondo in css?
- 22. La posizione dello sfondo dell'icona dello sprite SVG viene visualizzata nella nuova versione di Chrome
- 23. In che modo gli sprite CSS velocizzano un sito web?
- 24. Scurisci l'immagine di sfondo CSS?
- 25. Colore di sfondo CSS trasparente
- 26. Immagine di sfondo allungata CSS
- 27. Ripetizione di sfondo con limitazione CSS (più immagini di sfondo)
- 28. Scala CSS sprite pixel art senza smoothing dell'immagine
- 29. HTML e CSS sfondo
- 30. CSS Sfondo Opacità
sono molto interessato a quello che si potrebbe utilizzare una fetta 1x1px per che non si poteva uso un colore CSS per. Ho intenzione di provare ad emulare questa idea. – sheriffderek
Ho provato un sacco di cose con le proprietà di sfondo più recenti - ma nessun accordo. – sheriffderek