Dann verstehe ich nicht, was du erreichen möchtest. So, wie du es geschrieben hast, ist es jedenfalls kein gültiges CSS, daher kann es nicht funktionieren.
Es gibt ja drei <h3> Überschriften: page1, page2, overview
und drei links: <a href="#page1"> bzw. #page2 und #overview
Klickt jetzt jemand auf diesen link: <a href="#page1"> wird dieser Codeblock ausgeführt:
#page1:target, #page2:target {
display: block
}
Dadurch wird dann das <h3> Element mit der ID "page1" auf "display: block" gesetzt und damit eingeblendet (weil der link mit dem href="#page1" angeklickt wurde).
(Bzw. wird das <h3> Element mit der id=page2 eingeblendet, falls jemand den link mit <href="#page2" gewählt hätte.)
So weit so gut.
Jetzt hätte ich aber noch zusätzlich gerne, dass das <h3> Element mit der id=overview ausgeblendet wird. Aber nicht grundsätzlich, sondern nur wenn dieser "Event-Handler" für page1 oder page2 ausgeführt wird.
Ich möchte also innerhalb dieses Block:
#page1:target, #page2:target {
display: block
}
noch weitere HTML Elemente (in diesem Fall halt <h3 id="overview">) "refenzieren" und etwas damit machen.
Ich fand den Gedanken naheliegend und habe mich gewundert, dass das nicht geht - schließlich haben ja alle eine ID.
Aber ich glaube ich habe den :target selector einfach missverstanden.
Man gibt einfach einem Link eine ID von einem HTML Element mit und kann dann die Erscheinung von diesem Element manipulieren, so verstehe ich es jetzt.
Ich danke dir für deine Mühe und Input hat mir geholfen!
funktioniert natürlich, so mache ich es ja auch am Anfang mit page#1 und page#2:
#page1, #page2 {
display: none;
}
Aber ich dachte ich kann möglicherweise andere HTML Elemente innerhalb des
#page1:target, #page2:target { } Blocks referenzieren, scheint aber nicht so zu sein?
also ich habe mich an dem Flex Layout in der Zwischenzeit mal ein wenig ausprobiert.
Ich glaube der Ansatz sieht jetzt so wesentlich besser aus, oder?
Also mobile first oder großartig responsive ist da jetzt vermutlich noch nichts, aber so ganz grundsätzlich passt das glaube ich. Oder fällt euch irgendwas "grobes" daran auf?
Sonst wäre mein nächster Schritt glaube ich XAMMP zu installieren und meine Content Section anstatt mit dem CSS Target Selektor mit PHP und include zu befüllen. Denn PHP werde ich eh benötigen.
Das müsste ich dann eigentlich hoffe ich alleine hinkriegen
Trotzdem würde mich der auskommentierte Teil in der CSS Datei noch interessieren, falls ich doch mal nur mit statischen HTML Seiten auskommen möchte? Hab versucht es zu googlen, aber das war nicht so erfolgreich.
Ich werde dann also die iFrames wieder entfernen und mich genauer mit dem Flex Layout in deinem Link beschäftigen 8)
Der CSS target Selektor wird dafür bestimmt noch nützlich und mit (reinem) JavaScript / JQuery wollte ich mich ohnehin mal beschäftigen!
Wäre doch gelacht, wenn ich kein sauberes 2 Spalten Layout hinkriegen würde
letztes Jahr habe ich mich ein wenig mit ASP.Net beschäftigt, das war spannend hat sich aber wieder im Sande verlaufen erstmal.
Super, dass es in dem Unterforum hier auch um HTML und CSS allgemein geht, dann brauch ich mir kein Forum extra für Webdesign raussuchen
Ich möchte erstmal einen Schritt zurück machen und meine Kenntnisse in HTML5 / CSS / JavaScript / PHP auffrischen bzw. überhaupt mal systematisch erlernen.
Das letzte mal, als ich mich mit HTML beschäftigt habe dürfte locker 15 Jahre her sein, damals wurde noch alles mit Tabellenlayouts gemacht, die habe ich noch gerade so verstanden als junger Teenager.
CSS begann da gerade seinen Siegeszug, wenn ich mich recht erinnere.
HTML5 ging komplett an mir vorbei, weshalb ich in den letzten Tagen und Wochen als erstes mal das HTML5 Handbuch durchgelesen habe.
So weit, so gut. Leider ist das Kapitel über Praxisbeispiele für Webseitenlayouts nicht mehr verfügbar.
Bei meinem ersten Versuch das simpelst mögliche Layout zu erstellen (2 Spalten: links eine schmale Navigation, rechts content) hab ich schon Grundsatzfragen.
Mein Ansatz mit iFrames funktioniert zwar, aber ist das "state of the art"?
Ich weiß es sind nicht mehr die verpönten Framesets aus HTML4, aber benutzt man sie überhaupt zur Layoutgestaltung oder nur um externe Inhalte einzubinden?
Und muss ich mir Gedanken um die Sicherheit machen, wenn ich lediglich HTML Seiten von dem eigenen Webserver damit einbinde? (Ich frage wegen dem sandbox Attribut, aber wenn ich das richtig verstanden habe geht es bei der SameOriginPolicy ja nur darum was fremde Webseiteninhalte - die ich gar nicht vorhabe einzubinden - mit der eigenen machen könnten?).
Ich gebe also dem iFrame einen Namen, den ich im Navigationslink "targette".
Kann man das so machen oder sollte ich schnell wieder vergessen?
Irgendwie sträubt sich etwas in mir gegen iFrames, weiß auch nicht warum.
Aber wie macht man es denn sonst?
In den Tutorials, die ich so gefunden habe sehe ich die Leute immer nur einen Heidenaufwand betreiben ihre CSS Boxen wunderschön zu stylen, aber es wird nie so richtig gezeigt wie das ganze dann "interagiert" bzw. ich finde die Stelle nicht in 45min+ Videos.
Den iFrame kann ich ja "targetten" über das name Attribut. Bei einem <div> Container scheint das nicht zu gehen (bzw. ich glaub nur mit JS und getElementById dann oder wie?).
Wie macht man es denn, dass die Links aus der Navigation sich in der richtigen DIV Boxen öffnen und nicht in einer neuen Seite?
Und angemommen ich würde das hinkriegen, und ich hätte links einen DIV Container mit der Navigation und rechts einen DIV Container mit dem Inhalt - ohne iFrames.
Dann müsste ich ja jedesmal alle HTML Seiten verändern, wenn ich einen neuen Navigationspunkt hinzufüge? Oder inkludiert man die navi dann mit php? Das würde eigentlich Sinn machen.
Ich hoffe es ist nicht zu wirr geschrieben, ich merke ich hab Schwierigkeiten mein Problem überhaupt zu formulieren. Aber vielleicht ganz simpel ausgedrückt: Sind iFrames üblich / empfehlenswert zum layouten und wie macht man es ohne?
Bei diesen ganzen verschiedenen Konzepten wie -Grid/-Box/-Float/-Flex/-Whatever scheint es immer nur um die Anordnung von Boxen zu gehen bzw. um Responsive Design und nicht um die "Interaktion".
Ich kann dir auf jeden Fall schonmal den Tipp geben, dass ich hier gelesen habe, dass DPD eine API anbietet.
Bestimmt lässt sich damit der Sendestatus abfragen. HtmlAgilityPack sollte also eigentlich nicht nötig sein.
Vielleicht kann dir jemand anderes noch etwas genaueres dazu sagen oder du magst mal in die Richtung recherchieren.
Wow, danke für das ausführliche aufschlüsseln LaTino (auch wenn mir persönlich die Fakten jetzt im wesentlichen schon klar waren).
Mich würde allerdings noch interessieren warum nicht immer gleich verfahren wird, gibt es einen Grund dafür, dass lokale Variabeln nicht ebenfalls einfach implizit mit Standardwerten initialisiert werden?
Das Argument mit den aufgeräumteren Konstruktoren zieht bei mir für Klassenmember total, aber mir fällt kein Grund ein es bei lokalen Variabeln dann anders zu handhaben, übersehe ich etwas offensichtliches?
Zumal es zumindest der Debugger ja dann doch macht, wenn ich dich richtig verstanden habe.
[edit: Da hab ich zu schnell gelesen. Tut er ja nicht, deswegen kriegt man die Meldung ja auch beim Debuggen ]
Trotzdem, das unterschiedliche Vorgehen stiftet doch eigentlich nur Verwirrung?!
Trotzdem war das doch ein sinnvoller Beitrag von chilic, wenn auch vielleicht ein paar Stunden später.
Ich hatte auch das Gefühl dass hier ein falsches Verständnis von IndexOf vorliegt.
War auf jeden Fall sinnvoller als auf Namenskonventionen rumzureiten wie von meiner Wenigkeiteit, aber wie gesagt ich hatte das halt selber grad ausnahmsweise mal gelesen ^^
Wie auch immer ich denke es ist jetzt alles geklärt und schlage wir gehen davon aus, dass alles i.O ist bis der TE uns was anderes sagt ;)
Sicher, da hast du Recht.
Ich dachte mir halt nur wäret den Anfängen.
Irgendwann sieht der Code sonst nämlich "so aus" wenn ihm das keiner sagt.
Aber im Nachhinein denke ich mir (auch wenn ich mir das Registrierdatum von Maffi so angucke) dass er das schon längst wusste und es war halt nur schnell im Forumeditor dahingetippt.
Hast du dein Spiel auch in Abhängigkeit der Zeit gemacht? Also das es immer konstant läuft?
Wie meinst du das? :)
Ich "bitte" Windows durch panel.Invalidate() quasi ständig (-> 1 ms timer) mein panel neu zu zeichen, sprich: das Paint Ereignis des Panels auszulösen.
(100%ig erzwingen kann man den Zeichenvorgang durch Invalidate() glaube ich nicht nicht, aber das klappt trotzdem ganz gut)
Jetzt kann ich in diesem Paint Ereignis mein Zeug schreiben, das jede Millisekunde auf dem Bildschirm dargestellt werden soll z.B.
// Raumschiff zeichnen
if (mySpaceship.IsAlive)
mySpaceship.Draw(sender, e, this);
// Auf Tastatureingaben reagieren
CheckForKeysPressed();
// Hindernisse zeichnen
foreach (IDrawable obstacle in myAlienObstacleLst)
{
obstacle.Draw(sender, e, this);
}
Auf einem Panel funktioniert dass mit dem DoubleBuffered leider nicht ganz so leicht wie auf der Form, ich hab damals diesen Codeschnipsel dafür gefunden:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace EscapeTheAsteroids
{
public class DoubleBufferPanel : Panel
{
public DoubleBufferPanel()
{
// Set the value of the double-buffering style bits to true.
this.SetStyle(ControlStyles.DoubleBuffer |
ControlStyles.UserPaint |
ControlStyles.AllPaintingInWmPaint,
true);
this.UpdateStyles();
}
}
}
Und nein, normalerweise arbeite ich nicht mit Copy&Paste falls es jetzt wem in den Fingern juckt ;)
PS: Irgendwann poste ich das Spiel bestimmt. Notfalls halt auch unfertig, ich hatte die Sache von Anfang an so geplant möglichst viel dazu zu lernen :)
so mache ich das in meinem kleinem Weltraumshooter auch.
Ich habe einen Timer (tmrRefreshGUI, Intervall 1 ms.) und der ruft .Invalidate() auf meinem (DoubleBuffered)Zeichenpanel auf.
In dem _Paint Ereignis des Panels zeichne ich dann alles und reagiere auf Tasteneingaben.
Ist bestimmt nicht so StateOfTheArt aber es funktioniert auf jeden Fall schonmal und es war mein erstes Spiel.
Ich wollte das Projekt schon vor Ewigkeiten mal im CodeReview Bereich vorstellen und nach Feedback fragen, aber ich hab einfach keine Lust mehr die letzten 10% zu coden Da kann man bestimmt noch vieles viel viel besser machen MVC und so zb.
Wann muss ich Standardwerte für Variablen erstellen und welche nehme ich am Besten?
Mit welchen du am besten initialisiert wurde ja gesagt. Aber täusch ich mich oder wurde auf das "wann" noch nicht eingegangen?
Es gibt da nämlich einen Unterschied zwischen den Klassenvariablen und den lokalen innerhalb einer Methode (die Fehlermeldung bezieht sich ja auch auf lokale Variablen.)
Wenn dir das schon klar war, dann sorry aber ich hab das selber gerade nochmal für mich getestet ;)
also ich habe gerade nochmal kurz versucht mich der Sache anzunähern.
Und zwar erstmal mit der ursprünglichen Idee, also der klassische Weg über die Win32 API und den Fensterhandles (LaTino deinen Vorschlag werde ich aber auf Jeden Fall auch noch mal genauer unter die Lupe nehmen!)
Ich hab ein Beispielprogramm im Netz gefunden, dass die Fensterhandles ausliest und (solange ich nicht mit Tabs arbeite) funktioniert das schonmal super, an die Fensterhandles der Chatfenster käme ich also auf jeden Fall schonmal ran
Jetzt steht da aber unter "Prozess Klasse" allerdings "USurface_[Zahl]"
Das ist der Beweis dafür, dass die Fenster von den Machern komplett selber gezeichnet werden, oder?
So habe ich also schonmal keine Chance an ein ListBox Control ranzukommen, stimmts?
edit: Oder sagt das vielleicht überhaupt nix aus?
"USurface" sagt mir nix, ich hatte halt nur in einem Forum gelesen, dass das nach OpenGL / DirectX klingt und wohl ein "CustomDraw" wäre, das klingt halt verdächtig danach was Abt weiter oben vermutete
Allerdings steht da auch bei andern Programmen normalerweise immer eine anscheinend willkürliche Klasse. Kann mit USurface vielleicht zufällig irgendwer was anfangen?
ist dir M3U ein Begriff? Das ist eine Metadatei, die Informationen über MP3s bereitstellt.
Ich glaube das war mit der Beitstellung der Informationen gemeint. Was "speist" du denn da ein das Webradio, sind das MP3s?
edit: Ich bin mir da allgemein unsicher, aber du hast ja bisher noch nicht viel Feedback bekommen vielleicht ist das ein Stichwort.
Kann ich rausfinden ob die benutzt wird? Oder muss ich dafür das Steam Team anschreiben? ;)
edit:
Zitat
In höheren Programmiersprachen, wie zum Beispiel C, C++ oder Delphi, wird die WinAPI immer verwendet, wenn Windows-Anwendungen geschrieben werden, obwohl der Programmierer sie eventuell direkt im Quelltext gar nicht aufgerufen hat. Die Aufrufe der API werden durch eine Laufzeitbibliothek gekapselt, die ihrerseits Funktionen der Windows API aufrufen.
Müssen die auf einem Windows System nicht die Standard Windows API in irgendeiner Form benutzen?
Auf Wikipedia kann ich nicht viel finden, da steht nur C++ / Objective C und dass es auf Windows, Mac, Linux und Mobilgeräten läuft. Außerdem gibt es wohl eine Steam API.
Ich hätte gedacht mit WinApi DLLImport geht es auf jeden Fall, aber selbst dann würde ich es wohl eher erstmal hinten anstellen. Versuche grad erstmal nur ein Gefühl zu bekommen was möglich wäre.