webForumDet fria alternativet

höjd på div-box ska anpassa sig efter innehåll

HTML & CSS

13 svar · 577 visningar · startad av Yoda

Medlem sedan nov. 2002291 inlägg
Frågan#1

Halloj!

Jag har en box1 i mitten av sidan där allting på sidan ska visas. Sen har jag en box2 längst ner av box1 där jag har foten (typ telnr och e-post). Box2/foten ska alltid ligga längst ner av box1. Box1 ska anpassa sig i höjd efter hur mycket innehåll den har.

Hur gör jag detta?

Först hade jag skrollen inne i box1 men jag vill att den ska vara i explorerfönstret som vanligt men att box1 ska anpassa höjden. Men hur får jag då foten att ligga längst ner av box1 oavsett innehåll i box1? Och vad skriver jag på height: ??

Så här ser det ut just nu:

div.container
{
	position: absolute;
	top: 91px;
	left: 130px;
	height: 448px;
	width: 620px;
	border: 1px solid black;
	background: white;	
	background-position: center center;
	background-attachment: fixed;
	padding: 10px;
	z-index: 0;
}

div.bodybackg 
{
	position: absolute;
	top: 10px;
	left: 10px;
	height: 420px;
	width: 630px;
	background: white;	
	z-index: 0;
}

div.foot
{
	position: absolute;
	top: 540px;
	left: 130px;
	height: 19px;
	width: 640px;	
	border: 1px solid black;
	background: white;
	z-index: 0;
}

Kanske behöver jag inte ha bodybackg längre eftersom jag inte ska ha skrollerna där ändå, utan sätta padding istället....

Har någon något bra tips till mig, hur jag löser detta??

Medlem sedan jan. 2003282 inlägg
#2

Om du ändrar

div.foot
{
	position: absolute;
	top: 540px;
	left: 130px;
	height: 19px;
	width: 640px;	
	border: 1px solid black;
	background: white;
	z-index: 0;
}

till

div.foot
{
	position: relative;
        margin-bottom: 10px;
	height: 19px;
	width: 640px;	
	border: 1px solid black;
	background: white;
	z-index: 0;
}

Funkar det?
Har inte testat

Mina div:ar anpassar sig alltid efter innehållet i dom
Jag sätter helt enkelt ingen höjd på dom. Man kan sätta min-height om man vill, men det tycker jag inte funkar så bra i alla läsare.

Mvh
Jan-Olov

Medlem sedan nov. 2002291 inlägg
#3

Tack, men fungerar inte...

Jag har tagit bort bodybackg helt eftersom det blev dubbelt liksom. Just nu ser det ut så här:

div.container
{
	position: absolute;
	top: 95px;
	left: 131px;
	height: 444px;
	width: 619px;
	border: 1px solid black;
	background: blue;	
	background-position: center center;
	background-attachment: fixed;
	padding: 10px;
	z-index: 0;
}

div.left
{
	position: absolute;
	top: 5px;
	left: 5px;	
	width: 380px;
	background: red;
}

div.right
{
	position: absolute;
	top: 48px;
	left: 380px;	
	width: 234px;
	background: green;
	padding: 7px;
}

div.foot
{
	position: absolute;
	top: 540px;
	left: 131px;
	height: 19px;
	width: 639px;	
	border: 1px solid black;
	background: white;
	z-index: 0;
}

<div class="container">		
    <div class="left">
    bla bla bla
        <div class="right">
        bla bla
        </div>
    </div>
</div>

Left och Right förstår att de ska anpassa höjden efter innehållet, så det fungerar bra. Men problemet är att container vet inte att den har left och right inne i sig och anpassar alltså inte alls sig... Sätter jag ingen höjd på den blir den minimini längst uppe och har jag höjd på den så är containern samma höjd oavsett innehåll.

Jag vill att containern ska vara minst 444px hög/lång och finns det mer innehåll så ska den bli längre. Hur skriver jag det? Och hur får jag den att fatta att det verkligen finns innehåll?? Jag har ju nestlat div:arna rätt tycker jag.

Hur jag sedan ska få foten att ligga allra längst nere i containern har jag inte kommit till ännu, men det är ju målet. :)

Vet någon hur jag löser det hela blir jag toppenglad? :e

Medlem sedan jan. 2003282 inlägg
#4

Öh,
så som du har skrivit nu har du right liggande i left, ska det va så?

Om du kollar på min sida, länk nedanför, så är min grå bakgrund just en sådan "container" som har en min höjd och som anpassar sig efter innehållet.
Kolla källkoden och kolla min CSS fil. CSS filen heter layout.css, den är inte den mest välskrivna skapelse som finns, men den validerade då jag gjorde den.
Designen på index-sidan finns än så länge inte på alla sidor, men på ganska många av dom.

