Hei! Sellainen ongelma on ilmennyt, että kun liitän includen avulla html-sisältöä html-sisällön keskelle, esimerkiksi valmiin sivun keskelle liittäisin kirjautumislomakkeen. Kun sisältö liitetään, tulee tiedostojen "liitoskohtaan" väkisin ylimääräinen rivinvaihto. Mistähän se johtuu ja kuinka voisin sen korjata muuten kuin tekemällä tällaisen homman:
<p style="margin-top: -20px;"></p>
Jos ymmärsitte, kertokaa mistä on kyse, kiitos!
Katsopa, ettei sun "include"-tiedostoissas ole mitään ylimääräisiä rivinvaihtoja <?php ?> -tägien ulkopuolella (esim. tiedoston alussa/lopussa).
Missäs kohtaa tuo rivinvaihto näkyy, kun periaatteessa html:ssä tyhjät rivit eivät näy ilman erillisiä html-tägejä.
Lebe80 kirjoitti:
Missäs kohtaa tuo rivinvaihto näkyy, kun periaatteessa html:ssä tyhjät rivit eivät näy ilman erillisiä html-tägejä.
Tarkkaanottaen tuo ei ihan noin ole. Inline-kontekstissa useat peräkkäiset tyhjät rivit ja muut whitespace-merkit supistuvat yhdeksi välilyönniksi. Eli sillä on merkitystä onko noita whitespaceja yksi tai useampi vaiko ei yhtään.
Tukki kirjoitti:
Lebe80 kirjoitti:
Missäs kohtaa tuo rivinvaihto näkyy, kun periaatteessa html:ssä tyhjät rivit eivät näy ilman erillisiä html-tägejä.
Tarkkaanottaen tuo ei ihan noin ole. Inline-kontekstissa useat peräkkäiset tyhjät rivit ja muut whitespace-merkit supistuvat yhdeksi välilyönniksi. Eli sillä on merkitystä onko noita whitespaceja yksi tai useampi vaiko ei yhtään.
No siksihän mä sitä kysyinkin, miten se näkyy ja missä kohtaa. Kysyjä kuitenkin puhuu rivinvaihdosta, eikä "välilyönnistä".
Itse asiassa lähdekoodissa ei näy <br> -tägejä tai vastaavaa, joten kyse ei ehkä ole rivinvaihdosta, mutta kuitenkin...
Huomasin, että väli ilmestyy vain, jos käytän liitettävässä koodissa tägejä. Jos kirjoitan sisällön ilman mitään tägejä, ei väliä tule.
Esimerkki tapauksesta:
Index.php
<html> <body> <div style="border: 1px solid #000;"> <?php include("kirjaudu.php"); ?> </div> </body> </html>
Ja kirjaudu.php:
<p>Kirjaudu</p> <form> Tunnus: <input type="text"> </form>
Ettei nyt vain olisi selaimen oletustyylit ongelman aiheuttajana? Eli joko p-tägi puskee itselleen omat rivinvaihdot, tai vastaavasti formin tyylit.
Tietenkin, sullahan voi olla myös omia css-tyylejä, joita et vain tuohon esimerkkiisi ole laittanut...
Ajattelin itsekin, että se lienee tägien oletustyylistä kiinni, mutta jännä että ne tyylit tulevat käyttöön vasta kun liitän tekstiä. Jos saman sisällön liittää ilman includea, välejä ei synny.
No selaimesta vaan Web Developer osio auki ja katsomaan, mistä johtuu, ei tästä oikein pysty ilman linkkiä arvailemaan muuta.
White-space ei saa olla ongelma. Koodaa sivusi paremmin. Lisäksi on aika selvää, että pasteamasi esimerkit eivät oikeasti ole sitä koodia, mikä sulla oikeasti on käytössä ja minkä kanssa sulla on ongelmia. Sellaisista esimerkeistä ei tietenkään voi vikaa löytää.
Haraldinho kirjoitti:
Ajattelin itsekin, että se lienee tägien oletustyylistä kiinni, mutta jännä että ne tyylit tulevat käyttöön vasta kun liitän tekstiä. Jos saman sisällön liittää ilman includea, välejä ei synny.
Minulla ainakin kun testaan noita esimerkkejä, tekstin "Kirjaudu" ylä- ja alapuolelle tulee tyhjä rivi riippumatta onko käytetty includea vai onko tuo lomake index.php tiedostossa.
Se johtuu ihan tuosta p ja form-tagien oletustyyleistä. Koska ne molemmat on yhdellä rivillä voit asettaa niille tyyliksi display:none.
pistemies kirjoitti:
Se johtuu ihan tuosta p ja form-tagien oletustyyleistä. Koska ne molemmat on yhdellä rivillä voit asettaa niille tyyliksi display:none.
...
pistemies kirjoitti:
Koska ne molemmat on yhdellä rivillä voit asettaa niille tyyliksi display:none.
Mit... miksi?!
http://www.reactiongifs.com/wp-content/uploads/2013/02/imgur_9CUtI.gif
Oho. Eiku inline :)
(Rivitys on sillon "none")
pistemies kirjoitti:
Oho. Eiku inline :)
(Rivitys on sillon "none")
No eikös silloin olis vaan helpompi laittaa p:n tilalle jokin inline-elementti?
Lebe80 kirjoitti:
No eikös silloin olis vaan helpompi laittaa p:n tilalle jokin inline-elementti?
Joo.
The Alchemist kirjoitti:
Koodaa sivusi paremmin.
Ah, siinäpä vasta ammattilaisen neuvo, kiitos avusta! Alankin koodata tästä lähtien hyvin sen sijaan, että koodaisin huonosti :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.