Avatar billede thadoews Nybegynder
30. januar 2013 - 15:53 Der er 5 kommentarer og
1 løsning

Problemer med placering af indhold med div og css

Hej eksperter!

Jeg har været i gang med et meget simplere design til min hjemmeside, men noget er gået galt og jeg ved ikke hvad!

Min opbygning er såre simpel. Jeg bruger includes til det som er ens på alle sider såsom menuen, banner, bunden osv. Disse er placeret via min standardopsætning som er ens på hver side, altså det er kun indholdet i disse divs der er includes.

Jeg bruger divs til en "container" som er hele siden minus baggrund. I den er er som sagt en top, menu, venstre side, højre side, bund og et indholdsområde. Faktisk er kun indholdsområdet forskelligt fra side til side.

Via min standardopsætning burde alting sådan set se meget ens ud, det gør det imidlertid ikke:

Ønskede resultat:
http://www.simonhollander.dk/flerepersoner.shtml
http://www.simonhollander.dk/maskinlinks.shtml

Det dårlige resultat:
http://www.simonhollander.dk/person_rix.shtml
http://www.simonhollander.dk/

Min opsætning:

<div class="container">
<!--#include virtual="includes/top.html"-->
<!--#include virtual="includes/menu.html"-->
<div class="lefty">
<!--#include virtual="includes/lefty.html"-->
</div>
<div class="commercial">
<!--#include virtual="includes/commercial.html"-->
</div>
<div class="content1">

</div>
<!--#include virtual="includes/bottom.html"-->
</div>


Hvad jeg ikke forstår er hvorfor det ikke vil virke på de fleste sider?
30. januar 2013 - 16:32 #1
Jeg går ud fra, at forskellen på et ønsket og et dårligt resultat er, at på et dårligt resultat sidder content div'en nedenunder i stedet for til venstre for commercial div'en.  Årsagen er, at commercial div'en ved de dårlige resultater er for bred til at kunne sidde ved siden af commercial div'en.  Er du opmærksom på, at du i content div'en bruger en margin på 200 px til venstre og højre?  Prøv at erstatte margin-left:200px og margin-right:200px med margin-left:auto og margin-right:auto.  Ikke alene vil det formodenligt placere content div'en til venstre for commercial div'en, den vil også placere indholdet centralt i content div'en.
Avatar billede thadoews Nybegynder
30. januar 2013 - 17:09 #2
Det er egentligt en div-opsætning jeg har lånt fra en template og der virker det. Jeg har således brugt de samme indstillinger derfra, dog med et andet resultat...

Jeg har prøvet det du skriver og det synes ikke rigtigt at virke. Som du kan se har jeg ikke noget indhold i min "lefty" endnu og ved at sætte marginerne til auto vil det bare sætte alt indhold i "content1" helt til venstre, men stadig under min "commercial".

Jeg er blevet gjort opmærksom på at de steder, hvor det er galt er de steder, hvor teksten er længere end bredden på div'en. Der har jeg forsøgt med wraps:

white-space: pre-wrap;      /* CSS3 */ 
white-space: -moz-pre-wrap; /* Firefox */   
white-space: -pre-wrap;    /* Opera <7 */ 
white-space: -o-pre-wrap;  /* Opera 7 */   
word-wrap: break-word;      /* IE */


Det synes imidlertid heller ikke at løse problemet.

Jeg har også forsøgt at indsætte dette i de tre elementers CSS:
display:inline-block;
Avatar billede thadoews Nybegynder
30. januar 2013 - 17:22 #3
Jeg har genoprettet hjemmesiden og har lavet en testside:
http://simonhollander.dk/test.shtml
Avatar billede thadoews Nybegynder
30. januar 2013 - 19:35 #4
Nu har jeg næsten løst problemet:
http://simonhollander.dk/test/test.shtml

Der er bare ét problem! Jeg har sgu fået en scroller i min container-div?! Når det er løst, ligger jeg løsningen op, som Christian ledte mig på sporet af :) Det er lidt nemmere bare at lave en width:auto :)
Avatar billede thadoews Nybegynder
30. januar 2013 - 20:54 #5
Jeg endte med selv at løse problemet. Dette kode har to divs med fast størrelse og én varierende.

Her er koden, da jeg sikkert ikke er den eneste der ender med det her problem.

