Alcuni browser, come Firefox e Chrome, restituiscono i valori dei colori CSS in formato RGB anzichè in formato esadecimale. Possiamo tuttavia operare una semplice conversione tra i formati. Vediamo come.
Abbiamo un elemento con la seguente regola di stile:
#test {
color: #06c;
}
Ecco come effettuare la conversione:
function rgbToHex(rgb) {
rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
return "#" +
("0" + parseInt(rgb[1],10).toString(16)).slice(-2) +
("0" + parseInt(rgb[2],10).toString(16)).slice(-2) +
("0" + parseInt(rgb[3],10).toString(16)).slice(-2);
}
Esempio pratico:
$(function() {
var color = $('#test').css('color');
console.log(color); //rgb(0, 102, 204) Chrome, Firefox
var converted = rgbToHex(color);
console.log(converted); // #0066cc
});