Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: CSS: 99% - 7px ?

Sivun loppuun

Juhko [12.03.2009 20:02:28]

#

Eli olen tekemässä JJP:n sivustolle yläreunaan valikkoa aivan hirveällä tavalla. Nyt olen tekemässä siihen pyöreitä reunoja, ja ongelmana on oikea reuna. Tarvitsisin siihen siis tuon laskutoimituksen, eli 99% - 7px.

Tässä siis se hirveä koodi:

<p>
    <img src="http://jjp.110mb.com/logo.gif" style="position:relative;left:10;top:5" alt="JJP">
</p>
<div style="height: 40px; width: 99%; position: relative; left: 0px;">
    <img align="left" src="http://jjp.110mb.com/menul.gif">
    <img align="right" src="http://jjp.110mb.com/menur.gif">

    <div style="background: url('http://jjp.110mb.com/menubg.gif'); background-repeat: repeat-x; height: 40px; position: relative; left: 7px; width: (99% - 7px)?">
        <div style="position: relative; top: 10px; left: 15px;">

            <a href="http://jjp.110mb.com/index.php" class="menu">Etusivu</a>&nbsp;&nbsp;&nbsp;
            <a href="http://jjp.110mb.com/keskustelu/" class="menu">Keskustelu</a>&nbsp;&nbsp;&nbsp;
            <a href="http://jjp.110mb.com/lataukset.php" class="menu">Lataukset</a>&nbsp;&nbsp;&nbsp;
            <a href="http://jjp.110mb.com/kommentit.php" class="menu">Kommentit</a>&nbsp;&nbsp;&nbsp;

        </div>
    </div>
</div>
<div id="sisalto">
(itse sivu alkaa tästä)

menubg.gif on 1x40 px ja menul.gif ja menur.gif 7x40 px.

EDIT: Noniinnytkaikkeaeiolekirjoitettuputkeen.:D

ankzilla [12.03.2009 20:06:33]

#

Älä­kir­joi­ta­kaik­ke­a­put­keen,­niin­voi­sin­jo­tai­nym­mär­tääk­kin.:D

kinnala [12.03.2009 20:14:52]

#

No siis...

Javascriptilla saat haluamasi leveyden esim. näin

Math.round(0.99*document.documentElement.clientWidth)-7

Tätäkö hait?

PS. En väitä, että olisi järkevin tapa käyttää tällaista purkkaa tuohon ;-)

Juhko [12.03.2009 20:33:30]

#

Joo, mutta en saa tungettua tuota CSS:n sekaan. Tässä epätoivoinen yritykseni:

<p><img src="http://jjp.110mb.com/logo.gif" style="position:relative;left:10;top:5" alt="JJP"></p>
<div style="height: 40px; width: 99%; position: relative; left: 0px;"><img align="left" src="http://jjp.110mb.com/menul.gif"><img align="right" src="http://jjp.110mb.com/menur.gif">
  <?php echo "<div style='background: url('http://jjp.110mb.com/menubg.gif'); background-repeat: repeat-x; height: 40px; position: relative; left: 7px; right: " ?>
    <script type="text/javascript">
      document.write(Math.round(0.99*document.documentElement.clientWidth)-7);
    </script>
    <?php echo "'>"; ?>
    <div style="position: relative; top: 10px; left: 15px;">
      <a href="http://jjp.110mb.com/index.php" class="menu">Etusivu</a>&nbsp;&nbsp;&nbsp;
      <a href="http://jjp.110mb.com/keskustelu/" class="menu">Keskustelu</a>&nbsp;&nbsp;&nbsp;
      <a href="http://jjp.110mb.com/lataukset.php" class="menu">Lataukset</a>&nbsp;&nbsp;&nbsp;
      <a href="http://jjp.110mb.com/kommentit.php" class="menu">Kommentit</a>&nbsp;&nbsp;&nbsp;
    </div>
  </div>
</div>
<div id="sisalto">

ps. PHP:llähän tämä ei ole mahdollista, vai mitä? Paitsi tietenkin jos lähetetään ennen valikon näyttämistä näytön mitat palvelimelle ja kirjoitetaan se siellä CSS-koodiin ja, ja, ja...

kinnala [13.03.2009 00:15:57]

#

Sovella vaikka tätä

<html>
<head>
	<style type="text/css">
	#foo
	{
		background-color: red;
		height: 50px;
	}
	</style>
	<script type="text/javascript">
	window.onresize = set_width;

	function set_width()
	{
		tmp = document.getElementById("foo");
		tmp.style.width = (Math.round(0.99*document.documentElement.clientWidth)-7) + "px";
	}
	</script>
</head>

<body onload="set_width()">
	<div id="foo"></div>
</body>
</html>

Merri [13.03.2009 06:50:23]

#

Ei JavaScriptiä tämmöiseen käyttöön poijjaat. Kunhan pääsen töihin niin käytän arvokasta palkka-aikaani hyödyllisesti ja päivitän tähän viestiin jonkinlaisen CSS-pohjaisen rävellyksen.


Työajan hyötykäytön tulokset

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fi">
	<head>
		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
		<title>CSS-valikko</title>
		<style type="text/css">/*<![CDATA[*/

#menu {
	background: url(http://jjp.110mb.com/menubg.gif) repeat-x;
	line-height: 40px;
	position: relative;
	width: 99%;
}

#menu div {
	background: url(http://jjp.110mb.com/menul.gif) no-repeat;
}

#menu ul {
	background: url(http://jjp.110mb.com/menur.gif) no-repeat 100% 0%;
	display: block;
	list-style: none;
	margin: 0;
	padding: 0;
}

#menu li {
	display: inline;
	margin: 0 15px;
	padding: 0;
}

		/*]]>*/</style>
	</head>
	<body>
		<div id="menu"><div>
			<ul>
				<li><a href="http://jjp.110mb.com/index.php">Etusivu</a></li>
				<li><a href="http://jjp.110mb.com/keskustelu/">Keskustelu</a></li>
				<li><a href="http://jjp.110mb.com/lataukset.php">Lataukset</a></li>
				<li><a href="http://jjp.110mb.com/kommentit.php">Kommentit</a></li>
			</ul>
		</div></div>
	</body>
</html>

Mikäli pyöristetyissä kuvissasi on läpinäkyvyyttä, niin sitten #menu div:lle voi tehdä seemmoisen tempun, että laittaa marginaaliasetukseksi 0 -7px, jolloin tapahtuu vähintäänkin mielenkiintoisia efektejä.

Juhko [14.03.2009 13:38:01]

#

Kiitos! Homma toimii. Viitsittekö vielä tarkistaa, näkyykö oikein? Itse testasin Safarilla ja Firefoxilla.

Niko [14.03.2009 15:45:32]

#

Voit katsoa itsekkin, esimerkiksi BrowserShots -sivustolta.

Merri [14.03.2009 20:38:19]

#

IE6, IE7 ja IE8 ei näytä niitä, mutta en jaksanut katsoa syitä. Ulkoasun tummuudesta ja värivalinnoista johtuen eroa tuskin peruskävijä edes huomaa.


Sivun alkuun

Vastaus

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

Tietoa sivustosta