I det her stykke kode går venstre og højre side næsten helt til bunds(90%), men det er vigtigt at højden for containeren, body og html sættes til 100%! Dette er blandt andet for at bunden af siden ikke ender midt oppe på skærmen på en side med meget lidt indhold.
Jeg råder til at siderne ikke gøres længere end 90% da det så måske kan gå ud over det man har i bunden.

Det er vigtigt at siderne, højre og venstre-div, kommer FØR content-feltet!

Grunden til at jeg bruger min-height til højden på min body, er at ellers vil baggrundsfarven stoppe midt på siden. Med min-height vil den derfor nu gå ud over de 100% ved f.eks. lange sider.

Koden kan kopieres direkte ind i progam og bruges...

<html>
<head>
    <title>Untitled</title>
</head>
<style type="text/css">
html
{
    height: 100%;
}
/*=============== Body ============*/
body {
    font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif;
    margin: 0;
    padding: 0;
    background-color: #FFFFFF;
    min-height: 100%;
    width: 100%;
}

/*=============== Container ============*/
.container
{
    width: 98%;
    margin: 5px auto 5px auto;
    padding: 2px;
    background-color: #F5F5F5;
    height: 100%;
}

/*=============== Indhold1 ============*/
.content1
{
    width: auto;
    background-color: #556677;
    float: none;
    margin:auto 5px 5px 5px;
    padding:5px 5px 5px 5px;
}

/*=============== Indhold2 ============*/
.content2
{
    width:auto;
    float:none;
    text-align:justify;
    margin:auto 5px 5px 5px;
    padding:5px 5px 5px 5px;
    background:#666666;
}

/*=============== Højre/reklame ============*/
.commercial
{
    width:200px;
    height:90%;
    float:right;
    border: 2px solid #242F24;
    margin: auto 5px 5px 5px;
    padding:5px 5px 5px 5px;
}

/*=============== Venstre ============*/
.lefty
{
    width:150px;
    height:90%;
    float:left;
    border: 2px solid #242F24;
    margin:auto 5px 5px 5px;
    padding:5px 5px 5px 5px;
}

/*=============== Footer ============*/
.footer
{
    width:95%;
    border-top: 2px solid #242F24;
    clear: both;
    margin: auto;
    padding: 5px;
    background-color: inherit;
    text-align: center;
    bottom:0;
}
</style>

<body>
<div align="center">
Her kan indsættes et banner og en menu
</div>

<div class="container">
<div class="lefty">
Venstre side<br><br>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed quis sem.
Curabitur semper, libero at tincidunt dictum, justo dolor blandit massa, sit amet condimentum ligula metus id lacus. In eros felis, varius et, ultricies quis, vulputate vel, ipsum. Aliquam nisi elit, sagittis eget, lacinia in, gravida quis, arcu. Vestibulum molestie fermentum pede.
Nam nonummy eros et libero. Integer lorem erat, pulvinar id, pretium eu, tristique adipiscing, odio. Praesent eget nunc. Nunc eleifend ultrices pede. Aliquam velit tellus,    auctor quis, euismod sit amet, pharetra in, augue. Sed accumsan laoreet
</div>
<div class="commercial">
Højre side<br><br>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed quis sem.
Curabitur semper, libero at tincidunt dictum, justo dolor blandit massa, sit amet condimentum ligula metus id lacus. In eros felis, varius et, ultricies quis, vulputate vel, ipsum. Aliquam nisi elit, sagittis eget, lacinia in, gravida quis, arcu. Vestibulum molestie fermentum pede.
Nam nonummy eros et libero. Integer lorem erat, pulvinar id, pretium eu, tristique adipiscing, odio. Praesent eget nunc. Nunc eleifend ultrices pede. Aliquam velit tellus,    auctor quis, euismod sit amet, pharetra in, augue. Sed accumsan laoreet
</div>

<div class="content1">
Her er sidens indhold. Det er muligt at lave to(eller flere) div's ovenpå hinanden herinde, så længe de har de samme egenskaber: float:none !
</div>
<div class="content2">
F.eks. lige som det her! Baggrundsfarven kan sættes til "inherit", så den arver containerens farve.
</div>

<div class="footer">
Her findes der en bund
</div>
</div>

</body>
</html>

30. januar 2013 - 21:13 #6
Jamen til lykke med resultatet.
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