- Home
- Categorie
- Coding e Sistemistica
- HTML e CSS
- CSS Positioning: Relative
-
CSS Positioning: Relative
Salve a tutti. Ho un problema che ho risolto usando CSS+JavaScript ma volevo sapere se era in qualche modo possibile risolvere la questione col solo uso dei CSS.
- Cosa voglio ottenere
Ho una tabella con una serie di righe ed una colonna. In alcune di queste celle, che contengono del testo, voglio sovrapporre una gif con trasparenza che rappresenta una scritta obliqua, in maniera tale da creare un effetto tipo 'timbrato'.
- Come avevo inizialmente fatto
Per ottenere questo effetto non avevo fatto altro che aggiungere, alla fine del testo della cella di interesse, una span contenente l' immagine, con position:relative e agendo su left e top di conseguenza per metterla nel posto giusto.
Tuttavia, essendo la span posizionata relativamente, l'altezza della cella ne viene influenzata risultando più alta del dovuto, come se la span fosse allq fine del testo.- Prima soluzione
Per 'tagliare' l'eccedenza, ho provato a racchiudere tutto il contenuto della cella in una div, dando a questa overflow:hidden e height: Npx. Naturalmente questa soluzione non è ottimale perché, a seconda del browser e della risoluzione, il valore N dell'altezza può cambiare.
- Soluzione con JavaScript
A questo punto ho optato per JavaScript. In pratica ho aggiunto, nella OnLoad del body, uno script che ridimensiona automaticamente le celle in oggetto togliendo dalla loro altezza quella della gif.
//obj è la div che contiene tutto il contenuto della cella
h=obj.offsetHeight-60; // 60 = altezza bitmap
obj.style.height=h+'px';
obj.style.overflow='hidden';Così sembra funzionare ma naturalmente sono dipendente da JavaScript, che potrebbe essere disabilitato.
Esiste quindi un metodo per fare ciò senza ricorrere a scripting ?
-
Ciao benvenuto tra noi
Prova a vedere [url=http://www.google.it/search?hs=aQm&hl=it&client=firefox-a&rls=org.mozilla%3Ait%3Aofficial&q=image+replacement+css&btnG=Cerca&meta=]qui su google se trovi qualcosa di interessante. Magari dai prima un'occhiata [url=http://wellstyled.com/css-replace-text-by-image.html]qui se trovi qualche spunto...
-
Ciao, grazie per la risposta.
L'image replacement però serve a 'sostituire' un testo con una immagine che ne contiene la sua rappresentazione.
Il mio problema è, invece, mettere sopra un testo contenuto in una cella, una immagine in modo da ottenere una specie di timbratura, per capirci.
-
Si ma tanto se la gif è trasparente tu intravedi quello che c'è sotto...
è praticamente la stessa cosa...
-
Usando una tecnica derivata dall'image replacement /cioè con background-image in definitiva) posso fare a meno del JavaScript, tuttavia ho un effetto collaterale: il timbro risulta essere sotto il testo piuttosto che sopra.
-
Ho risolto senza l'utilizzo di JavaScript.
Ho utilizzato una div prima del testo che deve apparire sotto l'immagine, usando position: absolute e background-image() e z-index e non specifidando left e top ma solo width e height (uguali a quelli dell'immagine di fondo).....
<div style="z-index: 1; position: absolute; width:520px; height: 60px; background-image: url(...);background-repeat:no-repeat;background-position: center 0px;">
</div>
TESTO TESTO TESTO
...
...
-
@gorgoroth said:
Ho risolto senza l'utilizzo di JavaScript.
PerfettoProvalo con i vari browser e cambiando risoluzione... Spero sia tutto ok
Ciao