zweites Fenster

Django, Flask, Bottle, WSGI, CGI…
Antworten
Pitwheazle
User
Beiträge: 873
Registriert: Sonntag 19. September 2021, 09:40

Bild
Wenn die Kids bei meinen Aufgaben nicht weiterkommen, können sie auf "Lösung anzeigen" klicken, dann bekommen sie die Lösung angezeigt, es wird aber gleich eine neue Aufgabe angezeigt. Bei Rechenaufgaben ist das OK, bei Aufgaben mit Grafik ist das nicht so toll, da man die Lösung nicht mehr nachvollziehen kann.
Die Lösung wird zurzeit unter der Aufgabe angezeigt, sinnvoll wäre es, wenn die ursprüngliche Aufgabe stehen bliebe, die Lösung in einem neuen Fensterchen angezeigt würde und erst nachdem die Lösung zur Kenntnis genommen wurde und das entsprechende Fenster weggeklickt wurde, wird die nächste Aufgabe angezeigt.
Ich habe mal wieder keine Ahnung, ob das überhaupt geht und wo ich da suchen muss.
Weiterhin gelingt es mir nicht, den Abstand vor der gelben Box mit der Lösung verkleinern. Hilft da der Code?
Das Template:

Code: Alles auswählen

{% extends 'layout.html' %}
{% load static %}
{% load l10n %}
{% load mathfilters %}


{% block css_files %}
<link rel="stylesheet" href="{% static 'core/aufgabe.css' %}">
<link rel="stylesheet" href="{% static 'core/includes/header_aufgabe.css' %}">
{% endblock %}

{% block content %}

<header>
    <h1>Der Rechentrainer</h1>
</header>
{% autoescape off %}

<ul>
    <h2> {{titel }}</h2>
    <h3>Aufg. Nr. {{aufgnr}}/10 </h3> 
    <h3>{{text}} {{aufgabe}}</h3>

    {% if grafik.name %}
        {% include grafik.name %} 
    {% endif %}

     <p>
        {% if 'dreimal' in message_unten %}
            <li style="background-color:rgba(255,0, 0,0.6);">{{ message_unten }}</li>
            <a href="{% url 'uebersicht'  %}">weiter</a>          
        {% else %}
            {{ message_unten }}
            <form action="{% url 'main' kategorie.slug %}" method="post">
                {% csrf_token %}
                <fieldset>
                    {{ form.eingabe.label_tag }}
                    {{ form.eingabe }}
                    {{ einheit }}
                    <input class="button-primary" type="submit" value="Prüfen">
                </fieldset>
            </form>
            <nav>
                <a href="{% url 'loesung' zaehler_id %}">Lösung anzeigen</a>
                {% if hilfe  %}
                    <a href="{% url 'hilfe' zaehler_id protokoll_id %}"> Hilfe anzeigen</a>
                {% endif %}
                <a href="{% url 'abbrechen' zaehler_id %}">Abbrechen</a>
            </nav>            
        {% endif%}
    </p>
    {% if messages %}
    <p>
        {% for message in messages %}
            {% if 'leider' in message.message %}
                <li style="background-color:rgba(255,0, 0,0.6);">{{ message }}</li>
            {% elif 'richtig!' in message.message %}
                <li style="background-color:rgba(0, 255, 0,0.6);">{{ message }}</li>                
            {% else %}
                <li style="background-color:rgba(255, 255,0.6);">{{ message }}</li>
            {% endif%}
        {% endfor %}
    </p>
    {% endif %}
    
    {% endautoescape %}
und der CSS Code:

Code: Alles auswählen

ul {
    list-style: none;
    margin: 0.5rem auto;
    width: 90%;
    max-width: 30rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.26);
    padding: 1rem;
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    height: 100rem;
    background-color: #eeeeee;
  }
  
  li {
    margin: 1rem 0;
    text-align: center;
    font-size: 1rem;
    border-bottom: 0.5px solid #ccc;
    padding-bottom: 0.5rem;
  }
  
  li a {
    text-decoration: none;
    color: #383838;
  }
  
...
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

du kannst in HTML beim <a> Element für Links das Attribute `target` angeben. `target=_blank` öffnet den Link in einem neuen Tab oder Fenster - kommt auf die Konfiguration des Browsers an. Weitere Erklärungen siehe z.B. https://developer.mozilla.org/en-US/doc ... ttr-target.

Gruß, noisefloor
nezzcarth
User
Beiträge: 1634
Registriert: Samstag 16. April 2011, 12:47

Eine andere gängige Möglichkeit ist es, die Lösung mit JavaScript dynamisch in den bestehenden Inhalt einzubetten, bzw. als "modal" drüber zu legen. Ich schätze aber, dass das für dich aufwendiger zu implementieren ist, als die von noisefloor vorgeschlagene Variante mit dem separaten Fenster.
Sirius3
User
Beiträge: 17747
Registriert: Sonntag 21. Oktober 2012, 17:20

Die Antwort ist doch wieder ziemlich simple. Einfach nicht machen! Wenn auf "Lösung anzeigen" geclickt wird, dann wird nur die Lösung angezeigt, und mit einem weiteren Button "Nächste Aufgabe" geht es weiter.
Pitwheazle
User
Beiträge: 873
Registriert: Sonntag 19. September 2021, 09:40

Sirius3 hat geschrieben: Dienstag 13. September 2022, 18:52 Die Antwort ist doch wieder ziemlich simple. Einfach nicht machen! Wenn auf "Lösung anzeigen" geclickt wird, dann wird nur die Lösung angezeigt, und mit einem weiteren Button "Nächste Aufgabe" geht es weiter.
Klinkt, wie immer, vernünftig.
Antworten