Sama Div eri sivuilla

Putteri

Tämä on varmasti tyhmä kysymys, mutta CSS-aloittelijana olisi kiva tietää vastaus.

Elikkäs, jos on määriteltynä esim. Div-elementti "sisältö", jota haluaisin käyttää sivuston kaikilla sivuilla siten, että elementin koko (käytännössä korkeus) määräytyisi sen sisällön mukaan - siis ilman, että joka sivulle tarvitsisi määritellä omaa sopivan kokoista elementtiä. Kuinkahan tällainen määritellään?

7

652

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Divin korkeushan määräytyy sisällön mukaan, jos mitään rajoituksia ei ole erikseen määrätty. Siis jos et anna arvoja height- ja max-height-ominaisuuksille, niin div kasvaa pystysuunnassa sisältönsä mukaan.

      Toisekseen, divien nimissä ei kannata (eikä speksien mukaan varmaan saakaan) käyttää ääkkösiä, eli mieluummin



      kuin

      .

      • hyy

        Jos haluaa, etta divit ovat aina vahintaan tietynkorkuisia, niin kun laittaa heigh-maarityksen, niin Mozillalla korkeus ei veny jos sisaltya tulee enemman, mutta IE:lla venyy. Mozillalle saa laitettua minimi korkeuden kayttamalla maaritysta min-height, mutta IE ei taas tata tunnista.

        Itse olen keksinyt tahan kaksi ratkaisua...
        Joko jos sivun sisalla voi olla vierityspalkki niin voi maaritella overflow:auto;
        Tai sitten antaa IE:lle oman maarityksen

        .div {
        min-height: 300px (tama Mozillalle/Operalle)
        }

        *html .div {
        height: 300px (vain IE lukee taman)
        }

        Tietaako miten tuon saisi tehtya yhdella maarittelylla?


      • hyy kirjoitti:

        Jos haluaa, etta divit ovat aina vahintaan tietynkorkuisia, niin kun laittaa heigh-maarityksen, niin Mozillalla korkeus ei veny jos sisaltya tulee enemman, mutta IE:lla venyy. Mozillalle saa laitettua minimi korkeuden kayttamalla maaritysta min-height, mutta IE ei taas tata tunnista.

        Itse olen keksinyt tahan kaksi ratkaisua...
        Joko jos sivun sisalla voi olla vierityspalkki niin voi maaritella overflow:auto;
        Tai sitten antaa IE:lle oman maarityksen

        .div {
        min-height: 300px (tama Mozillalle/Operalle)
        }

        *html .div {
        height: 300px (vain IE lukee taman)
        }

        Tietaako miten tuon saisi tehtya yhdella maarittelylla?

        Ongelma piilee jälleen Internet Explorerissa, joka ei ole kuullutkaan min-height-ominaisuudesta ja joka tulkitsee height-ominaisuudenkin merkityksen väärin. On kuitenkin olemassa kiertoteitä, joista muutama on lyhyesti kuvattu alla.

        Tapa 1: The Underscore Hack ( http://wellstyled.com/css-underscore-hack.html )

        HTML:


        CSS:
        #sisalto
        {
           min-height: 100px;
           _height: 100px;
        }
        --------------------

        Tapa 2: IE ei ymmärrä !important-sääntöjä

        HTML:


        CSS:
        #sisalto
        {
           min-height: 100px;
           height: auto !important;
           height: 100px;
        }
        --------------------

        Tapa 3: IE ei ymmärrä attribuuttivalitsinta

        HTML:


        CSS:
        .sisalto
        {
           height: 100px;
        }

        *[class="sisalto"]
        {
           height: auto;
           min-height: 100px;
        }
        --------------------

        Tapa n: IE ei ymmärrä... :)


      • Putteri

        Juu, olen kokeillut tuota korkeusarvon jättämistä pois, mutta ongelma vaivaa sellaisessa tilanteessa, jossa ensin on määritelty div-laatikko, jonka sisään tulee toinen laatikko.

        Pelkällä tekstillä ulompi laatikko venyy kyllä, mutta sisällä olevalla laatikolla ei. Ulomman laatikon korkeuden joutuu siten määrittämään ja sitten se on yhtä suuri sivuston jokaisella sivulla.


      • Putteri kirjoitti:

        Juu, olen kokeillut tuota korkeusarvon jättämistä pois, mutta ongelma vaivaa sellaisessa tilanteessa, jossa ensin on määritelty div-laatikko, jonka sisään tulee toinen laatikko.

        Pelkällä tekstillä ulompi laatikko venyy kyllä, mutta sisällä olevalla laatikolla ei. Ulomman laatikon korkeuden joutuu siten määrittämään ja sitten se on yhtä suuri sivuston jokaisella sivulla.

        Perustapauksessa ulomman divin pitäisi venyä sisemmän divin korkeuden mukaan. Esim. seuraava koodi toimii odotetulla tavalla ainakin Operassa, Firefoxissa ja IE:ssä.

        CSS:
        #box1
        {
           border: 1px solid black;
           padding: 10px;
        }

        #box2
        {
           width: 50px;
           height: 100px;
           border: 1px solid blue;
        }

        HTML:

           
           


        Ongelmia kyllä tulee silloin, kun sisempi div asetetaan kelluvaksi. Eli jos box2:lle lisätään sääntö "float: right;", niin sisempi loota leviää ulomman ulkopuolelle. Kunnon selaimilla tämä korjaantuisi antamalla box1:lle säännön "overflow: auto;", mutta tapansa mukaan IE aiheuttaa taas ongelmia. Toinen tapa olisi lisätä ulomman divin loppuun



        mutta tämä ei enää kuulu suositeltujen ratkaisujen joukkoon. Koska tässä kuitenkin yritetään temppuilla sivun ulkonäön kanssa, on aina parempi jättää viritykset kokonaan CSS-puolelle.

        Joka tapauksessa ongelmia aiheuttavan lähdekoodin näkeminen auttaisi olennaisesti asian ratkaisemisessa.


      • Putteri
        Whitelighter kirjoitti:

        Perustapauksessa ulomman divin pitäisi venyä sisemmän divin korkeuden mukaan. Esim. seuraava koodi toimii odotetulla tavalla ainakin Operassa, Firefoxissa ja IE:ssä.

        CSS:
        #box1
        {
           border: 1px solid black;
           padding: 10px;
        }

        #box2
        {
           width: 50px;
           height: 100px;
           border: 1px solid blue;
        }

        HTML:

           
           


        Ongelmia kyllä tulee silloin, kun sisempi div asetetaan kelluvaksi. Eli jos box2:lle lisätään sääntö "float: right;", niin sisempi loota leviää ulomman ulkopuolelle. Kunnon selaimilla tämä korjaantuisi antamalla box1:lle säännön "overflow: auto;", mutta tapansa mukaan IE aiheuttaa taas ongelmia. Toinen tapa olisi lisätä ulomman divin loppuun



        mutta tämä ei enää kuulu suositeltujen ratkaisujen joukkoon. Koska tässä kuitenkin yritetään temppuilla sivun ulkonäön kanssa, on aina parempi jättää viritykset kokonaan CSS-puolelle.

        Joka tapauksessa ongelmia aiheuttavan lähdekoodin näkeminen auttaisi olennaisesti asian ratkaisemisessa.

        Ongelma johtuikin siitä, että olin määritellyt sisemmälle laatikolle absoluuttisen sijainnin jota ei ilmeisesti saa tehdä? Kiitokset jokatapauksessa!


      • repeee
        Whitelighter kirjoitti:

        Perustapauksessa ulomman divin pitäisi venyä sisemmän divin korkeuden mukaan. Esim. seuraava koodi toimii odotetulla tavalla ainakin Operassa, Firefoxissa ja IE:ssä.

        CSS:
        #box1
        {
           border: 1px solid black;
           padding: 10px;
        }

        #box2
        {
           width: 50px;
           height: 100px;
           border: 1px solid blue;
        }

        HTML:

           
           


        Ongelmia kyllä tulee silloin, kun sisempi div asetetaan kelluvaksi. Eli jos box2:lle lisätään sääntö "float: right;", niin sisempi loota leviää ulomman ulkopuolelle. Kunnon selaimilla tämä korjaantuisi antamalla box1:lle säännön "overflow: auto;", mutta tapansa mukaan IE aiheuttaa taas ongelmia. Toinen tapa olisi lisätä ulomman divin loppuun



        mutta tämä ei enää kuulu suositeltujen ratkaisujen joukkoon. Koska tässä kuitenkin yritetään temppuilla sivun ulkonäön kanssa, on aina parempi jättää viritykset kokonaan CSS-puolelle.

        Joka tapauksessa ongelmia aiheuttavan lähdekoodin näkeminen auttaisi olennaisesti asian ratkaisemisessa.

        Jos haluaa käyttää float-ominaisuutta elementeissä, voi ominaisuuden katkaista esim. luomalla div-tagin, joka sijoitetaan koodiin float-elementtien ja ylitettävän elementin väliin.

        ko. div-tagin (vaikkapa #clear) css-koodiin määritellään vain, että clear: both!


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Riikka Purran kaudella nousi bensan hinta yli 2 euron

      Muistatteko kuinka edellisen vasemmistohallituksen aikana, ns. Marinin aikakaudella, bensiiniä sai 1,3 euron litrahinnal
      Maailman menoa
      125
      4771
    2. Veli Sofia teki urosmehiläisen työn

      Paljastaessaan kuinka TPS:ssä ei joukkuehenki toimi sooloilijoiden vuoksi, jonka takia koko seura ei pärjää kilpailussa
      Maailman menoa
      5
      3402
    3. Mitäs nyt sijoittajat?

      Pörssit laskevat maailmalla Iranin sodan takia ja muutenkin ovat olleet Trumpin vallan alla epävarmat. Ainoa, mikä on no
      Maailman menoa
      128
      3210
    4. Hjallis Harkimon, 72, Jasmine-rakas, 37, paljastaa suhteen alusta: "Vähän..."

      Liikemies, kansanedustaja Hjallis Harkimo ja tuottaja-juontaja Jasmine Pajari ovat pariskunta. He asuvat yhdessä Sipooss
      Suomalaiset julkkikset
      26
      2637
    5. Unisex-vessat

      Ahdistaa. Miksi kaikki pitää tasapäistää tasa-arvon nimissä? Tasa-arvo on sitä, että kunnioitetaan sukupuolien erilaisu
      Tunteet
      75
      2372
    6. Jutta Larm, 52, haluaa kumota tämän piintyneen ikämyytin

      Oletko samaa mieltä? Jutta Larm on 52-vuotias ja tehnyt pitkän uran yrittäjänä. Hän haluaa kumota tämän piintyneen ikämy
      50 plus
      18
      1779
    7. Henri Alen tilittää yllättäen Vappu Pimiän uudesta MasterChef -pestistä: "Vaikka hän ei..."

      Vappu Pimiä on uusi MasterChef Suomi -tuomari. Hän liittyi uudella MasterChef Suomi -kaudella arvovaltaiseen tuomaristoo
      Suomalaiset julkkikset
      9
      1404
    8. Vastuun ottaminen omasta hyvinvoinnista

      Olen huomannut tuttavapiirissäni ihmisiä, joilla on mt-diagnooseja. Sen sijaan, että millekään asialle yritettäisiin teh
      117
      1265
    9. Minkä kouluarvosanan 4-10 annat Beck-leffoille?

      Vähiin käy ennen kuin loppuu... Beck-elokuvia on tullut tv:stä jopa 2-3 viikossa. Nyt leffojen esitystiheys on muuttunut
      Elokuva
      9
      1233
    10. Jäit kiinni siitä

      että katselet minua. Käänsin pääni, minäkin etsin sinua, ja meidän katseemme kohtasivat. Eikä se haittaa - molemmat ky
      Ikävä
      4
      1148
    Aihe