Pierre: <h2> als inline-Element innerhalb <p> geht nicht??

Hallo

Ich schon wieder...

Nachdem es für mein letztes Problem leider keine weiteren Lösungsansätze zu geben scheint, hab ich nun in guter alter Manier einfach ein img hinter den Link gesetzt.

Aber...
nun bin ich noch über einen weiteren Stolperstein gestossen. Ich würde gerne einen <h2> innerhalb eines <p> platzieren. Natürlich muss ich den <h2> als display:inline definieren, aber da passiert im Browser dann ganz übles.

Habe hier ein Testfile gepostet.

Wunsch wäre eigentlich, dass ich einen Textblock mit einem h2 beginnen könnte, der Lauftext aber gleich nach dem h2 beginnt.

In meinem Muster habe ich drei Absätze erstellt. Der erste ist so wie ein normaler p ausschauen sollte. Mit Einzug und grösserem Zeilenabstand.

Der zweite Absatz wäre eigentlich so, wie ich es gerne haben würde, aber FF und auch IE zwirbenl den Code mächtig durcheinander. Die Einzüge und Zeilenabstände werden da plötzlich ignoriert.

Der dritte Absatz war einfach noch ein Versuche, wie es ausschaut, wenn ich den h2 mitten im Lauftext platziere.

Sogar in meinem CSS Buch von Kai Laborenz wird darauf hingewiesen, bei der Erklärung von display:inline, dass man genau sowas machen kann. Hab ich irgendeinen groben Fehler übersehen, oder wo liegt das Problem? Sollte doch keine grosse Geschichte sein, ein Block Element als inline zu definieren, damit es später auch so reagiert...??

Wer hilft?
Wer weiss mehr?

Dank :-)
Pierre

  1. Tach,

    nun bin ich noch über einen weiteren Stolperstein gestossen. Ich würde gerne einen <h2> innerhalb eines <p> platzieren. Natürlich muss ich den <h2> als display:inline definieren, aber da passiert im Browser dann ganz übles.

    das HTML-Element p weiß nichts von CSS und kümmert sich auch nicht um die Display-Eigenschaft. Die CSS-Standarwerten für display sind üblicherweise durch die HTML-Eigenschaften festgelegt, du kannst aber durch CSS nicht die HTML-Eigenschaft ändern, diese ist fest.

    mfg
    Woodfighter

    1. Kurze Antwort, die somit auch alles klarstellt.

      Habs nun mit simplen spans gelöst, was mich höchstens wegen der Semantik ein bisschen stört. Werde dafür dem Grafiker auf die Finger klopfen ;-)

      Danke
      Pierre

      1. Hallo Pierre

        Habs nun mit simplen spans gelöst, was mich höchstens wegen der Semantik ein bisschen stört. Werde dafür dem Grafiker auf die Finger klopfen ;-)

        Warum dies?
        Wenn es sich wirklich um ein Überschrift mit nachfolgendem Text handeln soll, dann gehört auch eine hx und ein p dorthin.
        Das ganze in ein gruppierendes Element (div) zu packen (wie von Auge vorgeschlagen), welchem dann die notwendigen Abstände zugewiesen werden, würde ich einer span-Wüste in jedem Fall vorziehen.

        Auf Wiederlesen
        Detlef

        --
        - Wissen ist gut
        - Können ist besser
        - aber das Beste und Interessanteste ist der Weg dahin!
  2. Hallo

    nun bin ich noch über einen weiteren Stolperstein gestossen. Ich würde gerne einen <h2> innerhalb eines <p> platzieren. Natürlich muss ich den <h2> als display:inline definieren, aber da passiert im Browser dann ganz übles.

    <p> darf, obschon ein Blockelement, keine anderen Blockelemente enthalten. Damit sind auch Überschriften (<hx>) gemeint.

    Wunsch wäre eigentlich, dass ich einen Textblock mit einem h2 beginnen könnte, der Lauftext aber gleich nach dem h2 beginnt.

    Kann doch!?

    <h2>Überschrift</h2>  
    <p>Text des Textabsatzes.</p>
    

    In meinem Muster habe ich drei Absätze erstellt. Der erste ist so wie ein normaler p ausschauen sollte. Mit Einzug und grösserem Zeilenabstand.

    Der zweite Absatz wäre eigentlich so, wie ich es gerne haben würde, aber FF und auch IE zwirbenl den Code mächtig durcheinander. Die Einzüge und Zeilenabstände werden da plötzlich ignoriert.

    Wenn das Element per display:inline; zum Inlineelement umdeklariert wird, müssen Angaben zu Höhe, Breite und Außenabstand (margin) ignoriert werden.

    Der dritte Absatz war einfach noch ein Versuche, wie es ausschaut, wenn ich den h2 mitten im Lauftext platziere.

    Setze um den gesamten Eintrag ein <div>, welches mit den Angaben zum Außenabstand versehen wird, und mache dadrin mit den Überschriften und Absätzen, was dir beliebt.

    Sogar in meinem CSS Buch von Kai Laborenz wird darauf hingewiesen, bei der Erklärung von display:inline, dass man genau sowas machen kann.

    Steht da auch drin, dass damit _nicht_ die Regeln von HTML aufgehoben werden, die da z.B. sagen, dass ein <p> _keine_ Blockelemente enthalten darf?

    Tschö, Auge

    --
    Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
    (Victor Hugo)
    <dingdong /><dingdong /><toc /><toc /><toc /><shout>Florence!</shout>
    Veranstaltungsdatenbank Vdb 0.2