22
Mai 06

Firefox 'Unresponsive script'-Problem

Wer ab und zu umfangreiche Datenbanken in Firefox mit phpMyAdmin ex- oder importiert, kennt das Problem vielleicht. Nach einer kurzen Zeit, beschwert sich Firefox ständig mit einem Hinweis, der darauf hinweist, dass das im Moment ausgeführte Skript nicht mehr reagiert. Dabei ist es einfach nur noch nicht fertig - und braucht auch noch eine Weile. Also führt es dazu, dass man, bis zur Fertigstellung des Skriptes andauernd den Hinweis wegklicken muss - und dabei bloß nicht auf "Stop Script" gerät.

Glücklicherweise gibt es eine Möglichkeit, diesen Hinweis abzuschalten (bzw. die Zeit, die vergehen muss, bis dieser Hinweis kommt, zu erhöhen). Gelesen habe ich darüber irgendwann einmal in einem Blog, an den ich mich leider nicht mehr erinnere - was auch dazu führte, dass ich erst einmal gut eine halbe Stunde in den Weiten des www suchen musste, bis ich den Originalartikel wiedergefunden habe. Um das Problem zu beheben geht man wie folgt vor:

  1. about:config öffnen
  2. dom.max_script_run_time suchen
  3. den Wert (Standart 5) auf eine höhere Zahl setzten

Tja, ich hoffe mal, dass ich diese Warnung nie wieder sehen muss ^-^''...


30
Jan 06

CSS: Generierter Content

Ich weiß nicht, in wie fern Opera da mitmacht, der Internet Explorer kann es auf jeden Fall noch nicht. Mit CSS generierter Content bei Pseudo-Elementen.

Hööö, Bahnhof?
Also, bei CSS gibt es Pseudo-Elemente, diese erkennt man an den Doppelpünktchen. So sind :hover und :visited bekanntere Pseudo-Elemente (diese funktionieren sogar im IE ;))  :before und :after, :first-child, :last-child, :first-letter, :first-line eher unbekanntere. Es gibt auch noch andere, dafür bitte hier nachlesen ;).

Mit den Pseudo-Klassen kann man richtig schöne Formatierungen erstellen. Eine Möglichkeit wäre z.B., dass der erste Buchstabe eines Eintrages richtig groß sein soll, wie es in alten Büchern der Fall ist. Aber was ich gerne machen mag, ist extra Inhalt einfügen. Und zwar bei Links.

CSS generierten Inhalt einfügen
geht ganz einfach. Angenommen, vor jedem Link soll ein Kringel auftauchen, dann füge ich eine Definition für das Pseudo-Element a:before ein und erzeuge das Kringelchen mit content: '°'a:before {
 content: '° ';
}
So einfach geht das ;). Hier kann beliebiger Text eingefügt werden, welcher natürlich auch mit Hilfe von CSS formatiert werden kann (z.B. die Farbe kann geändert werden, die größe, die Zeilenhöhe...). Und es geht noch besser. Mit dem passenden Unicode-Code könnt ihr auch jedes Sonderzeichen einfügen lassen, mezzoblue erklärt es sehr schön und liefert ein paar schöne Glyphen ;).

Um beliebige Zeichen darzustellen, benötigt ihr den Unicode (z.B. über die Windows Zeichentabelle (nur die Zahl nach U+) oder direkt über die Unicode Seite). Diese wird dann hinter einem Backslash eingefügt.
a:before {
 content: "\123";
}
Und wenn der Browser es kann, taucht dann vor jedem Link das ausgewählte Zeichen auf. Eine Andwendungsmöglichkeit ist z.B. auch einen besuchten Link "abzuhacken". Hierfür fügt man nach jedem besuchten Link ein Häckchen ein:
a:visited:before {
 content: "\2713";
}


23
Jan 06

Bilder mit CSS formatieren

Bilder automatisch zentrieren lassen? Bis vor kurzem habe ich mir nur mit einem zusätzlichen Absatz helfen können. Bis ich auf einer Seite (leider weiß ich nicht mehr wo), die wunderbare Eigenschaft auto für Ränder (margin) entdeckt habe. Mit Hilfe dieser Eigenschaft, kann man beliebige 'Block'-Elemente zentrieren.

