Hvorfor får jeg mellomrom her?

Dag Frogner

Supermedlem
Jeg sliter litt med at jeg får mellomrom mellom en annonse og det første ordet i artikkelen, når dette ordet er <h2>.

Se på denne posten: Hva er lukker, blender og ISO? - FotoBlogg.no

Det er riktignok satt en padding på 15px på annonsen, men om jeg fjerner <h2>-tag`en fra ordet "Lukker", blir det plassert 15px under annonsen slik det skal.

Men så lenge jeg bruker <h2>, blir det en god del mer mellomrom mellom annonsen og "Lukker".

Det er ingen padding eller margin på <h2>, så det kommer ikke derfra heller.

Dette er koden jeg bruker for å vise "Les mer"-teksten og for å fjerne teaseren fra posten, med den påfølgende <h2>`en:

<!--more--><!--noteaser--><h2>Lukker</h2>

Tips anyone?
 

RAH

Medlem
Du får inn dette etter annonsen: <p><span id="more-54"></span><!--noteaser--><br /><h2>...

Kan det hende at jomla legger til paragrafer automatisk, slik wordpress kan gjøre?

Jeg fikk rettet opp i problemet ved å endre <p> til <p style="display: none;">
 

Dag Frogner

Supermedlem
Dette ER wordpress. ;)

Men ja, jeg ser at jeg får inn en paragraf ekstra når jeg sjekker med Firebug, men jeg finner ikke ut hvordan jeg kan endre dette. Det er ingenting i HTML-editoren som ser unormalt ut.

Det er vel ingen enkel måte å bruke koden din på, kun på enkelte poster?
 

adeneo

Medlem
Problemet er at HTML'en som wordpress spytter ut ser slik ut:

PHP:
<p>
    <span id="more-54"></span><!--noteaser--><br />
    <h2>Lukker</h2>
    <p>På speilreflekskameraer sitter lukkeren....
</p>

En paragraph ( <p> ) kan kun inneholde inline elementer, og header elementer ( <h*> ) er block elementer, og er ugyldige inne i <p> tagger.
Det gjør at nettleseren automatisk lukker paragrafen for å unngå at <h2> elementet kommer inne i denne, slik at det blir:

PHP:
<p>
    <span id="more-54"></span><!--noteaser--><br />
</p>

<h2>Lukker</h2>

<p>På speilreflekskameraer sitter lukkeren....</p>

Derfor får du en ekstra <p>, og det mellomrommet.
 

adeneo

Medlem
Det er nok ikke mulig å kode seg rundt det problemet uten å endre html'en slik at den blir gyldig, eventuelt slik som kek91 foreslår, med en div eller annet element som kan inneholde block elementer. Det er mulig det går an å sette h2 {display: inline;} i CSS, men det påvirker alle h2 elementer, og html'en blir ikke gyldigere av den grunn.
 

RAH

Medlem
Sorry, vet ikke hvor jeg fikk joomla fra :p

Ikke den beste løsningen, men det løser problemet ditt:
endre
<div class="ezAdsense adsense adsense-leadin" >

til
<div class="ezAdsense adsense adsense-leadin" style="margin-bottom: -40px;">


Annet forslag, om du går i WP og redigerer posten og ser i HTML mode, har du noe mellomrom over h2? Hvis du har det, fjern det og se hva som wordpress ikke legger til <p>.
 
Topp