Beiträge von koslowski

    Hi,

    du schreibst folgendes direkt unterhalb von dieser Zeile:

    PHP
    <link type="text/css" rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" media="screen" />

    in die header.php:

    PHP
    <!--[if lt IE 8]><link rel="stylesheet" type="text/css" media="screen" href="<?php bloginfo('template_directory'); ?>/ie.css" /><![endif]-->

    Das ist dein Cond. Comment.

    Dann erstellst du mit deinem Editor eine ie.css.
    Dort schreibst die Anwesiungen rein die nur für den IE gelten sollen.

    Dann lädst du diese Datei in dein Theme hoch.

    Die Quelltextänderungen schreibst du auch in die header.php innerhalb deines div#header.

    Die CSS-Anweisungen für h1 und h1 span schreibst du in die style.css.

    Und alles hochladen nicht vergessen. ;)

    Hi,

    erstmal haben li und a kein HasLayout für den IE. Daran stört sich besonders der IE6, der die Abstände der Navigationspunkte vergrößert.

    Abhilfe schafft hier:

    HTML
    * html div.left li  {
         height:1px;
    }
    * html div.left a  {
         height:1px;
    }

    Das schreibst du in den Cond.Comment und wird nur vom IE6, IE5 gelesen.
    Probier mal beides aus.

    Der #header wird ja im IE nur teilweise angezeigt. Er hat ja keinen Inhalt, nur die HG-Grafik, ein leeres h2 und einen leeren Link.

    Mach das doch so:

    Quelltext des Abschnittes:

    HTML
    <div id="header">
    <h1><span></span>Deine Hauptüberschrift</h1>
    </div>

    CSS dazu:

    [FONT=Arial][size=12]Erstmal aus der h2 ne h1 gemacht (ist ja deine Hauptüberschrift).
    Das h1[/SIZE][/FONT][FONT=Arial][size=12] wird relativ positioniert, damit es dem absolut positionierten span als
    Bezugspunkt dienen kann[/SIZE][/FONT].

    [FONT=Arial][size=12]Das span wird auf die Größe vom h1 aufgespannt und bekommt die HG-Grafik
    zugewiesen.
    Dadurch das es absolut positioniert ist, schwebt es praktisch über
    der h1-Überschrift. Der Text wird also nicht aus dem Viewport geschoben
    die Grafik wird einfach über den Text geschoben. So haben die
    Sumas auch noch was zu indexieren. ;)

    Je nachdem was du für ein line-height (in body?) definiert hast und ob #header HasLayout
    hat ist beim IE oben eine kleine Lücke, bzw. wird die Grafik evtl. nicht oder nicht richtig angezeigt.
    Dann gibst du dem IE per Cond. Comment einfach:

    HTML
    #header  {
       zoom:1;    /* Gibt Haslayout! */
       line-height:normal;  /* Läßt die Lücke verschwinden falls eine da war */
    }

    Ach ja, ein valides Dokument ist natürlich eine sinnvolle Grundlage, mit der man Fehler leichter in den Griff bekommt. ;-)
    [/SIZE][/FONT]

    Moin,

    Ok, das Float:left kann ich mein ich auch wieder rausnehmen, weil ichs über die margin-left: links orientiert hab.

    Häh??? :shock:


    Overflow hidden war im Beispiel bereits eingegeben.

    Wenn etwas vorgegeben ist heißt das ja noch lange nicht das es auch gut ist. Wenn ich mir anschaue wie im Theme so rumgecodet wurde ist das imho sowieso nicht so ganz optimal.


    Grafiken brauch ich, weil die Buttons einen 1px breiten transparent schwarzen border haben.

    In deinem Fall brauchst du keine und wenn dann als HG-Grafik:


    Die Grafiken haben ja keinen Bezug zum Inhalt und gehören deshalb nicht ins Markup.

    [ot]Irgendwie klasse wenn man sich selbst recyceln kann. :mrgreen: [/ot]



    ohne float:left werden die Buttons untereinander angzeigt. Ohne overflow:hidden die volle grafik und nicht nur der jeweils aktive ausschnitt.

    Natürlich werden sie das.
    li
    ist ein Blockelement und das macht einen eigenen Absatz. Du kennst doch den Unterschied zwischen Block,- und Inline-Element, bzw. was sie im Einzelnen bewirken, oder?

    Auf jeden Fall ignorierst du die Tips und Links die man dir gibt, bzw. setzt dich offensichtlich damit nicht auseinander, um sie zu verstehen.
    Entweder kannst du es nicht weil dir die Grundlagen fehlen oder du willst nicht weil du beratungsresistent bist.

    Im ersteren Fall solltest du das unbedingt nachholen, bevor du dich in Webdesign versuchst.
    Nur weil WP vieles für dich automatisch erledigt kommt man um grundlegende XHTML/CSS-Kenntnisse trotzdem nicht herum. ;-)

    Im zweiteren Fall, naja, kann man halt nix machen. :-|

    Hi,

    die Seite kann man im IE 6/7/8, Opera und Safari wohl so nicht verwenden.

    float:left und overflow:hidden; für li halte ich für eine ausgesprochen unglückliche Kombination.

    Beide erzeugen einen "Block Formatting Kontext", nur sind die darstellerischen Auswirkungen der Overflow-Eigenschaft oft unkalkulierbar, weil sich die Spezifikation auch nicht so eindeutig dazu äußert, wie sich Elemente im Zusammenhang mit dieser Eigenschaft denn nun anordnen sollen.

    Wie schon gesagt deine gewählte Methode das Menü darzustellen ist imho unbrauchbar.

    Die Menübilder haben im Markup nix zu suchen, wobei ich mich frage wieso du überhaupt ein grafisches Menü brauchst.

    Schreib halt Großbuchstaben in den Linktext und mach das mit background-color. Dann legst du Menschen mit körperlichen Einschränkungen auch nicht soviel Steine in den Weg, wie mit deiner Methode. ;)

    Ich habe dir jedenfalls alle notwendigen Infos an die Hand gegeben, damit du dein Problem lösen kannst, umsetzen mußt du es schon selber. ;)

    Gruß
    koslowski

    Hi,

    sorry, aber ich muss gestehen, das ich gerade nicht ganz verstehe was du mir sagen willst. also ich habe ein fertiges template genommen und eigentlich ausser im im footer nichts geändert.
    kannst du mir das ganze vielleicht etwas genauer erklären?

    okay, ich meine damit das der generierte Code und die zugehörigen styles dieses Themes.....äh..*hüstel*.., stark verbesserungswürdig sind.

    Themes gibt's ja von WP eine ganze Menge und leider sind längst nicht alle auch gut.

    Leider kann man auf den offiziellen Themeseiten nicht auch Validität als Auswahlkriterium anklicken (ist mir jedenfalls nicht bekannt).
    Dann hätte man zumindest einen gewissen Anhaltspunkt ob bei dem erwählten Theme sauber und ordentlich gearbeitet wurde.

    Zum Glück steht's ja manchmal bei den Details dabei ob es valide ist. :)

    Hi,

    der Validator vom W3C kann das Dokument nicht mal prüfen. Andere zeigen eine Reihe von Fehlern an.

    Du floatest dort wie ein Wilder hin und her, aber wo clearst du denn?

    Z.B. schließt das alles umgebende Element #bg die Floats nicht ein, vermute weil du nirgends gecleart hast.

    Link hab ich noch nicht, seite ist noch nicht online:

    dann bau einen lauffähigen Testcase und stell den hier rein. ;)

    Mit den paar CSS-Anweisungen kann ich nicht soviel anfangen, da fehlt der zugehörige XHTML-Code.

    Was ich sehe schaut imho etwas suboptimal aus.

    Mahlzeit,

    Das jeder Button einen eignen CSS-Abschnitt hat weiß ich. Du hast aber geschreiben, dass die height: (halbehöhe der Grafik) in Li soll. und da kann ich ja schlecht 100 verschiedene Breiten angeben

    wenn ich LI die höhe 32px gebe, presst IE7 die Grafiken von 64px höhe in die 32px große LI.

    das von mir eingestellte Beispiel funktioniert einwandfrei im FF, IE 6, IE 7, IE8, Opera und Safari.
    Wenn du die angewendeten Techniken nicht verstehst weiss ich auch nicht weiter.
    Tips, Links und Beispiele um dir das Verständnis zu erarbeiten habe ich jedenfalls genug an die Hand gegeben.

    Hast du eine horizontale navi mit 100 versch. Menüpunkten?? Doch wohl nicht oder.

    Gib doch mal einen Link damit man sehen kann, was du bisher versucht hast.

    Ansonsten drehen wir uns doch hier nur im Kreis. ;-)

    Moin,

    was wenn die Grafiken alle unterschiedlich "breit" sind?

    das ist doch wohl überhaupt kein Problem.

    Hast du mein Beispiel mal durchgearbeitet, um zu verstehen wie das technisch funktioniert? Ich glaube mal eher nicht.

    Dort hat jeder Listenpunkt eine eigene id, kann also gesondert per CSS angesprochen werden.

    Genau genommen bräuchtest du sogar nur eine Grafik für alle Links und alle Linkzustände.
    Aber das ist etwas schwieriger, deshalb habe ich in meinem Beispiel für jeden Link eine Grafik genommen.

    Die Technik ist unter dem Namen CSS-Sprites bekannt und im März 2004 von David Shea vorgestellt worden. Guckst du hier.
    Deutsche Artikel gibts auch einige dazu. Dafür guckst du hier z.B.

    Okay ich hab das noch mit Image Replacement nach Gilder/Levin gemischt, damit die Links bei ausgesch- Grafiken und/oder CSS noch funktionieren.

    Ich mag solche Techniken auch schon deshalb, weil ich damit meiner HP nen schönen Look verpassen kann und trotzdem nicht auf "Barrierearmut" verzichten muss. ;)

    Gruß
    koslowski

    Hi,

    ok,

    weiß jemand was zum IE 7? Der zeigt bei mir nämlich die ganze Grafik an. Sprich beide.

    normal braucht li ne Höhe und ne Breite und zwar die der halben Grafik( wenn sie zwei Zustände enthält).
    a braucht dann wohl display:block und height/width:100% (damit es auf die Ausmasse von li ausgedehnt wird).

    Neiiiin. :wink:

    Hör mal, ich will dir ja nicht zu nahe treten, aber könnte es sein das du von CSS so gar keine Ahnung hast?

    WP nimmt dir ja eine Menge ab. Es gibt unzählige Themes die du einsetzen kannst und nur noch an deine Bedürfnisse anpassen mußt.
    Aber um grundlegende XHTML/CSS- Kenntnisse kommst du imho nicht herum.

    Du solltest den Unterschied zwischen Block,- und Inline-Elementen kennen.
    Mit Begriffen wie Spezifität, Kaskade solltest du etwas anfangen können, usw., usw..
    Lies Little Boxes 1, da werden dir die Grundlagen unterhaltsam nahegebracht. ;)

    Okay ich gebe dir noch ein Beispiel wie der Anfang einer CSS-Datei ausschauen könnte:

    Da es bei WP meistens nur eine allgemeine style.css gibt ist es sehr wichtig das du da Ordnung hast, sonst suchst du dir nen Wolf, wenn du nach einem Jahr was ändern willst.

    Die Werte sind natürlich nur beispielhaft, was du da einsetzt bleibt dir überlassen.

    Zuerst kommt der CSS-Prolog. Mit dem *-Selektor und den zugehörigen Deklarationen, werden browserübergreifend alle Abstände auf null gesetzt, damit man eine einheitliche Grundlage hat.

    100%-Höhe für html definiere ich deshalb, damit das Root-Element (html), das ja auch der Initial Containing Block ist, eine Höhe entsprechend des Viewports bekommt und nicht entsprechend seines Inhalts.

    body bekommt Schrift,- und HG-Farbe, Schriftgröße, Zeilenabstand und Schriftarten zugewiesen.

    Auf der Website vorkommende Elemente bekommen nochmal die Schriftgröße, diesmal in em (kann jederzeit durch andere Elemente erweitert werden).
    p bekommt einen unteren Abstand.

    Listenzeichen werden ausgeschaltet.
    Default-border für Grafiken werden ausgeschaltet.

    Schriftgrößen und Abstände für die Überschriften werden definiert.
    Schriftgröße für h1 mag verwirrend sein, aber ich schiebe meistens eine Grafik mit einer schönen Schriftart für h1 über den h1-Text ( Gilder/Levin! ).

    Dann kommen die allgemeinen Hyperlinks, dann die allgemeinen Definitionen für die Hauptcontainer auf der Site.
    Danach die Definitionen die die Unterseiten betreffen und zum Schluß "Sonstige Klassen".

    Die allgemeinen Definitionen vererben sich i.d.R. nach unten, deshalb müssen nur noch Abweichungen notiert werden.

    Ist deine CSS-Datei so oder ähnlich strukturiert wirst du auch nach einem Jahr Änderungen rappzapp durchführen können. :)

    Gruß
    koslowski

    Moin,

    Code
    #menu img.home:hover     {position: relative; left: 0px; top: -32px;}

    so siehts momentan aus.

    bei dieser Angabe solltest du allerdings bedenken das der IE6 :hover nur in Verbindung mit a kennt, weshalb er diese Anweisung ignorieren wird. ;)

    Gruß
    koslowski

    Moin,


    suche dir in dem style.css mal alles wo font-size steht und gib dort überall

    Code
    line-height:1.6em;

    dazu vielleicht hilft dies schon mal,

    line-height ist ein Faktor und ein solcher gehört ohne Maßeinheit notiert.
    Man darf dabei auch nicht vergessen das er nur die Zeilenhöhe beeinflußt nicht die Höhe der Box.

    Um Abstände zwischen Boxen herzustellen eignet sich margin z.B. viel besser.

    Überall da wo font-size steht line-height einzugeben ist imho vollkommen unnötig.

    Besser wäre es das z.B. so zu definieren:

    HTML
    body  {
        font:100%/1.4 arial, verdana, sans serif;
    }

    Die im Beispiel definierte Zeilenhöhe 1.4 vererbt sich nämlich, deshalb muss nur noch abweichendes notiert werden. ;)

    Die erste Schriftangabe in der CSS sollte wg. diverser IE-Fehler immer in Prozent sein.
    Schreibt man sie in px (wie im Theme) führt das dazu, das sich die Schrift im IE unter Normaleinstellungen nicht mehr skalieren läßt.
    Nimmt man em kann es zum Extreme-Font-Size-Bug kommen.

    Im Theme ist ja lobenswerterweise ein CSS-Prolog definiert, weshalb alle Abstände erst mal browserübergreifend vereinheitlichend auf null gesetzt wurden.
    Danach müssen natürlich alle Abstände neu definiert werden.

    Man kann z.B. direkt nach den Definitionen für body einfach:

    HTML
    p  {
       margin-bottom:1em;
    }

    schreiben, dann muss auch nur noch abweichendes extra definiert werden.

    Persönlich habe ich in meiner CSS immer eine ganze Reihe von Standarddefinitionen, die ganz oben unter /*Allgemeine Selektoren*/ stehen und mir das Layouten ernorm erleichtern. ;)

    Gruß
    koslowski

    Hi,

    Das ist so nicht ganz richtig.


    naja, du hast natürlich recht. :)
    Richtiger hätte es von meiner Seite heißen müssen:"Ich kriegs nicht hin, weil meine WP-Kenntnisse zu dürftig sind.


    Falls Du Dir die Sache mit dem erstellen einer eigenen Startseite nochmal ansehen möchtest, gibt´s hier nen kleinen 3-Teiler, der Schritt für Schritt beschreibt was zu tun wäre: Unter WordPress eine individuelle Startseite erstellen (Teil 1: Vorarbeiten) Der Webanhalter

    Hey, danke für den Link. :-D
    Bei dem Testblog bau ich das nicht mehr so ein.
    Wenn der richtige Blog an den Start geht (so in zwei Monaten ca.) kann sich das aber ändern.

    Gruß
    koslowski

    Hi,

    okay, ich hab die Lösung. Funktioniert einwandfrei. :-D

    Falls jemand das gleiche Problem hat hier die Lösung:
    Die Hauptnavigation ist horizontal und in der header.php eingebunden.
    Mit wp_list_pages geht es wohl nicht.
    Die Startseite muss manuell rein und dann für die anderen Menüpunkte wp_list_pages.

    Auszug header.php:

    PHP
    <ul>
    <li><a href="/wordpress/"<?php if(is_home() and !is_paged()) echo '   class="aktiv"'; ?> title="Zurück zur Startseite">Startseite Blog</a></li>
    <?php wp_list_pages('title_li=&include=25,18,21&   
       sort_column=menu_order'); ?>
      </ul>

    WP ist bei mir in einem Unterordner, deshalb bei der Startseite unter href auch /wordpress/ und nicht nur /

    Die Nummern fürs include habe ich bekommen, indem ich erstmal alles mit wp_list_pages gemacht habe, hochgeladen, Quelltext angeschaut und bei der entsprechend generierten individuellen Klasse die Nummern rausschrieb.

    Dann habe ich die style.css noch angepaßt, damit der Menüpunkt der aktuellen Seite immer hervorgehoben ist:

    HTML
    #topnavi .aktiv,
    #topnavi .current_page_item a  {
           color:#adf2bf;
           text-decoration:none;
    }

    Naja, für die meisten sicher ein alter Hut, aber für Beginners wie ich vielleicht ganz brauchbar. :)

    Gruß
    koslowski

    Moin,

    das wars wohl doch noch nicht da jetzt nicht die Beiträge da stehen sondern nur die Kommentarfunktion.

    Meine Kenntnisse in WP sind offensichtlich noch zu gering und da ich nichts gefunden habe, was genau auf meinen Fall paßt verlinke ich die h1 einfach und rücke von meinem Vorhaben ab (zumindest solange bis sich meine WP-Kenntnisse deutlich verbessert haben.) :)

    Gruß
    koslowski

    Moin,

    Sieh´s als Rat der Weisen (besser geht ned). :mrgreen:

    sorry wenn ich das mal so anmerke, aber ein wenig besser gehts schon. ;-)

    Warum a:active da mit reingenommen wird ist mir ein Rätsel, da es ja nur im Moment des Klicks gilt.

    Die Grafiken haben ja keinen Bezug zum Inhalt und gehören deshalb nicht ins Markup.

    Wenn die Grafiken ausgeschaltet sind ist "Ende Gelände" mit der Navi.

    Tutorial eines einfachen, horizontalen, grafischen Menüs(vertikal ist ja noch einfacher, nur ist die Grafik da 240x40px!):

    Mit Photoshop wird eine Grafik in der Größe von 120x80px erstellt. Sie beherbergt beide Linkzustände. Der eigentliche Link ist somit 120x40px groß und enthält jeweils auch den Linktext in Form z.B. einer schönen Schreibschrift.
    Normalzustand ist oben in der Grafik, der Hoverzustand darunter

    Doctype ist "strict" um immer im Standardmodus zu sein.
    Beim Link der gerade aktuellen Seite wird <a> gegen <strong> ausgetauscht, damit er nicht auf sich selber zeigt.

    Ein leeres <span> wird vor dem Linktext eingefügt, es bekommt später die HG-Grafik zugewiesen.
    Die HG-Grafik soll per CSS den Linktext verdecken. Die dafür benötigte Technik ist eine Image-Replacement-Technik nach Gilder/Levin

    XHTML:

    Die Abstände werden erstmal auf null gesetzt. Die <ul> bekommt eine Breite und wird zentriert. <li> floatet , bekommt eine Breite und das Listenzeichen ausgeschaltet:

    <a> und <strong> bekommen position:relative; damit sich das später absolut positionierte <span> mit der HG-Grafik daran orientieren kann.
    overflow:hidden ist dafür, damit bei Schriftvergrößerung der Linktext des Markup's nicht darunter hervorlugen kann.
    Es wird zum Blockelement erhoben und kriegt die Breite von <li> und die Höhe der halben Grafik (ein Zustand halt!):

    Code
    a,
     strong  {
          position:relative;
          overflow:hidden;
          display:block;
          width:100%;
          height:40px;
    }

    Der Normalzustand und der hervorgehobene Zustand der gerade aktuellen Seite wird definiert. Mit position:absolute verdeckt die Grafik den Linktext:

    Der untere Teil der Grafik wird durch das "hovern" per background-position ins Bild geschoben:

    Code
    #navi01 a:hover span,
    #navi01 a:focus span,
    #navi02 a:hover span,
    #navi02 a:focus span,
    #navi03 a:hover span,
    #navi03 a:focus span  {
        background-position:0 -40px;
    }

    Mmh..., und damit ist auch der IE einverstanden??
    Nicht ganz:
    Er hat aber plötzlich vergessen wie es geht, das beim überfahren des Links aus dem Pfeil eine Hand werden muss.
    Das wird ihm per CC wieder beigebracht.
    Außerdem bleibt die Grafik des gerade gehoverten Menüpunktes im IE6 nach dem hovern (oft) in der hover-position stehen
    und springt nicht zurück auf die "Normal-Position".
    Der dafür definierte Hack mit background-position mutet unsinnig und absurd an, hilft aber.

    Code
    <!--[if lte IE 7]>
      <style type="text/css">
       ul a span  {
        cursor:hand;
    }
     * html a:hover  {
        background-position:0 0;
    }
      </style>
    <![endif]-->

    Es ist evtl. darauf zu achten, das die Regel nur auf das betreffende Menü beschränkt werden sollte.
    Das kann sichergestellt werden, indem die ul eine id bekommt und die Regel per Nachfahrenselektor
    auf das betroffene Menü angewendet wird.

    Es kann sein das Gilder/Levin bei WP etwas Probleme macht, dann schiebt man den Linktext einfach per CSS aus dem Viewport.
    Evtl klappt das auch mit dem strong statt a nicht, das bräuchte man ne Funktion die das strong in WP einsetzt.
    Vielleicht deshalb einfach auf strong verzichten, ganz normal a hinschreiben

    Gruß
    koslowski

    Hi,

    nochmal danke für deine Hilfe.
    Du bringst mich langsam auf die richtige Spur. :)

    Ich könnte ja dann auch die index.php z.B. als blogstart.php abspeichern, dort oben den Kommentar als Zeichen einfügen das es ein Seitentemplate ist:

    PHP
    <?php
    /*
    Template Name: blogstart
    */
    ?>

    Dann der Seite Blog das Seitemtemplate blogstart zuweisen.
    Das sollte es dann gewesen sein ([FONT=Comic Sans MS][size=8][COLOR=Silver]hoffe ich ma[/COLOR][/SIZE][/FONT][FONT=Comic Sans MS][size=8][COLOR=Silver]l[/COLOR][/SIZE][/FONT]).

    Gruß
    koslowski

    Hi,

    danke für deine schnelle Antwort. :)

    Okay habe ich jetzt mal gemacht. Da kommt sofort die Ermahnung das Start,- und Artikelseite nicht gleich sein sollten.

    Schau ich mir das Ergebnis im Frontend an, werden dann die Menüpunkte im Inhaltsbereich angezeigt und sonst nix.
    Schau ich in den Quelltext sehe ich dieses:

    Code
    <h2>Downloads</h2>
    <div class="der-beitrag">
    <br />
    </div> <!-- Ende des jeweiligen Beitrags -->

    Ich möchte aber, das auf der Startseite nur die letzten Artikel angezeigt werden und ich beim rumsurfen im Blog jederzeit durch Anklicken des Menüpunktes Blog wieder auf die Startseite mit den letzten Artikeln komme.

    Hoffe ich hab mich einigermaßen verständlich ausgedrückt.

    Ich weiss nicht ob ich das im Backend so hinkonfigurieren kann, oder in den Code bestimmter PHP-Dateien eingreifen muss.
    Wenn ich irgendwo codemäßig eingreifen muss bin ich ratlos wo und wie.

    Gruß
    koslowski