Sammeltopic für kurze Codingfragen

Wir sammeln alle Infos der Bonusepisode von Pokémon Karmesin und Purpur für euch!

Zu der Infoseite von „Die Mo-Mo-Manie“
  • Da ich Anfänger in Anfänger in Seitenerstellen (HTML) bin, sollte diese Frage nicht so schwer zu beantworten sein. Ich bitte auch um ein bisschen Geduld, falls ich alles nicht gleich verstehe.
    Es geht um eine Tabelle. Es ist eine einfache Tabelle mit einer Zeile und einer Spalte. Das Problem besteht darin, dass die Absätze zwischen den Wörtern einfach zu groß sind. Ich habe bereits versucht die Größe der Absätze mit <spacer size="0"> zu definieren, aber es hat nicht funktioniert.
    Hier ein Screen (roter Kreis):


    Ich würde auch gerne wissen wie ich den Style einer Tabelle verändern kann, sodess sie im Endeffekt runde Ecken hat.

  • Könntest du bitte deinen Code posten?
    Runde Ecken machst du mit CSS: border-radius (Opera, Google Chrome) und -moz-border-radius (Firefox). Angabe in Pixeln.

    HTML
    <table style="border: 1px solid #000; border-radius: 5px; -moz-border-radius: 5px;">
        <tr>
            <td>Hallo Welt</td>
        </tr>
    </table>
  • Ja, hier der Code:


    Ich habe entweder falsche Codes benutzt, oder diese falsch eingesetzt. Möglicherweiße ist "0" eine falsche Proportion.


    Danke für den CSS-Code.

  • Das Problem ist ganz einfach: Du hast zwischen den beiden Wörtern ein <p> gesetzt und p macht ein Absatz oder os. (Weiß ich selber net genau aber wenn du die wegläßt, ist der abstand auch weg.) Allerdings stehen die beiden Wörter dann nebeneinander. Von daher mußt du einen Umbruch nehmen (ein Umbruch ist im HTML ein <br>; er braucht kein Endtag, also ein </br> gibt's net), wenn du noch nicht mit CSS arbeitest.
    Hab's schonmal editiert:



    Da du Anfänger bist, will ich nicht hart kritisieren aber du hast die Tabelle in einer Tabelle geschrieben aber für ein Menü reicht auch vollkommen eine einzige. Sollte die aber zu einem Zweck sein, den ich nicht sehe, dann nehme ich alles zurück.


    Slash: Oder so geht's auch! ;) Mache ich zur Zeit auch, da die Tabelle zu viel wirrwarr hat. Da kann man zu Anfang auch mal schnell aus'm Ruder kommen.

  • Da du Anfänger bist, will ich nicht hart kritisieren aber du hast die Tabelle in einer Tabelle geschrieben aber für ein Menü reicht auch vollkommen eine einzige. Sollte die aber zu einem Zweck sein, den ich nicht sehe, dann nehme ich alles zurück.

    Für ein Menü reicht eine einzige Liste. Tabellen sind viel zu unübersichtlich!

    HTML
    <ul class="menu">	<li class="heading">Home</li>	<li>Home</li>	<li>Forum</li></ul>



    Adrix: Ich hab den ganzen CSS-Code durch kommentiert und ich würde dir einfach raten dich neben HTML auch gründlich mit CSS zu beschäftigen. Es hilft wirklich! Diese HTML-Attribute á la border, bgcolor etc. gehören alle nicht mehr zum Standard. Auch wenn es anfangs schwer ist, wirst du es später auf gar keinen Fall bereuen, dich mit CSS befasst zu haben.
    Der CSS-Code kommt entweder im Head-Tag zwischen <style type="text/css"> und </style> oder wird als externe Datei eingebunden: <link rel="stylesheet" type="text/css" href="meine_css_datei.css" />.
    Ich möchte dich damit auf keinen Fall schlecht machen, aber ich wollte dir nur zeigen, wie ich es machen würde.
    So sieht es doch auch gleich besser aus:



    Gruß Slash

  • Ich hätte nie gedacht, dass ich hier so eine gute Hilfe bekomme, danke schön, auch für den Code ^^ Wie es aussieht, ist CSS wirklich sehr praktisch, da spare ich viele unnötige HTML codes. Ich hätte noch ein paar Fragen:
    1. Ich habe den CSS-Code einfach zwischen <style> und </style> eingegeben. Ist das ok so, oder wäre <style type="text/css">.....</style> auf irgendeine Weise besser/optimal?
    2. Wenn ich in der Menü-Klasse und in der Menü-Überschrift eigene Grafiken statt einer bestimmten Farbe haben will, welchen code muss ich eintippen?
    3. Angenommen meine Seite würde grob geschätzt aus 4 optischen Faktoren bestehen: einem Banner, 2 Menüs (links, rechts) und einem Hauptfenster bzw. einer Haupttabelle in der Mitte. Skizze: http://i38.tinypic.com/16ar5ms.png
    Im Hauptfenster würde ich gerne alles haben, die Startseite, sowie die gesamten Artikel. Zum Beispiel: "1. Generation" wäre im linken Menü verlinkt, sodass der Besucher nach einem Klick im Hauptfenster eine Auswahl von Spielen findet, die ebenfalls verlinkt sind und deren Artikel auch im Hauptfenster auftauchen sollten usw.
    Muss ich für diesen Zweck immer neue Datein erstellen, den Inhalt von der ersten Datei kopieren, einfügen und alles aus dem Hauptfenster löschen um etwas neues einzufügen, oder kann ich mir die Arbeit erleichtern? Mit einem Script vlt.?
    4. Wenn ich ein gleiches Menü auf der rechten Seite haben will, und zwar auf der gleichen Stufe, und die Codes dafür unter den Codes für das linke Menü eingebe, rutscht das rechte Menü automatisch hinauf?


    @edit: Die Fragen sind möglicherweiße lang genug um sie in einem externen Topic zu stellen, aber der eigentliche Inhalt und die Antworten sollten nicht so lang sein, also habe ich mich für dieses Topic entschieden.

    "Well, once there was only dark. You ask me, the light's winning."
    ~ Rust Cohle, True Detective

    2 Mal editiert, zuletzt von Adrix ()

  • Ich versuche sie mal zu beantworten.^^
    1. Ich mache immer das <style type="text/css">.....</style> dazwischen aber wenn es ohne dem da drinne geht, dürfte es keine Probleme sein oder irgendwelche Funktionen auch noch deaktiviert zu sein. Aber ich mach'S eigentlich, daß es CSS ist, weil style ja eigentlich noch mehr bedeuten kann.


    2. Hmm, im HTML mußt du anfügen:
    Beispiel:

    HTML
    <div background="bild.jpg">

    Hierbei wäre der wichtige Punkt das: background="bild.jpg" Natürlich stimmt bild.jpg nicht, aber wie du sicherlich ahnst, kommt dazwischen der Pfad des Bildes. Aber ich verstehe die Frage akkustisch nicht ganz; wenn du normale Bilder meinst, (das erste Beispiel war jetzt für den Hintergrund) dann mußt du den img Tag nehmen. In dem kannst du normale Bilder einfügen lassen. Als Pfad zum Bild mußt du dann src benutzen. Beispiel: <img src="bild.jpg">


    Mit CSS fügst du so ein Bild ein:

    CSS
    body {background-image: url(bild.jpg);}


    3. Hm, gute Frage und daß hat mich zu Anfang immer total aufgeregt! Ja, du mußt dafür immer eine neue Datei einfügen. Du hast zum Beispiel die Startseite und möchtest als nächstes die News Seite machen. Dann kopierst du den Inhalt der Startseite und fügst alles ein und änderst die entsprechenden Dinge, die dort nicht stehen sollen. Ein Script wäre mir nicht bekannt.... Diese Datei kannst du dann per Links verlinken.


    4. Hierfür kannst du verschiedene Dinge tun aber wie Slash schon sagte; CSS wirste net bereuen. Du könnest die linke Tabelle mit einen Attribut (so nennt man die glaube ich aber ich bin mir da nicht so sicher) mit CSS versehen aber wenn's geht, natürlich in der CSS Datei, für den Fall, falls du mal was ändern willst. du kannst das zweite Menü dann zum Beispiel mit Class einen Namen geben und den dann mit CSS steuern. Mit float kannst du den Kasten dann zur Seite schieben. sieht so aus:

    CSS
    div.menuright {
    width: 20%;
    height: auto;
    float: right;
    }


    Mit float kannste das dann nach links oder rechts schwimmen lassen!^^ Achja und mit margin: auto; setzt du was in die Mitte. ;)

  • 2. Hmm, im HTML mußt du anfügen:

    Das Background-Attribut? Davon hab ich noch nie was gehört. Gehört vermutlich auch nicht zum Standard. Deswegen würde ich das auf keinen Fall verwenden.

    Aber ich verstehe die Frage akkustisch nicht ganz

    lol... Das ist Text; wie kannst du da was akkustisch nicht verstehen? :assi:

    CSS
    background-image: url("image.png");

    Mit Anführungszeichen!


    Zur 3. Frage: Ja, Kyrie (<= ich musste erst mal nachgucken, wie Paul's neuer Nick geschrieben wird xD) hat recht, leider geht es nicht einfach so. Anfangs habe ich auch immer meine Menüs mit Copy&Paste in allen Seiten eingefügt, aber das ist ziemlich nervig. Stell dir vor du willst einen neuen Menüpunkt hinzufügen: Dann musst jede Datei einzeln aktualisieren; na viel Spaß. Als Lösung dafür kannst du entweder PHP-Include oder .shtml-Dateien (Server Side Includes) verwenden.; Bei den .shtml-Dateien ist vorrausgsetzt, dass der Server das unterstützt. Btw. Bisafans verwendet das auch; achte mal auf die Dateiendungen. Hier mal ein Beispiel:

    HTML
    <!--#include file="header.shtml" -->

    Der Code wird in einfache HTML-Kommentare gesetzt und bei einem Server, der das versteht, durch die die gewünschte Datei, in diesem Fall "header.shtml", ersetzt (Dateieindung muss natürlich .shtml sein).
    Bei der PHP-Variante ist es fast das gleiche. PHP muss vom Server unterstützt werden und du musst dir ein paar PHP-Grundlagen aneignen (Dateieindung: .php).

    PHP
    <?php include 'header.php';?>


    Zur 4. Frage:
    Wie Kyrie schon richtig sagte, geht das ganze mit CSS-Floats. Dabei verpasst man einem Element die Eigenschaft float: left oder float: right. Zu dem Thema gibt es hier ein sehr gutes Tutorial.
    Eigenschaften eines Block-Elements mit float: left

    • Das Element nimmt nur so viel Platz ein, wie der Inhalt (z. B. Text) beansprucht
    • Das nachfolgende Element (z. B. noch ein Div Element) versucht sich so weit wie möglich rechts neben dem Element zu plazieren


    Dieser Effekt kann durch ein weiteres Block-Element mit der Eigenschaft clear: both wieder aufgehoben werden. Dann nehmen Block-Elemente wieder so viel Platz wie möglich ein (width: 100%).
    Dein Problem kannst du wie folgt lösen. Ich hoffe du kannst es einigermaßen nachvollziehen.

    HTML
    <div class="header">Ich bin der Header!</div><div class="left">Ich bin das linke Menü!</div><div class="content">Hier kommt der Inhalt hin!</div><div class="right">Ich bin das rechte Menü!</div>


    CSS
    .header {
    	border: 1px solid #000;
    	width: 100%;
    }
    .left, .content, .right {border: 1px solid #000;float: left;}
    .left, .right {width: 19%;}
    .content {width: 60%;}


    Zitat von Adrix

    Ich hätte nie gedacht, dass ich hier so eine gute Hilfe bekomme, danke schön, auch für den Code ^^

    Gern geschehen ;)


    Du könnest die linke Tabelle mit einen Attribut (so nennt man die glaube ich aber ich bin mir da nicht so sicher)


    <div class="blubb"></div>
    Element, Attribut und Wert ;)


    Gruß Slash

  • 1. Ich habe den CSS-Code einfach zwischen <style> und </style> eingegeben. Ist das ok so, oder wäre <style type="text/css">.....</style> auf irgendeine Weise besser/optimal?

    Alles andere wurde ja schon angesprochen, deshalb hier nochma ne Ergänzung: das type-Attribute is immer erforderlich. Zwar akzeptieren Browser es auch ohne und interpretieren den Code dazwischen als CSS-Deklarationen, das ist aber grundsätzlich gesehen falsch. Theoretisch muss man dem Browser erst sagen, welche Sprache man im Style-Bereich verwendet, da es noch andere Stylingsprachen gibt. Der Wert des Attributes is übrigens ein MIME-Type. Dieser gibt Informationen darüber aus, was überhaupt für Daten folgen, denn letztendlich sind es nur Nullen und Einsen. Hier mal mehr tum Thema MIME-Type: http://de.selfhtml.org/diverses/mimetypen.htm

  • Ich habe ein Problem mit text-decoration.
    Ich will ohne css zu benutzen, ein Bild mit darauffolgendem Link, ohne Unterstrich haben.
    Das ist mein Code:

    Code
    <a href="http:link" target="_blank">
    <img src="http:bild" border="0" alt=" test" style="text-decoration: none">Mai</br></a>


    Die Unterstreichung unter dem Bild ist noch da. (ich benutze FF)

  • erstmal is das br-Tag falsch. Wenn du in HTML schreibt, dann muss es einfach <br> lauten. Benutzt du XHTML, is auch noch dein img-Tag fehlerhaft. Das musste dann <img ... /> lauten; das br-Tag wäre dann ein <br />.
    Zum eigentlichen Problem: das style="text-decoration:none;" muss ins a-Tag, schließlich setzt der Browser die Unterstreichung unter den Link.

  • Hä?
    Da ist nichts falsch oder doch?



    Alles ist wirklich im selbem Verzeichnis und müßte aufrufbar sein. Aber ich grübel schon wieder und daß wieder ohne Erfolg. Achja, was da nicht angezeigt wird, ist der Verlauf im Hintergrund. Der Header wird irgendwie net angezeigt.
    Hilfe...