Web-safe -värit ovat ne 216 väriä, jotka saadaan punaisesta, vihreästä ja sinisestä sekoittamalla niitä suhteissa 00, 33, 66, 99, cc ja ff. Nämä värit näkyvät mahdollisimman samalla tavalla kaikilla selaimilla, alustoilla ja näyttötiloilla. Jos yrität sovittaa kuvaa taustaväriin, ei ole huono idea käyttää taustavärinä web-safe -väriä. Lisää aiheesta voi lukea (englanniksi) esimerkiksi osoitteesta http://www.lynda.com/hex.html
Tämä skripti tulostaa taulukon, josta nuo kaikki 216 väriä löytyvät heksakoodeineen.
Livenä taulukko löytyy osoitteesta http://pp.kpnet.fi/blaze/web/websafe/
Omistettu nimimerkki Meitsille :>
<?php echo "<table>\n"; // Kasvatetaan kaikkia kolmea värikomponenttia aloittaen nollasta 0x33:n // (desimaalina 51) askelin. for($r = 0; $r <= 255; $r += 51) { // r niinkuin punainen for($g = 0; $g <= 255; $g += 51) { // g niinkuin vihreä echo "<tr>\n"; for($b = 0; $b <= 255; $b += 51) { // ja b niinkuin sininen // Muodostetaan kolmesta komponentista yksi // heksadesimaaliluku muotoa rrggbb. // Ärrät saadaan paikoilleen kertomalla 0x10000:lla // (desimaalina 65536), geet kertomalla 0x100:lla // (desimaalina 256) ja beet kertomalla ykkösellä. // Näiden summa muutetaan merkkijonoksi helpompaa // käsittelyä varten. $vari = (string) dechex(65536 * $r + 256 * $g + $b); // Lisätään etunollat, jos puuttuvat while(strlen($vari) < 6) { $vari = '0' . $vari; } echo "<td style=\"background-color: #$vari\">$vari</td>\n"; } echo "</tr>\n"; } } echo "</table>\n"; ?>
Kannattaapi lukea tämä juttu - ei niitä nk. web-safe värejä ole kuin 22 kappaletta...
Ihan jees skripti kuitenkin.
:>
Oikeasti ei ole kuin 2 täysin turvallista väriä, musta ja valkoinen. Kaikki muut saattavat näkyä eri koneilla eri sävyisinä. Jos oikein tarkoiksi ruvetaan niin edes nuo kaksi eivät ole kaikilla samat.
"Mahdollisimman samalla tavalla jne.."
Entäs eri näytöt? ;)
Entä jos kone tunnistaa vaan 16 väriä? :F no okei wine off.
Älkää mulle valittako, jos web-safe -paletti ei toimi, en minä sitä oo keksiny! :P
tää on nyt pilkun nussintaa mut oikeesti perjaatteessa ei oo olemassa yhtään väriä mikä näkys kaikkilla samallaisena koska jos vaihtelee näytön väriasetuksia valoa ynm..
Tämän kommentoinnin tarkoituksena on kommentoida koodivinkkiä ja antaa rakentavaa palautetta, ei nussia pilkkua.
Itse koodivinkki on hyvä jo pelkästään johdantonsa puolesta.
EDIT: Tossa on muuten purkahtava kohta
<?php // Lisätään etunollat, jos puuttuvat while(strlen($vari) < 6) { $vari = '0' . $vari; } //voi korvata: $vari = sprintf("%06s",$vari); ?>
Toisaalta en tiedä vaikka olisi nopeampikin tuo while-looppi...
Tämä on ihan mukava koodivinkki.. yhdyn ajv:n kommenttiin.
Vieläkin optimoimisen varaa :)
->
$vari = sprintf("%02X%02X%02X", $r, $g, $b);
Poistaa while silmukan sekä värin laskemisen.
Ai noinkin voi tehdä :o
Pitääpäs tutustua tuohon sprinf:n.
Värit voisi tulostaa myös kolmimerkkisinä, #369 on sama kuin #336699.
Metabolix kirjoitti:
Värit voisi tulostaa myös kolmimerkkisinä, #369 on sama kuin #336699.
Samahan tuo.. Mutta eikös kuitenkin ole suositeltavampi tapa kirjoittaa nää värit kuusi numeroisena? Saatan toki olla väärässäkin.
Pentu kirjoitti:
Mutta eikös kuitenkin ole suositeltavampi tapa kirjoittaa nää värit kuusi numeroisena?
Ei siinä ole mitään erityisen suositeltavaa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.