Mvh
Jan-Olov

Medlem sedan nov. 2002291 inlägg
#5

Hm, nä, right ska vara till höger och left till vänster... Fast de ligger rätt på min skärm...

Vilken massa fakta på din sida. Då fick jag läsa lite om dykning också, KUL!! Men jag förstår inte hur jag ska kunna se din css-fil... Det enda jag vet är att klicka höger mus och "visa källa" och där ser man ju inte någon css-fil. Eller har jag missat något, hur kollar man annars källan?

Medlem sedan jan. 2003282 inlägg
#6

Nä, min CSS fil ligger i temporary internet files katalogen :)

Mvh
Jan-Olov

Medlem sedan nov. 2002291 inlägg
#7

Nu har jag tagit bort

position: absolute;

i left och då förstod containern att den innehöll left och anpassar storleken efter innehållet. Men jag får fortfarande ingen skroller ute vid sidan av browsern och jag förstår inte varför...jag har väl inte tagit bort den??

Någon som vet vad som är fel, varför får jag ingen skroller i browsern tro?

Medlem sedan jan. 2003282 inlägg
#8

Hur ser hela din CSS och övrig kod ut?
I frames kan man ju stänga av scrollern, går kanske med CSS ev nått script.

Mvh
Jan-Olov

Medlem sedan feb. 2003774 inlägg
#9

Posta hela koden tack (minimerad om möjligt)

Medlem sedan juni 2003771 inlägg
#10

Denna länk som anropar css finns ju på sidan

<LINK REL="stylesheet" HREF="lank/layout.css">

Då är det bara att lägga till lank/layout.css efter adressen så ser man filen

http://www.savhammar.net/lank/layout.css

Medlem sedan jan. 2003282 inlägg
#11

När du tittar på min sida så hamnar css-filen i temporary internet files.
Har aldrig tänkt på att att det går att visa css-filen "live"

Mvh
Jan-Olov

Medlem sedan nov. 2002291 inlägg
#12

koden

Okej, här kommer koden som är relevant till det problem jag har. Adressen till sidan är www.sfcenter.se. Just nu ser sidan kajko ut med färgerna eftersom jag ska veta var alla boxar befinner sig.

Skrollern saknas alltså på sidan när texten går nedanför fönstret. Och så foten ska hänga med ner när containern växer i längd....

Tror ni att ni kan lösa det till mig? :l

Medlem sedan jan. 2003282 inlägg
#13

Din div.back kan du ta bort och lägga bakgrundsfärgen här istället

html, body
{
	margin: 0;
	padding: 0;
	height: 100%;
	overflow: auto;
	background: #CB1D52;
	font: 11px/1.5em verdana, sans-serif;
	color: black;
}

Där ser du också att jag har ändrat overflow-y: hidden;
till overflow:auto; så nu fungerar scrollern igen.
Jag har däremot inte fått din footer till botten på sidan ännu, men det ska väll gå det med.

Mvh
Jan-Olov

Fortsätter på mitt inlägg...

Footern får jag nu i botten på din container, problemet är att den ärver alla variabler från den så bakgrunden blir fel och texten är svart, har ingen lösning på det ännu

din div.foot har jag gjort så här med

div.container foot
{
	position: absolute;
	margin-top: 10px;
	margin-bottom: 10px;
	height: 19px;
	width: 639px;
	border: 1px solid black;
	background: #25a6cd;
	color: white;
	z-index: 10;
}

Och din foot.php

</div>
		
		<div class="clear"></div>
		<div class="foot">
			
				Scandinavian Fitness Center&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;Tel: 0457-10606&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;
				<a href="mailto:info@sfcenter.se">info@sfcenter.se</href></a>
			

		</div>

	</div>

		</body>

	</html>

Jag har även försökt att lägga in en clear för att rensa värdena från container innan div.container foot används, men det funkar inte.

div.clear	
{
	clear: both;
	background: #25a6cd;
	color: white;
	font-size: 0px;
	margin: 0px;
	padding: 0px;
}

Jag kan inte hjälpa dig mer än såhär, nu får ett proffs som exempelvis mikkeX ta över :)

Mvh
Jan-Olov

Medlem sedan nov. 2002291 inlägg
#14

TACK!!

Men, tusen tack!! Du är ju en klippa!! Vad snällt av dig att ta dig tid och kolla på det. Jag ska testa dina förslag genast.

264 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)