Beiträge von Sassar

    - - - Aktualisiert - - -

    Okay ich habe mir mal deine HTML Strucktur angeschaut. Folgendes Fällt mir hier sofort ins Auge was mir ein Augenbluten verursacht XD

    Und zwar baust du eine tabellarische Strucktur auf. Was ich generell erstmal gut finde ist das du keine Table verwendest :), aber man sollte sein HTML semantisch dennoch tabellarisch zusammen stellen.

    dazu kommen einige CSS Fehler, wie zb das du SPAN-Elemente linksbündig floatest. Das ist unnötig das SPAN-Elemente standardmäßige Fließelemente sind. Somit reihen diese Sich sowieso nebeneinander an.

    Aber um noch schnell deine Frage zu beantworten warum das mit den "!important" nach der klammer funktioniert liegt daran das du mit dem !important das CSS invalid machst. Somit wird die nachfolgende Zeite

    CSS
    a span {display: none; position: absolute; color:#ccffff; background:#008800; padding: 5px; opacity:1.0 !important;} [COLOR=#ff0000]!important[/COLOR]
    [COLOR=#ff0000][U]a {position: relative; color: ivory4; } [/U][/COLOR]

    Somit wird diese Zeile nicht interpretiert: a {position: relative; color: ivory4; }
    Wenn du nun das !important nach der Klammer entfernst wird diese Zeile wieder gelesen und eine color: ivory4 gibt es nicht. Somit kann es sein das dein Text aufeinmal nicht mehr sichbar ist.


    Ich würde dir eine eine folgende HTML Strucktur empfehlen:

    Diese ist a leserlicher und leichter zu erweitern um neue Zeilen. Desweiteren kann man diese Strucktur auch besser in ein extra Template auslagern und Inhalte Serverseitig schneller durch eine Schleife generieren. Auf die unnötigen Links würde ich an deiner Stelle verzichten. Da diese nur unnötige Verwirrung stiften und keine relevants haben. Desweitern würdest du SEO (Search Engine Optimising) eine auf den Deckel bekommen. Da hier viele Links generiert sind die alle keine relevants haben. Jedoch aber Links von einer Surchmaschine also relevanter Inhalt ausgelesen werden. Desweitern sind H3,H4 .. Tags obsolet und sollten auch nicht mehr verwendet werden. Hx-Tags sind Auszeichnungselemente und eine Seite sollte nur noch mit einer H1 Überschirft und ansonsten mit H2 Überschriften für relevante Unterpunkt ausgezeichnet werden. Desweitern ist zu berücksichtigen das im H1-Tag der Text sich mit der Headline gleicht (Sofern man kein Breadcrump in den <title> einbaut.

    Desweitern empfehle ich dir bei dein CSS das du Elemente die gleiche Eigenschaften Teilen diese auch zusammen fassen solltest. So sparst du dir, ofte Wiederholungen und falls du mal ein Element in der Farbe ändern willst musst du das nicht an x stellen machen, sondern nur an einer. Darüberhinaus ist das CSS schlanker und damit schneller geladen, was die bei Suchmaschinen auch wieder ein Pluspunkt bringt ;)

    So das wars erstmal von mir wieder. Ich hoffe ich konnte etwas licht ins Dunkle HTML Wesen bringen :D


    Lg

    ich weiß nicht warum der inhalt nicht richtig dar gestellt wird.. das forum zerschießt mir meine Antwort auf das Thema -.- Sry hätte gern geholfen

    - - - Aktualisiert - - -

    Jetzt klappts.

    jeroms, bitte beachte das Javascript Popus von vielen Browsern aus Sicherheitsgründen Standardmässig unterdrückt werden. Popups lassen sich aber auch Super als Overlay integrieren. Hierzu ein kleines Bsp.

    HTML:

    Code
    <div id="popupWrapper">
      <div id="popupShadow"></div>
      <div id="popupContent">
        <div class="insert"></div>
        <div class="button" data-close="">Popup schließen</div>
      </div>
    </div>
    <div class="pageWrapper">
      <div class="button " data-popup="http://www.forum-hilfe.de/threads/58199-von-der-index-seite-neue-Seite-in-Popup-Fenster-%C3%B6ffnen/page2">Öffne mich im Popup</div>
    </div>


    CSS:

    JS: (ich setzte voraus das jQuery eingebunden ist, diesen Code am vor den schließenden </body>-Tag einbinden)
    Der Einbettcode für jQuery lautet:

    Code
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

    Das ist nur ein Sample und eine schnell Lösung mit einen iFrame. Man kann natürlich auch via jQuery auch den Content der Seite holen und direkt den Inhalt in das Popup integrieren. Dies macht aber nur dann sinn Wenn Style und Inhalt von einer Seite kommen. Der Vorteil ist, das deine eigentlich angebrowste Seite nicht verloren geht. Du kannst nun Daten zwischen Popup und Seite im Hintergrund austauschen. Und zu jeden Zeitpunkt interagieren. Wenn das Popup viel kleiner Sein soll kann man das Popup auch per Drag&Drop schiebbar machen oder in einer Stelle bei deiner Webseite fest verangern. Zb kann man so das Popup auch "Minimieren" in dem man es Nach unten Rechts im Bildschirm setzt. Mit der Positionnierung "Fixed" kann man nun auch durch die Seite scollen und das Popup ist immer zu sehen auf ein Klick auf das Popup wird es wieder maximiert. Kann man sich vorstellen wie bei der Youtube-App von Apple und Android. Und Und und das starre Popup was der Browser hingegen mitbringt ist bei weiten nicht so Flexibel und ein Datenaustausch ist ohne AngularJS nur sehr schwer möglich

    Lg Sassar

    Jasperz, wenn du willst kann ich mal drauf schauen. Dafür benötige ich aber mal einen Link. Generell der Quelle: http://www.thestyleworks.de/basics/percentage.shtml würde ich nicht mehr soviel beachtung schenken. Der andere Link: https://developer.mozilla.org/de/docs/Web/CSS/padding-top hingegen ist gold richtig. Den Mozilla Dev ist die offizielle Dokumentation was JS, CSS und HTML angeht. Deswegen wenn du wissen willst wie was genau geht berufe dich immer auf diese Seite. Desweitern gibt es in CSS und HTML manchmal Tags / Eigenschaften die man mit Vorsicht nutzen sollte. Zb ist ein wunderschönes Verhalten was auch prozentualle Höhen sehr gut macht die Flexbox. Ob man diese auch verwenden kann bekommt man hier raus: http://caniuse.com/ .

    zu deinem Bsp.:

    Hier wurden gleich mehrere Fehler gemacht welche man ausbessern muss damit es klappt, bzw es sauber ist ohne das du auf anderen Seiten oder später Probleme bekommst.

    Die erste Frage die sich mit stellt ist, warum muss es ein LinkTag sein wenn wer mit # markiert ist? Oder ist es derzeit nur ein DummyTag? Das !important ist wie es der Arne Drews bereits beschreibt nur nötig sofern man das CSS unsauber geschrieben hat, oder man über gewisse CSS definitionen die sich alle Gegenseitig beinflussen dafür zu sorgen das diese dennoch gesetzt werden wie zb.:

    CSS
    <div class="button absolute"></div> 
    
    
    div.button{ position: relative; }
    .absolute{ absolute !important; }

    in diesem Beispiel stelle ich somit sicher das ein Element dem ich die Klasse absolute gebe immer Absolute positioniert ist und kann somit diesem Button eine andere Positionierung geben als den Standardbuttons.

    Desweiteren setzt du deinen SPAN-Tag auf text-align = center. Ein SPAN-Tag ist jedoch ein fließendes Element welches so breit wie seine Inhalt ist (display = inline). Damit ist die CENTER definition in diesem kontekst nicht richtig. Auch eine reine WIDTH Angabe in dem SPAN-Tag würde nicht direkt den gewünschten erfolg bringen. Erst wenn das Fließverhalten des SPAN-Tags ändert kann man hier auch die Breite des Elements verändern. Hier empfehle ich dem SPAN-Tag zu einer Mischform aus Blockelement und Fließelement zu machen. Quasi ein inline-block (display: inline-block;) Damit kann man nun dem SPAN auch einen Breite geben.

    Desweiteren hat das !important nach der schließen Klammer der Cascadendefinition nix zu suchen. Denn das macht dein CSS invalid und die nachfolgende Zeile wird nicht ausgewährtet.

    Aber hier ein Beispiel wie es klappt ohne eine Breitenangabe.

    Bitte :)

    ich kann dir eine Schritt für Schritt anleitung geben :) aber dafür solltest du das HTML umbauen da sonst der CSS Code einfach den Rahmen sprengt. Wenn du das Bild also mittels des HTML Tags <img /> einbindest kannst du, wie von mir weiter oben schon geschriebenen code, einfach anwenden. Dieser Funktioniert aber nur bei einen Image Element nicht bei einen Background Image :)

    Lg Sassar


    Wozu gehört denn dies hier?

    Code
    .site-header .home-link {
        color: #141412;
        display: block;
        margin: 0 auto;
        max-width: 1557px;
        min-height: 230px;
        padding: 0 20px;
        text-decoration: none;
        width: 100%;
    }

    Stef

    Da Bilder manchmal mehr erklären als 1000 Worte :)

    [http://tommy-bley.de/web-hilfe/css_klassen.png -> Link für besser Qualität]

    Das nächste ist, wenn du deine CSS Classe so nennst wie von dir oben beschrieben:

    #img.header-2XXXXXXXXX.jpg {
    display: inline-block;
    min-width: 400px;
    max-width: 1557px;
    width: 100%;
    margin: 0 auto;
    }

    würde das im HTML Code so aussehen müssen damit diese eigenschaft greift:

    <img id="img" class="header-2XXXXXXXXX jpg" src="[pfad zur datei]" />

    Wie du siehst wäre das relativer Blödsins :) wenn du im CSS ein String mit einer Route (#) markierst bedeutet das, dass du eine ID im HTML ansprichst. Achte hier darauf, wenn du valides HTML schreiben willst, dass du in auf einer HTML Seite immer nur eine ID drauf hast.
    Da eine ID ja was eindeutiges sein soll. CSS würde dennoch bei mehreren ID's alles richtig darstellen. Erst wenn du JavaScript schreibst würde dir das dann auf die Füße fallen.

    Wenn du Strings im CSS mit einen Punkt notierst (.), sprichst du eine HTML Klasse an. Hier können auch durchaus mehrere pro Element und auch mehrfach wiederverwnedet werden. Deswegen sollte man sich für Cleancode eher auf Klassen konzentrieren und nur für eindeutige Sachen IDs verwenden.

    Wenn du im CSS einen String schreibst ohne irgendwas, wie z.B. div, dann sprichst du direkt den HTML Tag an. In diesem Fall wäre es der Div-Container.

    Nun kann man im CSS auch klassen kombinieren bzw Breadcrumbs (Krümmelpfade) ertellen. Damit schaffst du dir eine Ebene, die gewisse HTML-Bedingungen, an gewisse DOM Sturckuren anhängst.

    zum beispiel hast du in deinem HTML mehrere Image Tags, <img /> jetzt hast du eventuell ein zwei Spalten Layout und möchtest auf der rechten Seite das die Bilder immer 200px Breit sind und auf der Linken Seite immer 150px Breit sind.

    jetzt könntest du das wie folgt lösen

    Code
    .leftSide img {
      width: 200px;
    }
    
    
    .rightSide img {
      width: 150px;
    }

    in dem ich die Zwei spalten jeweils mit einer Klasse leftSide und rightSide versehen habe. Kann ich nun wunderbar sagen das alle Bilder welche im Container mit der Elternklasse .leftSide sind auch wirklich 200px breit sind dabei ist es egal ob die bilder in weiteren Container steckt, weil ich ja sage beliebig viele Container zwischen .leftSide ..... img sein dürfen. Möchte ich hingegen sagen. Das nur Bilder die direkt in leftSide liegen 200px Breit sein sollen das muss das so aussehen:

    Code
    .leftSide > img {
      width: 200px;
    }

    mit dem Größerkleiner Zeichen, (>) kann ich nun im CSS sagen das ich nur direkte Kinder ansprechen möchte.

    Es gibt natürlich noch ca 50.000 andere CSS REgelen aber für den CSS Einstieg sollte das was bringen :)

    Ich hoffe ich konnte etwas licht ins dunkel bringen

    Lg Sassar

    - - - Aktualisiert - - -

    Und sry für meine schlechte Ausdrucksweise xD

    Ich habe mir mal deinen Code angeschaut. Es ist möglich mit CSS dein Problem zu lösen. Jedoch muss man dazu sagen das die strucktur einfach nicht optimal ist. Besser ist es wenn du das Logo der Webseite als <img> einbindest. Und nicht wie derzeit als Background-Image. Den das Background Image übernimmt keine Höhe vom Fließtext, ein ImageElement jedoch schon. Wenn du das Image als Bild einfügst kannst du das Bild mit folgenden Eigenschaften immer mittig positionieren und es Scalliert mit. Und der Content richtet sich nach deinem Logo.

    Code
    img.irgendEineKlasse{
      display: inline-block;
      min-width: 400px;
      max-width: 1557px;
      width: 100%;
      margin: 0 auto;
    }

    Lg Sassar