Autor Zpráva
kozado
Profil
Zdravím, potřeboval bych změnit u následujícího ukolu do školy, aby se při refreši stránky změnilo pozadí uhlopříčky která je tvořená z písmen x. Default je nastavená zelená ale jak tam mám script na změnu pozadí tak to potřebuji aplikovat na pozadí jen toho písmena. Děkuji

<!DOCTYPE html>

<html>
    <head>
        <title>Ukol skola</title>
        <meta charset="UTF-8">

        <style type="text/css">
            .b{
                background-color:white;
                color:white;
            }
            .z{
                background-color:green;
                color:white;
            }

        </style>
        
    </head>
    <body>
        <script type="text/javascript">
            var a;
            var b;
            for (a = 1; a <= 29; a++)
            {
                for (b = 1; b <= a; b++)
                {
                    document.write("<span class='b'>x</span>");
                }
                document.write("<span class='z'>x</span><br>")
            }
            
            var z = Math.floor(Math.random() * 16777215).toString(16);
            z = "#" + ("000000" + z).slice(-6);
            document.bgColor = z;
        </script>
    </body>
</html>
Kryvosa
Profil *
Já vím, že potřebuješ "jen měnit pozadí těch písmen", ale tohle je prasácké řešení.
Jinak, všemu můžeš nastavit barvu transparent (průhledné), a potom by to za těmi X nedělalo ty čáry...
Za pěkné bych považoval to posouvat pomocí style="position:relative" a top: a left:
Například nějak takto:
<!DOCTYPE html>
 
<html>
    <head>
        <title>Ukol skola</title>
        <meta charset="UTF-8">
 
        <style type="text/css">
            span
            {
                background-color:transparent;
                position:relative;
            }
 
        </style>
        
    </head>
    <body>
        <script type="text/javascript">
        var pozadi=Math.floor(Math.random() * 16777215).toString(16); //náhodná barva pro body
        var pismenka=Math.floor(Math.random() * 16777215).toString(16); //náhodná barva pro pozadí písmen
        body.style.background="#"+pozadi; //bgColor je zastaralé, používej CSS
        for(var i=0;i<=28;i++)
        {
          document.write("<span style='left:"+i*15+"px;background:#"+pismenka+";'>X</span><br>"); //vypsání těch "X"
        }
        </script>
    </body>
Tady je odkaz na živou ukázku.
Chamurappi
Profil
Reaguji na Kryvosu:
Rozbil jsi mu generátor náhodné barvy, Math.floor(Math.random() * 16777215).toString(16) nemusí vrátit šest znaků.

left:"+i*15+"px;
Co když písmeno nemá šířku 15 pixelů? Šířku písmen nikdy neznáš.
Předpokládám, že vnořený cyklus je součástí tohoto školního úkolu.


Reaguji na kozada:
Zjevně už document.write znáš, tak přes něj můžeš do stránky vypsat i "<style>.z { background-color: " + barva + "}</style>".

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: