Avatar billede oldnick Nybegynder
09. juni 2006 - 19:04 Der er 10 kommentarer og
1 løsning

Horizontalet design. uden at bruge absolut position.

Hej Eksperterne!

Jeg er igang med at lave en site hvor det hele skal være horisontalt. Jeg har en fast høje og bredden skal være dynamisk, dvs. at den skal tilpasse sig indholdet. Jeg har rodet float:left; men det virker desværre ikke.

Jeg har lavet et par eksempler:

Her er hvordan det skal være (men lavet med absolut position) http://oldnick.dk/test_horizontal_design.php

Her er filen med float:
http://oldnick.dk/test_horizontal.php

Jeg har lavet css'en inline, så den kan ses i koden.

Alt indholde skal trækkes fra db, med php. men det har jeg styr på :)

Håber i kan hjælpe.. / Mads
Avatar billede mclemens Nybegynder
09. juni 2006 - 23:00 #1
#wrapper {
    height: 400px;width:1570px;
    border:    #990000 1px solid;
}

... hvis nu du ved hvor brede din text felter skal være - kan du så ikke definere width på wrapperen så det hele udvider sig, så der er plads til det indre indhold?
Avatar billede oldnick Nybegynder
10. juni 2006 - 11:35 #2
Tak for svart, men det som der er at jeg ikke ved hvor mange felter der er. Det er afhænigt af hvor mange felter der er i min db. Derfor kan jeg ikke sætte width på wrapperen på forhånd. Jeg er ude i en løsning, hvor jeg laver noget php som regner ud hvor mange felter der er i db'en og derefter udregner hvor bred wrapperen skal være...
Avatar billede mclemens Nybegynder
10. juni 2006 - 12:35 #3
Her er et javascript ...
- men det er jo ikke helt ideelt at basere sitets fremvisning på javascript,
hvis siden skal være tilgængelig selvom brugeren har deaktiveret det...

<script type="text/javascript">
window.onload=function(){
tmp=document.getElementById("wrapper").childNodes;
a=0;for(i=0;i<tmp.length;i++){t=tmp[i].offsetWidth;if(t!=undefined)a+=t+20;}
document.getElementById("wrapper").style.width=a+10+"px";
}
</script>
Avatar billede oldnick Nybegynder
10. juni 2006 - 13:45 #4
Tak for det. Men jeg har lige fået det til at virke ved at bruge php og mysql. Her er hvordan jeg har lavet det.

PHP:

<?php
include_once 'db.inc.php';
$result = @mysql_query('SELECT * FROM test');
if(!$result) {
exit('<p>Error preforming query:' . mysql_error() . '</p>');
}
$div_width = mysql_num_fields($result)*250+200; // Antalet af fields i tabelen test ganges med bredden på de div som wrapperen indholder + 200 ekstra px.
?>
<div id="wrapper" style="width:<?php echo "$div_width" ?>px">Her er selvfølgelig loadet x antal felter fra db'en..de er alle sammen omsluttet af en div som har en bredde på 250px. der ud over har de float:left.</div>

Jeg ved ikke om det giver mening, men det virker og er dynamisk.

Tak for hjælpen, alle sammen.
Avatar billede mclemens Nybegynder
10. juni 2006 - 16:23 #5
[ Jeg ved ikke om det giver mening, men det virker og er dynamisk. ]
- Joh, det giver fin mening da du tæller antal felter med tekst op
og sætter width på wrapper div'en udfra det udregnede width tal :)
Avatar billede oldnick Nybegynder
11. juni 2006 - 00:11 #6
:) Smid et svar så skal du få nogle point...
Avatar billede mclemens Nybegynder
11. juni 2006 - 00:31 #7
ok :) ... behold lidt selv,
du valgte jo en anden løsning ;)
Avatar billede oldnick Nybegynder
11. juni 2006 - 00:39 #8
Det går nok.. jeg ved ikke hvordan man kan lave om på det. :)
Avatar billede mclemens Nybegynder
11. juni 2006 - 00:45 #9
Ok, men tak for point så :)
En anden gang kaster du bare selv et
svar og fordeler så point som du synes ;)
Avatar billede oldnick Nybegynder
11. juni 2006 - 00:46 #10
ok, tak.. slut ;)
Avatar billede oldnick Nybegynder
15. juli 2006 - 12:42 #11
Lille rettelse:

$div_width = mysql_num_fields($result)*250+200;

Skal være:

$div_width = mysql_num_rows($result)*250+200;

Ellers tæller den ikke rigtigt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester