Beiträge von koslowski

    Moin,

    Aber um die Gestaltung der Links geht es mir noch nicht, mir geht es ERSTMAL darum, überhaupt Links (oder einfach nur Schrift) dorthin platziert zu bekommen, wo ich sie haben will - also rechts von den Thumbnails.

    genau das ist Gestaltung. :)

    Alles was mit positionieren von Elementen zu tun hat, mit Farben, Größen, usw. ist CSS.


    Und das ohne dass sie von der Header-Grafik überdeckt werden, so wie es mit der Tabelle passiert ist, von der ich vorher schrieb.

    Eine Headergrafik sollte eine Hintergrundgrafik sein und nicht als img eingebunden werden (außer dem Logo vielleicht.).

    Zum positionieren zählt auch die Stapelreihenfolge, d.h. die Schichtung auf der z-Achse (zum Betrachter hin).

    Wenn man das falsch macht kann schon mal ein Element unerwünschterweise das andere verdecken.


    Oder meinst Du das mit "Gestaltung der Links"?

    jep. :)

    Gruß
    koslowski

    Hi,

    mit deiner header.php kann ich leider nix anfangen.

    Wenn du im Backend verschiedene Seiten erstellt hast, kannst du mit wp_list_pages dir diese Seiten als Linkliste ausgeben lassen.

    Dabei weist WP den Listenpunkten Klassen zu.
    Für den Link der aktuellen Seite wird dem entsprech. Listenpunkt .current_page_item zugewiesen. Diese Klasse kannst du mit CSS individuell gestalten.

    Außerdem wird den Listenpunkten die Klasse .page_item und eine spezifische Klasse z.B. .page-item-(irgendeine Zahl) zugewiesen.
    Diese Zahl ist bei jedem Listenpunkt anders.

    Diese Klassen kannst du herausfinden indem du den Quelltext der Seite aufrufst und nachsiehst welche Klassen WP vergibt.

    Das sind auch wieder Ansatzpunkte um die Liste per CSS zu gestalten.

    Ohne CSS-Kenntnisse ist eine individuelle Gestaltung der Links leider schwerlich möglich. ;)

    Gruß
    koslowski

    Hi,

    eine Tabelle ist für tabellarische Daten da.
    Eine Reihe von Links gehört semantisch als Liste ausgezeichnet (ul).

    PHP
    <div id="kopf">
      <h1>Schrauben Müller - <span>Der Blog</span></h1>
    </div><!-- Ende #kopf -->
    <div id="topnavi">
      <ul>
        <li><a href="/wordpress/"<?php if(is_home() and !is_paged()) echo ' class="aktiv"'; ?>
             title="Startseite">Startseite Blog</a></li>
        <?php wp_list_pages('title_li='); ?>
      </ul>
    </div><!-- Ende #topnavi -->

    So könnte der entscheidende Teil einer header.php aussehen.

    Zuerst div#kopf mit Hauptüberschrift und direkt danach div#topnavi mit der horizontalen Navigation.
    Optisch kann man es so aussehen lassen als wäre die navi im Kopf, z.B. gleiche Farbe und kein Abstand zwischen #kopf und #topnavi.

    Mit dem ersten li wird sichergestellt das die gerade aktuelle Seite optisch hervorgehoben wird (die Klasse .aktiv hat die gleiche Formatierung wie die Klasse .current_page_item welche auf der aktuellen Seite normal ausgegeben wird)

    Durch wp_list_pages werden die Links als Liste ausgegeben und jeder Listenpunkt bekommt noch zwei Klassen mit auf den Weg:
    .page_item und .page-item-5 wobei die 5 nur beispielhaft ist.
    Jeder Listenpunkt bekommt eine individuelle Klasse mit einer jeweils anderen Zahl augegeben.
    So hast du genug Ansatzpunkte um das Ganze per CSS zu gestalten.

    Innerhalb der Klammer nach wp_list_pages können noch versch. Parameter eingetragen werden, um das Ergebnis zu steuern.


    Bin kein WP-Profi deshalb hoffe ich nix falsches zu erzählen. :)

    Gruß
    koslowski

    Hi,

    die browserübergreifende Darstellung der voreingestellten Listenzeichen ist kaum in den Griff zu bekommen.

    Beim FF ist z.B. die Default-Einstellung von list-style-position outside und beim IE ist es inside.

    Das Sicherste ist, die Listenzeichen für alle li-Elemente auf list-style-type:none; zu setzen (also ziemlich oben in der style.css). und Hintergrundgrafiken als Listenzeichen einzusetzen.

    Die Lösung mit HG-Grafiken als Listenzeichen ist browserübergreifend i.d.R. völlig unproblematisch. :wink:

    Gruß
    koslowski

    Hi,

    die Listen wurden falsch geschachtelt.
    So ist es richtig:

    HTML
    <ol>
    <li>Ebene 1
    <ul>
    <li>Ebene 2</li>
    <li>Ebene 2</li>
    </ul>
    </li>
    <li>Ebene 1</li>
    </ol>

    Das schließende li-Element kommt erst nach der eingefügten ul. ;)

    Zitat

    Das CSS kann man bei wordpress.com leider irgendwie nur gegen Geld ändern... :sad:

    Oder du lernst es.

    Gruß
    koslowski

    Hi,

    ein beispiel: die graue box ist mit min-height definiert.
    (wahrscheinlich nicht IE6 konform)

    PS: ansonsten folge ich koslowski's anregung, uns mal einen link zu geben.

    der IE6 braucht per Cond. Comment height, da er height fälschlicherweise wie min-height behandelt.

    Mir ist aber trotzdem schleierhaft warum hier min-height zum Einsatz kommen soll, wenn nicht "Foot Sticker Alt" benötigt wird.

    Das Beste ist doch immer keine Höhe anzugeben und die Abstände per padding/margin herzustellen.

    Gruß
    koslowski

    Hi,

    display:block für a.
    Dann wird a so groß wie sein Elternelement.
    Das hat auch den Vorteil das dann nicht nur der Text verweissensitiv ist, sondern die ganze Fläche.

    Die Höhe wird ganz einfach über ein entsprechendes padding festgelegt. ;)

    Ach ja, a sollte für den IE6 noch HasLayout in Form einer Mindesthöhe bekommen (über Cond. Comment!), damit auch dort nicht nur der Text verweissensitiv wird.

    Gruß
    Klaus

    Hi,

    nein, das reicht natürlich nicht.

    Seufz:

    Dein Content hat position:relative;
    Nimm das doch mal raus und schau ob das reicht.

    Zeile 132-136 deiner style.css:

    HTML
    #header,#content, #footer {
            float: left; display: inline;
            clear: both;
            position: relative;
        }

    Dort nimmst du #content raus sodaß es dann so ausschaut:

    HTML
    #header, #footer {
            float: left; display: inline;
            clear: both;
            position: relative;
        }

    Dann klappt die Subliste im IE6 und im IE7 wie gewünscht über dem Content aus. ;)

    Der Grund warum sie im IE6/7 hinter dem Content ausgeklappt ist habe ich auch schon gepostet:


    Ansonsten wäre noch anzumerken das der IE6/7 jedem positionierten Element wo HasLayout=true gilt fälschlicherweise einen Art Stapelkontext zuordnet, so als wäre z-index:0 gesetzt.

    Klasse wenn man sich selbst recyceln kann. :mrgreen:

    Gruß
    Klaus

    Hi,

    die Angaben des z-index scheinen zu stimmen.

    sorry, wenn ich widerspreche aber das tun sie ganz und gar nicht. ;)

    z-index wirkt nur auf Elemente die ungleich position:static (Default-Einstellung!) sind.
    In dem Link wird z-index an Elemente vergeben die position:static sind.

    Hab jetzt leider zuwenig Zeit mir das anzuschauen, aber vielleicht helfen ein paar Tips:
    Im normalen Textfluss ordnen sich die Elemente untereinander an.
    In der natürlichen Stapelreihenfolge befindet sich das zuletzt notierte Element im Quelltext am nächsten zum Betrachter (Z-Achse).
    Diese Reihenfolge kann man durch Vergabe von position:relative beeinflussen.
    Meistens reicht das. Wenn nicht kommt noch z-index hinzu.

    Mit z-index kann die Reihenfolge von überlappenden Elementen auf der z-Achse bestimmt werden.
    Je höher der z-index-Wert, desto näher wird das Element zum Betrachter hin angeordnet.

    Durch float wird die Stapelungsreihenfolge ebenfalls geändert, da gefloatete Elemente auch aus dem Textfluß raus sind.

    Du vergibt z.B. fast überall den gleichen z-index-Wert.
    Dein Content hat position:relative;
    Nimm das doch mal raus und schau ob das reicht.

    Ansonsten wäre noch anzumerken das der IE6/7 jedem positionierten Element wo HasLayout=true gilt fälschlicherweise einen Art Stapelkontext zuordnet, so als wäre z-index:0 gesetzt.

    Gruß
    Klaus

    Hi,

    Das steht bei dir im Quelltext. Der Linktext fehlt noch.
    Dann sähe es so aus:

    Für li schreibst du erstmal ganz allgemein:

    HTML
    #navigation li  {
        float:left;
        list-style-type:none;
    }

    dann das Spezielle für jeden li extra:

    HTML
    #navigation #navi01  {
        width: 60px;
    }
    #navigation #navi02  {
        width: 80px;
    }
    #navigation #navi03  {
        width: 90px;
    }

    Da du für jedes li eine id vergeben hast kannst du die auch extra ansprechen, um deine individuelle Breite zu vergeben. Da ich deine Breiten nicht kenne habe ich einfach beispielhafte Zahlen genommen.

    Für das span wird dann einfach width:100% und die exakte Höhe genommen, halt wie in meinem Beispiel. ;)

    Gruß
    koslowski

    Hi,

    um etwas wiederzufinden wo du wie was ändern mußt solltest du dir Firebug im FF installieren.
    Dort kannst du Änderungen eingeben und sofort live im Browser sehen, was diese bewirken.

    Um bei diesem speziellen Post den Text unter dem Bild zu ändern schreibe ich in die style.css:

    HTML
    #post-2256 p  {
         font-size:0.3em;
         color:green;
    }

    Ergebnis: ein superkleiner, grüner Text unter dem Bild. :mrgreen:

    Das herauszufinden hat mit Firebug ungefähr 15 Sekunden gedauert.

    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