Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Divin venyminen toisen divin mukaan

Sivun loppuun

Quirzo [18.08.2007 14:47:17]

#

Eli tässä on tekeillä olevat sivuni (Älkää välittäkö vieraskirjasta, nuo oli testausta varten)

http://quirzo.arkku.net/tMp/vieraskirja/

Onko mitään simppeliä mahdollisuutta venyttää tuota valikkoa sivun kokoiseksi.

Toimiiko se, että alla olisi div ja noiden height olisi 100%?
En ole kokeillut vielä, tuli vasta äsken mieleen.

Kiitos!

Quirzo [18.08.2007 16:49:41]

#

Tarvitsen nyt myös apua siinä, että miten saan estettyä tuon liian pitkän viestin ylimenemisen?

Eli siis toiseksi ylin viesti menee liian leveäksi.

Quirzo [19.08.2007 09:26:08]

#

Apua?

kasetti [19.08.2007 12:00:01]

#

Kokeileppa katkoa tekstiä tulostettaessa (php-versio): https://www.php.net/manual/fi/function.wordwrap.php

Aiheesta on muistaakseni ollut aikaisempaakin keskustelua joten kokeileppa jos löytäisit ne putkan haun avulla.

Quirzo [19.08.2007 12:50:06]

#

Kiitos sillähän se onnistu.

Muuten, miten saan tuon viestikentän koko tr:n leveydelle?
Nyt sitä ei saa ton levemmäksi (Eli tuo päivämäärä -td estää sen)

Olga [19.08.2007 18:01:31]

#

<td colspan='2'>viesti</td>

Quirzo [19.08.2007 18:19:56]

#

Kiitos paljon!!

NiLon [20.08.2007 03:35:59]

#

kasetti kirjoitti:

Kokeileppa katkoa tekstiä tulostettaessa (php-versio): https://www.php.net/manual/fi/function.wordwrap.php

Aiheesta on muistaakseni ollut aikaisempaakin keskustelua joten kokeileppa jos löytäisit ne putkan haun avulla.

Itse näkisin paremmaksi käyttää css:n overflowia.

Merri [20.08.2007 13:13:32]

#

Jos wrappaat yhden ylimääräisen divin Navigaation ja Sivun ympärille, niin voit käyttää seuraavaa tyyliä...

#Taulu {
display : table;
}
.Navigaatio {
display : table-cell;
}
.Sivu {
display : table-cell;
}

Mutta ei toimi sitten Internet Explorerissa.


Vaihtoehto B:

#Taulu {
position : relative;
}
.Navigaatio {
height : 100%;
}

Varauksin toimii myös IE:ssä, ja ainakin myös vähän vanhemmat Operat nikottelee.


Muitakin vaihtoehtoja on. Esimerkiksi semmoinenkin onnistuu, että .Navigaation alaosan heittää absoluuttisesti ihan alas (bottomillilla) ja laittaa #Taulun taustakuvaksi tai -väriksi sen tarpeellisen Navigaation taustavärin. Lisäksi tarvitaan tuo position : relative;. Tämä luo illuusion siitä, että Navigaatio jatkuisi koko matkalta.

Olga [20.08.2007 13:28:51]

#

Hätätapauksessa onnistuu myös JavaScriptillä. Joskus tein luokan, joka asettaa elementeille saman korkeuden kuin parametrina annettavan elementtitaulukon korkein elementti. Ei hirveän kattavasti testattua koodia, mutta here goes:

var UniformHeightAdjuster = Class.create();
UniformHeightAdjuster.prototype =
{
  initialize: function (opts)
  {
    this._opts =
    {
      elements: []
    };

    Object.extend(this._opts, opts || {});

    $(this._opts.elements);
    this._adjust();
  },

  _adjust: function ()
  {
    var els       = this._opts.elements;
    var elCount   = els.size();
    var maxHeight = this._getMaximumHeight();

    els.each(function (el)
    {
      el.style.minHeight = maxHeight + 'px';

      // a hack for ie, because it doesn't understand min-height
      if (el.offsetHeight < maxHeight)
        el.style.height = maxHeight + 'px';
    });
  },

  _getMaximumHeight: function ()
  {
    var els       = this._opts.elements;
    var elCount   = els.size();
    var maxHeight = 0;

    els.each(function (el)
    {
      var height = el.offsetHeight;

      if (height > maxHeight)
        maxHeight = height;
    });

    return maxHeight;
  }
};

Kyseinen luokka vaatii Prototype-kirjaston toimiakseen, mutta äkkiäkö tuosta vääntää siitä riippumattoman version. Toimintatapa jotakuinkin seuraava:

...

<body>
  <div id='navigation'>foobar</div>
  <div id='content'>lorem ipsum</div>
</body>

<script type='text/javascript'>
  new UniformHeightAdjuster([$('navigation'), $('content')]);
</script>

Taitaa toimia myös pelkällä elementin id:llä, sillä tuolla konstruktorissa peritään nuo Element-luokan ominaisuudet (minkä tuo $-funktio siis tekee). Mutta tietty parempi on homma tehdä ilman JS:ää. Itsekin käytän lähes aina tuota Merrin mainitsemaa taustakuvakikkaa. En ihan noin kuten Merri sen kuvasi, mutta idea on sama.

Merri [20.08.2007 13:45:47]

#

Lyhyemmälläkin ja kevyemmin juoksevalla koodilla selviää:

<div id="main">
	<div>
		<p>One</p>
		<p>One</p>
		<p>One</p>
		<p>One</p>
		<p>One</p>
		<p>One</p>
		<p>One</p>
	</div>
	<div id="content">
		<h2>Two</h2>
	</div>
	<div>
		<p>Three</p>
		<p>Three</p>
		<p>Three</p>
		<p>Three</p>
	</div>
</div>
<script type="text/javascript"><!-- <![CDATA[
function column_resize() {
	var main = document.getElementById('main');
	var columns = main.getElementsByTagName('div');
	for(var i = 0, maxi = columns.length; i < maxi; i++) {
		columns[i].style.height = (main.offsetHeight - 2);
	}
}
window.onload = function() {
	var main = document.getElementById('main');
	if(main) {
		var columns = main.getElementsByTagName('div');
		if(columns.length) {
			document.body.onresize = column_resize();
			column_resize();
		}
	}
}
//]]> --></script>

Tosin käytän tuota koodia yhdessä esimerkissä vain IE:n kohdalla, joka nojaa juurikin tuohon ensimmäiseen taulukkocss:ää käyttävään esimerkkiini.

Olga [20.08.2007 15:51:13]

#

Juu, tokihan tuo onnistuu helpommin ja nopeammin kyseiseen ongelmaan spesifioidulla koodinpätkällä, selvähän tuo :)

Quirzo [22.08.2007 22:31:23]

#

En saanut tuota Merrin table -esimerkkiä toimimaan.

Mitä mieltä olette nykyisestä? Siinä on nämä rullajutut.

Pidän tuona tai laitan sen vanhan. Mutta haluan ulkopuolisten mielipiteitä =)


Sivun alkuun

Vastaus

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

Tietoa sivustosta