Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Ongelma div-elementin keskittämisen kanssa Operassa

Sivun loppuun

lassi96 [27.02.2011 20:57:59]

#

Olen duunaillut tälläista simppeliä sivua, joka olisi jaettu ylä- ja alaosaan divillä. Ongelma on se, että osien pitäisi olla keskitettyjä, ja kun yritin centerin avulla niin pystyin keskittämään vain yläosan, jos yritin keskittää myös alaosan niin se ei piirtynyt Operassa. Mozillalla tosin näytti toimivan.

Eli tämä ei toimi, alaosa ei piirry:

<center>
<div class="yla"><?php include("yla.htm"); ?></div>
<div class="ala"><?php include("ala.htm"); ?></div>
</center>

Tämä toimii, mutta alaosa ei luonnollisestikkaan ole keskellä:

<center>
<div class="yla"><?php include("yla.htm"); ?></div>
</center>
<div class="ala"><?php include("ala.htm"); ?></div>

Tietääkö joku parempaa keinoa keskittää div-elementtejä tai jotain muuta järkevää ratkaisua? Haluaisin homman toimivan kaikilla (moderneilla) selaimilla.

Lebe80 [27.02.2011 21:05:49]

#

css:

.yla, .ala{
  margin:0 auto;
  width:800px;
}

Yucca [27.02.2011 21:22:09]

#

Millaista keskittämistä tarkoitat? Center-elementti merkitsee tekstin jokaisen rivin keskittämistä. Todennäköisesti sinulla on ala.htm:ssä jotain olennaisesti erilaista kuin yla.htm:ssä, ja siksi center vaikuttaa niihin eri tavalla. URL olis kiva...

Jos haluat keskittää kummankin divin kokonaisuutena, niin sitten niille pitää asettaa leveys (en kuitenkaan suosittele px-määräistä leveyttä, varsinkaan niin suurta kuin 800px), ja sen jälkeen margin: 0 auto (yksinkertainen tapa asettaa margin-left ja margin-right arvoon auto) tehoaa hyvin. Tosin se vaatii ns. standards-tilan, joten sivun alkuun tarvitaan esim.
<!DOCTYPE html>

lassi96 [27.02.2011 21:36:42]

#

Kiitos vastauksista, sain ongelma ratkaistua. Tarkoitus oli juuri keskittää kumpikin kokonaisuutena.

makumaku [27.02.2011 23:33:28]

#

Yucca kirjoitti:

... niin sitten niille pitää asettaa leveys (en kuitenkaan suosittele px-määräistä leveyttä, varsinkaan niin suurta kuin 800px)

Miksi esim asetusta width:800px; ei kannata käyttää?

Grez [27.02.2011 23:49:50]

#

No onhan se nyt ärsyttävää jos saa vain 3 selainikkunaan vierekkäin :D

Ehkä yksi pointti on, että "800px" leveä on tulostettaessa 21,2 cm, eli ei mahdu paperille tulostettaessa kokonaan.

Blaze [28.02.2011 00:26:25]

#

makumaku kirjoitti:

Miksi esim asetusta width:800px; ei kannata käyttää?

Koska et tiedä, kuinka leveä mun selainikkuna on. Se voi olla 200px, 2000px tai jotain siltä väliltä.

punppis [28.02.2011 00:38:24]

#

Ihan turha niitä sivuja on millekkään 200px-leveydelle tehdä. Mielestäni nykyään voi helposti laittaa 800px minimileveyden, sillä suurimmalla osalla on vähintään tuplaten isompi resoluutio. Vaikka selainta pitäisi vain puolella leveydellä auki niin ei ole ongelmia. 100% skaalautuvuus tuo vaan liikaa hommia, eikä oikeasti tyylikkäitä ulkoasuja aina voi edes skaalata kunnolla.

Merri [28.02.2011 01:16:23]

#

Sivustaan voi toki tehdä joustavan siinä määrin, että asettaa esimerkiksi minimi- ja maksimileveydet. CSS:ssä taitaa myös olla jo osassa mobiiliselaimia tukea tyylien valinnalle laitteen resoluution mukaisesti, joten toteuttaminen vaatii vain kehittämistä mobiiliselaimen kanssa. Quirksmode.org sisältää nykyään runsaasti asiaa mobiilipuolesta ja sen monimutkaisuudesta, tosin siellä huomioidaan myös kaikkein heikommatkin laitteet ja selaimet. Parasta on, että pelaa kohdeyleisön mukaan. Ja kannattaa muistaa, että kosketusnäytölliset mobiilivehkeet toimii aika ookoo ihan normaaleillakin pöytäkoneille suunnitelluilla sivustoilla.

Lebe80 [28.02.2011 12:14:43]

#

Blaze kirjoitti:

makumaku kirjoitti:

Miksi esim asetusta width:800px; ei kannata käyttää?

Koska et tiedä, kuinka leveä mun selainikkuna on.

Mut tietäisin, että selaimen sisältö olisi ainakin 800px ;)

alker [03.03.2011 21:54:42]

#

Ien keskittäminen toimii näin:

body {
text-align:center;
}
.yla, .ala{
  margin:0 auto;
  width:800px;
}

The Alchemist [03.03.2011 23:13:03]

#

alker kirjoitti:

Ien keskittäminen toimii näin: ... text-align:center; ...

Internet Explorer ymmärtää kyllä ihan margin-määritteenkin. Ymmärtänyt jo 6.0:sta asti ja sillehän ei ole vuosiin kehitetty yhtään mitään.

Merri [04.03.2011 19:05:53]

#

Se toki sillä oletuksella, että DOCTYPE löytyy. Jos sitä ei ole tai ennen sitä löytyy vaikka muuta koodia, niin sitten IE pomppaa quirksmodeen ja kellään ei ole enää kivaa.

Mutta joo. text-align: center; body-elementtiin on jo niin vanha juttu, että se kannattaa jättää pois käytöstä. Jos margin: 0 auto; ei jostain syystä toimi ja vika on vain IE:ssä, niin DOCTYPE tarvii vaan tarkistaa.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta