Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Css ongelma, miksi paddin käyttäytyy oudosti

Paulus M [27.09.2010 22:22:58]

#

Tälläinen ihme ongelma on, enkä millään keksi miksi Firefoxi ei osaa laskea pikseleitä oikein, vai onko joku muu teksti rikkonut eheyden:

navigointi palkkini näyttää määritelmällä padding: 0px 0 0px 0; todella laihalta.
kun laitan paddingiksi 1px 0 1px 0; niin yhtäkkiä se lihavoituu jollain 30 pikselillä, mikäköhän bugi lie?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fi">
<head>
<title>Roomba imurirobotit - Roomba.fi</title>
<link rel="stylesheet" type="text/css" href="style.css">

</head>

<body>
<div id="title_part">

</div>

<div id="navi">
 <ul>
  <li><a href="kauppa.php">Kauppa</a></li>
  <li><a href="kauppa.php">joku</a></li>
  <li><a href="kauppa.php">joku2</a></li>
  <li><a href="kauppa.php">yhteys</a></li>
  <li><a href="kauppa.php">tyo</a></li>
</div>


</body>
</html>


+CSS
#body
{
	padding: 0px;

}

#navi ul li
{

	display: inline;
	list-style-type: none;
	color: white;
}

#navi
{
	padding: 1px 0 1px 0;
	-moz-border-radius: 4px;
	-webkit-border-radius: 4px;
	background-color: green;
	margin-top: 100px;
	/*vertical-align: middle;*/

}

#navi a, #navi a:visited, #navi a:hover, #navi a:active
{
	text-decoration: none;
}

Metabolix [27.09.2010 22:28:24]

#

Kun määrität diville täytettä, sen sisällä olevan ul-elementin marginaali asettuu määritetyn täytteen sisäpuolelle; muuten marginaali saisi jäädä divin ulkopuolellekin. Tämän olisit voinut selvittää myös omatoimisesti Firefoxin Firebug-laajennoksella, joka osaa näyttää elementtien osien rajat.

Ota turha div pois ja käytä pelkkää ul-elementtiä (ul#navi). Lisää myös puuttuva sulkutagi </ul>.

Paulus M [27.09.2010 22:37:44]

#

Hei kiitti Metabolix, sulla ei näytä taidot ruostuneen :)
Voinko samassa kysyä vielä sellaista, että miksi toi li elementti ei jostain syystä hyväksy leveyttä esim. witdth: 100px. Kun laitan kehykset niin huomaan, ettei sen leveys olekaan se mikä määritetty?

Metabolix [27.09.2010 22:44:03]

#

Yksinkertaisesti siksi, että inline-elementille ei voi määrittää leveyttä. Voit kuitenkin vaihtaa display-arvoksi inline-block.

Vanhat IE:t eivät tue inline-blockia kuin luonnollisille inline-elementeille, joten niitä varten pitää tehdä ehdollisilla kommenteilla (tiedät kai?) oma tyylitiedosto, jossa laitetaan tilalle kaikesta huolimatta pelkkä inline.

Paulus M [27.09.2010 22:49:18]

#

Joo, no samapa tuo, kai riittää, että IE 7 tai 8 eteenpäin toimii. Enköhän saa noi if-lauseet aikaseksi, jos tarpeen.

Kiitos jälleen tiedosta, olet suuri apu Metabolix.

Vastaus

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

Tietoa sivustosta