webForumDet fria alternativet
Logga in / Bli medlem

float-problem

HTML & CSS

9 svar · 258 visningar · startad av Peeer

Medlem sedan mars 20025 907 inlägg
Trådstart#1

Hej!
Jag har en div (main) som innehåller två andra divar (left och right). Ingen av divarna har någon fast höjd. Mina frågor är:

  1. Hur gör jag för att left (som förövrigt är 150px bred) ska ligga till vänster om right?
  2. Om left är längre än right (och därmed tänjer ut main) så vill jag att den ska få en scroll istället för att tänja.

Tpfh!

Medlem sedan aug. 20051 448 inlägg
#2

som svar på båda frågorna
i cssen

#left {
float:left;
widht:150px;
height:410px;
overflow:auto;
}
#right {
float:right;
}
.clr {
clear:both;
}

i html

<div id="main">
<div id="left">
lorem ipsum dolor sit amet</div
<div id="right">
dolero dolera dolor color </div>
<div class="clr"> </div>
</div>

Medlem sedan mars 20025 907 inlägg
#3

Nja, jag vill inte ha någon fast höjd på left. Den ska vara lika hög som right och får inte allt plats så ska det dyka upp en scroll. Men tack ändå :)

Medlem sedan aug. 20051 448 inlägg
#4

jag tror vi missuppfattade varandra nu... var det main som skulle få scroll istället för att tänjas? isåfall sätter du bara en fast höjd på den och overflow:auto.

Medlem sedan mars 20025 907 inlägg
#5

Nej, main & right ska aldrig ha någon scroll. Main kommer alltid vara lite längre än right (right ligger i main). Left ska även den vara lika lång som right. Har left innehåll som inte får plats så ska left få en scroll.

Medlem sedan aug. 20051 448 inlägg
#6

isåfall har jag ingen lösning för det är först när man sätter en fast höjd som man kan sätta en scroll (som jag uppfattat det)

Medlem sedan dec. 20042 245 inlägg
#7
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<html>
 <head>
  <title>001</title>
  <style type="text/css">
   #main { position:relative; border:solid; }
   #left { position:absolute; top:0; left:0; width:150px; height:100%; overflow:auto; background:lime; }
   #right { padding-left:150px; background:yellow; }
  </style>
 </head>
 <body>
  <div id="main">
   <div id="left"> foo <br> bar </div>
   <div id="right"> baz </div>
  </div>
 </body>
</html>

Nu verkar det här bara fungera i Firefox, samt Firefox visar inte någon scrollningslist...

Medlem sedan dec. 20042 245 inlägg
#8

Anledningen till att Firefox inte visade någon scroll var att det inte fick plats med någon! Ökar man line-height (eller innehållet) så kommer det fram en scroll när den behövs.

Nedan har jag fått det att fungera i IE5.5 och IE6 också.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<html>
 <head>
  <title>002</title>
  <style type="text/css">
   #main { position:relative; border:solid; line-height:10; }
   #left { position:absolute; top:0; left:0; width:150px; max-height:100%; overflow:auto; background:lime; }
   #right { margin-left:150px; background:yellow; }
  </style>
  <!--[if gte IE 5.5]>
   <style type="text/css">
    #main { zoom:1; /* hasLayout */ }
   </style>
   <script type="text/javascript">
    window.attachEvent("onload", function() {
     var left = document.getElementById("left");
     var mainHeight = document.getElementById("main").clientHeight;
     left.style.height = mainHeight > left.clientHeight ? "auto" : mainHeight + "px";
    });
   </script>
  <![endif]-->
 </head>
 <body>
  <div id="main">
   <div id="left"> foo <br> bar </div>
   <div id="right"> baz </div>
  </div>
 </body>
</html>

Hoppas det är till nån hjälp. :)

Medlem sedan mars 20025 907 inlägg
#9

Ska kolla på det där i kväll, hoppas det fungerar :)

Tack så länge iaf :)

/r Det finns inget sätt att lösa det här utan javascript?!

Medlem sedan dec. 20042 245 inlägg
#10

Fråga Microsoft. ;)

261 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)