webForumDet fria alternativet

Sprida ut div'ar

HTML & CSSur HTML, XHTML & CSS

8 svar · 578 visningar · startad av learn

Medlem sedan jan. 20051 130 inlägg
Frågan#1

Jag har 3st divar med fast width.

Nu vill jag att en av dem skall ligga längst till vänster, en i mitten och den sista längst till höger. Avståndet mellan den mittersta och den vänstra och högra skall alltså vara lika.

Hur gör jag? Att få en längst till vänster och en till höger är ju lätt (float: left och float:right), men hur gör jag för att en skall ligga i mitten??
:q

Medlem sedan juni 2003771 inlägg
#2

Blir detta bra tro?

<html>
<head>
<style type="text/css">
<!--
body {background-color:green; color:yellow;}
#vänster{width:200px; height:200px;float:left;background-color:blue;}
#mitt {width:250px; height:250px; position:absolute; left:50%; margin-left:-125px;background-color:blue;
}
#höger{ width:200px; height:200px;float:right;background-color:blue;}
-->
</style>
</head> 
<body >
<div id=vänster></div>
<div id=mitt></div>
<div id=höger></div>
</body>
</html>
Medlem sedan mars 2005149 inlägg
#3

EDIT: Trot i huvudet.

Medlem sedan jan. 20051 130 inlägg
#4

Nja, inte riktigt.

De 3 div'arna ligger nämligen i en annan div och jag vill därför inte att mitten-div'en skall hamna i mitten av webbläsar-fönstret vilket den gör med din kod... Sorry att jag inte nämnde "skal-diven"... :)

Medlem sedan nov. 20051 596 inlägg
#5

Så här då?

#vänster{width:200px; height:200px;float:left;background-color:blue;}
#mitt {width:650px; height:250px; position:absolute; margin-left:200px; margin-right:200px; background-color:blue;}
#höger{ width:200px; height:200px;float:right;background-color:blue;}
<div id=mitt>
<div id=vänster></div>
<div id=höger></div></div>
Medlem sedan apr. 2006409 inlägg
#6

går det inte att fixa med: position: absolute; "rätt antal" px; och sätte fast boxarna helt enkelt?

Medlem sedan juni 2003771 inlägg
#7

Bygger vidare på tantens exempel.

<html>
<head>
<style type="text/css">
#stor {width:750px; height:250px; position:absolute; margin-left:20px; margin-right:10px;background-color:gray;border:1px solid black;}
#vänster{width:200px; height:200px;float:left;background-color:blue;}
#mitt{width:200px; height:200px;float:left;margin-left:75px;background-color:blue;}
#höger{ width:200px; height:200px;float:right;background-color:blue;}
</style>
</head> 
<body>
<div id=stor>
<div id=vänster></div>
<div id=mitt></div>
<div id=höger></div>
</div>
</body>
</html>
Medlem sedan juli 20013 378 inlägg
#8

Hmm...
Om du har fast bredd på "containern" kan du göra float:left på dem alla tre och jobba med padding/margin för att påverka avståndet mellan dem ;)

Exempel:http://www.alistapart.com/articles/holygrail/

Medlem sedan okt. 2005541 inlägg
#9

Det här fungerar så att man anger fast bredd på vänster och höger div, men ingen bredd eller float på mitten div'en. Mitten tar då upp allt övrigt tillgängligt utrymme som aktuellt webbläsarfönster har, samt lägger sig förstås mellan "sidodivarna".

Vill man inte att mitten ska kunna bli hur bred som helst i högupplösta skärmar, kan man förstås "bädda in" dessa tre div'ar i en container div med max-width och/eller andra trix :) Men det är nog inte så vanligt att folk med högupplösta skärmar (1200px på bredden och mera) använder hela skärmens yta för webbläsaren?

<html>
<head>
<style type="text/css">
#vänster{width:200px; height:100%; float:left;border:1px solid #000;}
#mitt{ height:100%; margin-left:210px;margin-right:210px;border:1px solid #000;}
#höger{width:200px; height:100%; float:right;border:1px solid #000;}
</style>
</head>
<body>
<div id=vänster>Vänster</div>
<div id=höger>Höger</div>
<div id=mitt>Mitten</div>
</body>
</html>

133 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)