Was sind Block-Elemente?
Was bedeutet das jetzt? 'Block'-Elemente sind z.B. Layer oder Absätze. Sie sind abgeschlossen und nach ihnen wird automatisch die Zeile umgebrochen. Für genauere Beschreibungen verweise ich einfach mal auf einschlägige Literatur und begnünge mich mit Beispielen: <div>,<p> und <ul> oder <ol> sind 'Block'-Elemente, während z.B. <b>,<i> oder besser <strong>,<em> oder aber auch <img>-Elemente es nicht sind. Sie sind 'inline', das heißt, hinter ihnen geht es ganz normal, ohne einen Textumbruch, weiter.

Nun bietet CSS die Möglichkeiten, Elementen eine Anzeige-Eigenschaft (z.B. block oder inline) zuzuweisen. Dies geschieht mit der Angabe:display:block; bzw.display:inline;

Automatisches Zentrieren der Bilder via CSS
Für das automatisch zentrierte Bild, muss man dem <img>-Tag die Anzeigart block zuweisen, zentriert wird danach mit margin:auto:.storycontent img {
display:block;
margin-left:auto;
margin-right:auto;
}

.storycontent  habe ich vor img gesetzt, da ich nur die Bilder innerhalb meines Postings ansprechen möchte. Und  das Posting befindet sich in einer Box der Klasse .stroycontent. Mit obrigem Code wirkt die CSS-Definition nur auf alle Bilder innerhalb dieser Boxen.

Jetzt kann man das Bild beliebig formatieren. Z.B. einen Bilderrahmen darum setzten. Hierfür benötigt man einen inneren Randabstand (padding), und einen Rahmen (border) und kann z.B. auch noch die Hintergrundfarbe (background) ändern.

Beispielcode
Ein Beispiel für solch einen Code ist: .storycontent img {
display:block;
margin:2px auto;
padding:4px;
border:1px dotted blue;
background: white;
}

Nachtrag:
Diese Art zu zentrieren funktioniert natürlich auch mit jedem anderen Blockelement. Somit ist es z.B. die einfachste Möglichkeit, eine komplette Seite mit fester Breite, im Browser-Fenster zu zentrieren (Im Template Lavender habe ich noch meine alte und wesentlich umständlichere Methode verwendet, so als Vergleich ;)).


19
Jan 06

Ruhezustand

Oh wie ist das schön. Den Computer in wenigen Sekunden hoch- und herunterzfahren ohne Probleme. Wieso ich das nicht schon früher entdeckt habe ^-^''. Nicht herunterfahren, nur auf den Ausschalter drücken. Alternativ, wenn man im Ausschalten-Menu von WinXP ist mal die Umschalttaste drücken. Dann wird aus dem Standby Ruhezustand. Und die Wartezeiten haben sich bei mir absolut minimiert. Klar, das blöde beenden und starten der Programme fällt ja jetzt weg.

Der Ruhezustand von Windows ist eine Funktion, die den kompletten Arbeitsspeicher auf die Festplatte speichert und dann den Computer herunter fährt. Wenn Sie den Computer dann wieder einschalten, dann werden diese Daten wieder eingelesen und alles ist genau so wie es vorher war.

Quelle: win-tipps.de


07
Dez 05

Mathematik mit PHP

Eines meiner momentanen Probleme ist, wie kann ich mathematische Berechnungen mit beliebiger Genauigkeit mit PHP durchführen. Bevor ich mal wieder eine umständliche Lösung zu Hilfe genommen habe, habe ich ein Blick in das PHP-Handbuch geworfen und bin dort auch fündig geworden ;).

Zur Festlegung der Genauigkeit verwendet man bcscale(i), wobei 'i' die Genauigkeit angibt. Mag man z.B. zwei Nachkommastellen haben ist i=2. Verwendet man nun die normalen Operatoren wie z.B. '+','-' ... kommt das gleiche ungenaue Ergebnis wie zuvor heraus ;).

Man benötigt nämlich noch die richtigen Operationen ;), die wären: bcadd, bcdiv, bcmul, bcsub, bcsqrt, bcpow... gibt auch noch ein paar andere , Vergleich und Modulo, naja... brauche ich im Moment nicht ^-^'', aber für meine Navigationen sicherlich gar nicht unpraktisch ^-^''.

Naja ^-^''