Andreas Nagel: vor den Text soll ein Symbol auf gleicher Ebene stehen

Hallo zusammen

auf meiner Seite sollen vor den Text bei Bedarf Symbole stehen. Aber doch bitte mittig in der Tabellenzelle wie auch der Text. Und dies wird per php eingeschrieben. Doch steht das Symbol ganz oben an der Zelle und diese ist größer. Mit Line Hight wird die Größe der Zelle angegeben und so der Abstand Abstand nach Außen angegeben:

 { font-family: 'Times New Roman'; font-size:18px; color:#000; text-decoration: none; padding-left:20px; padding-right:20px; vertical-align:middle; display:block; white-space:nowrap; line-height:40px; outline: none; }  
a

$Img = "<img src='Pictures/Sub.png' width='30px' height='30px' hspace='10' style='margin-top:5px'></img>";

Die Zeile in dieser dann das Image dann stehtz will ich jetzt nicht angeben. Sie wäte zu aufwändig. Aber ist ja eh egal, da das img eh zwischen den <a> Tags steht.

Danke Gruß Andreas

  1. Lieber Andreas Nagel,

    Du hast ein Darstellungsproblem, welches in erster Linine CSS betrifft, und postest es unter (X)HTML... Hm.

    Als Faustregel solltest Du Dir merken, dass inline-styles sich mit Deinen CSS-Regeln im Stylesheet beissen. Jedenfalls ist das sehr oft so. Daher sollte man (schon aus Gründen der leichteren Fehlersuche und vor allem der Übersichtlichkeit wegen) auf inline-styles grundsätzlich verzichten. Dass inline-styles ein Redesign einer Seite fast unmöglich machen, sei der Vollständigkeit halber am Rande erwähnt.

    Auch in Deinem Falle gibt es mit vernünftigen CSS-Selektoren die Möglichkeit, auf inline-styles zu verzichten. Da bin ich mir absolut sicher.

    Solltest Du den Wahnsinn für HTML-Mails treiben, dann hättest Du das besser gleich geschrieben, denn dann ist Dir nicht zu helfen, da Du keine Garantie dafür hast, wie die Clients die Mails anzeigen.

    vor den Text bei Bedarf Symbole stehen.

    Das riecht sehr nach Hintergrundbild. Warum sollte nicht die Tabellenzeile eine passende Klasse bekommen (das lese ich aus "bei Bedarf" heraus)? Daraufhin können dann die Selektoren greifen und Deiner Zelle ein passendes Hintergrundbild (ganz ohne margin und trallalla, nur mit "center" und "no-repeat") spendieren.

    Die Zeile in dieser dann das Image dann stehtz will ich jetzt nicht angeben. Sie wäte zu aufwändig. Aber ist ja eh egal, da das img eh zwischen den <a> Tags steht.

    Und Du glaubst allen Ernstes, ich hätte jetzt eine glasklare Vorstellung davon, wie Deine Seite strukturell aussieht, um Dir darauf einen vernünftigen Vorschlag abzuleiten? Probier's doch mal mit einer statischen Beispielseite online!

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Hallo Grüße

      OK sotty ich wollt edie Zeile nicht gleich einfügen. Ich dachte es reche zu sagen das es sich um ein Symbol handele das mit dem Text in dem <a> Tag steht. Aber OK:

      echo "<td style='white-space:nowrap;'><a oncontextmenu='ActiveLink = this; LinkObjektePositionieren(\"LinkMenue\", self.name); PageMenuesShow(\"LinkMenue\")' onclick='$Befehl1 $Befehl2 $Befehl3 $Befehl4' onfocus='if (ActiveLink != undefined) {ActiveLink.className= \"\"; ActiveLink=this; }; ' $Url id='$ID' name='".$Name."' $Infos $Daten $DateiLink $Link $Sub >$Img$Anzeige</a></td>";

      Und von wgen Inline zu schreiben verstehe ich auch nicht, da das Objekt ja im Tag des Textes steht.

      Und das ich die gesamte Zeile hier einfüge bitte ich um Verständnis. Es soll nix fehlten und die Unktionen funktionieren einwandfrei. Doch bin ich ratlox wieso das Symbol so dargestellt wird.

      Danke Gruß Andreas

      1. Lieber Andreas Nagel,

        OK sotty ich wollt edie Zeile nicht gleich einfügen. Ich dachte es reche zu sagen das es sich um ein Symbol handele das mit dem Text in dem <a> Tag steht.

        wundervoll. Wenn ich Hilfe suche, gebe ich mir beim Tippen etwas mehr Mühe.

        echo "<td style='white-space:nowrap;'><a oncontextmenu='ActiveLink = this; LinkObjektePositionieren(\"LinkMenue\", self.name); PageMenuesShow(\"LinkMenue\")' onclick='$Befehl1 $Befehl2 $Befehl3 $Befehl4' onfocus='if (ActiveLink != undefined) {ActiveLink.className= \"\"; ActiveLink=this; }; ' $Url id='$ID' name='".$Name."' $Infos $Daten $DateiLink $Link $Sub >$Img$Anzeige</a></td>";

        Dein Beispiel zeigt, wie man es tunlichst nicht machen sollte. Du schreibst offensichtlich CSS-Angaben, JavaScript-Code und HTML in Deine serverseitige PHP-Logik. Na dann viel Spaß bei einem eventuellen Redesign! Da kann man echt kompletto von vorn anfangen...

        Und von wgen Inline zu schreiben verstehe ich auch nicht, da das Objekt ja im Tag des Textes steht.

        Das style-Attribut ist für absolute Notfälle sinnvoll - ansonsten nicht.

        Und das ich die gesamte Zeile hier einfüge bitte ich um Verständnis.

        Ich hatte ja indirekt darum gebeten, daher ist das völlig in Ordnung. Deine Trennung zwischen serverseitiger Logik (PHP), Dokumentstruktur (HTML), Layout (CSS) und Dynamik (JavaScript) ist noch ausbaufähig. In Deinem gegenwärtigen Code-Salat will ich lieber nichts finden müssen!

        Es soll nix fehlten und die Unktionen funktionieren einwandfrei.

        Was auch immer das heißen soll. Ich warte auf Dein Darstellungsproblem. Das ist übrigens eines im Browser, sodass ausschließlich der beim Browser ankommende Code wesentlich ist, nicht Dein PHP-Gemüse!

        Doch bin ich ratlox wieso das Symbol so dargestellt wird.

        Benutzt Du eigentlich Tools wie Firebug? Dann solltest Du angezeigt bekommen, aus welchen CSS-Anweisungen sich die aktuelle Darstellung ableitet, und wo diese Anweisungen jeweils stehen.

        Und nach wie vor gilt: Ich kann nichts sehen, was mir auch nur den geringsten Ansatz für einen zielführenden Hinweis gibt. Ohne Beispielseite ist Dir offensichtlich nicht zu helfen!

        Liebe Grüße,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
        1. Hallo Felix Riesterer

          darf ich denn noch einmal Anlauf nehmen? Denn es ist unbeschreiblich wieso denn der Abstand zwischen Symbol und dem Zellenrand nach unten so groß ist. Das Symbol steht ganz oben und auch der dahinter stehende Text steht nicht mehr ganz horizontal zentriert. Und dies ist der css Code dafür:

          a { font-family: 'Times New Roman'; font-size:18px; color:#000; text-decoration: none; padding-left:20px; padding-right:20px; vertical-align:middle; display:block; white-space:nowrap; line-height:40px; outline: none; }

          Und die Zelle ist auch nicht mehr 40px groß, was auch noch stört. Und so wollte ich Hilfe.

          Ich dachte ich bringe noch einmal einen Beitrag, denn eine Seite habe ich nicht zu zeigen.

          Danke Gruß Andreas

          1. Lieber Andreas Nagel,

            Ich dachte ich bringe noch einmal einen Beitrag, denn eine Seite habe ich nicht zu zeigen.

            auch keinen auf das Nötigste reduzierten HTML-Code (mit dem wesentlichen CSS-Code in einem <style>-Element im <head>), den man sich zu einer HTML-Datei abspeichern könnte?

            Liebe Grüße,

            Felix Riesterer.

            --
            ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)