div rekt niet mee

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Henk Tenk

Henk Tenk

17/08/2012 20:08:53
Quote Anchor link
Hallo,

Ik heb nu een heel raar probleem, ik hem mijn photoshop ontwerp gebased en nu is het feit dat er een border omheen moet. De content heb ik in 1 div gezet genaamd content, hierin zit dan weer meerdere divs (met het float attribuut dat roet in het eten gooit). Het probleem is dat de content div niet hoger/lager wordt (en dus de rand groter maakt. Ik zal de bijbehorende code posten

HTML:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<div id="content">
        <div class="categorie">
            <div class="categorie-top">
                Auto's
            </div>
            <div class="links">
                Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas nulla ligula, faucibus ac sodales et, porta in erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nulla nibh lectus, imperdiet gravida pharetra in, condimentum et dolor. Nam vestibulum leo quis nisi sodales nec porttitor massa mollis. Duis facilisis, libero nec ultrices placerat, ante diam tincidunt turpis, imperdiet sollicitudin velit eros non augue. Duis a lorem eu massa ultricies dapibus quis semper magna. Integer et leo id velit accumsan congue. Proin eget neque metus. Curabitur rhoncus, felis in tincidunt venenatis, arcu est dignissim ipsum, non lacinia neque sapien at mauris. Sed ullamcorper viverra ipsum id condimentum. Nulla vitae orci tortor, vel tristique quam. Morbi molestie, libero sed dictum venenatis, nunc diam tincidunt magna, nec rutrum lacus dui nec metus.
            </div>
            <div class="endlinks"></div>
        </div>
        <div class="categorie">
            <div class="categorie-top">
                Computers
            </div>
            <div class="links">
                Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas nulla ligula, faucibus ac sodales et, porta in erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nulla nibh lectus, imperdiet gravida pharetra in, condimentum et dolor. Nam vestibulum leo quis nisi sodales nec porttitor massa mollis. Duis facilisis, libero nec ultrices placerat, ante diam tincidunt turpis, imperdiet sollicitudin velit eros non augue. Duis a lorem eu massa ultricies dapibus quis semper magna. Integer et leo id velit accumsan congue. Proin eget neque metus. Curabitur rhoncus, felis in tincidunt venenatis, arcu est dignissim ipsum, non lacinia neque sapien at mauris. Sed ullamcorper viverra ipsum id condimentum. Nulla vitae orci tortor, vel tristique quam. Morbi molestie, libero sed dictum venenatis, nunc diam tincidunt magna, nec rutrum lacus dui nec metus.
            </div>
            <div class="endlinks"></div>
        </div>
        <div class="categorie">
            <div class="categorie-top">
                Reclame
            </div>
            <div class="links">
                Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas nulla ligula, faucibus ac sodales et, porta in erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nulla nibh lectus, imperdiet gravida pharetra in, condimentum et dolor. Nam vestibulum leo quis nisi sodales nec porttitor massa mollis. Duis facilisis, libero nec ultrices placerat, ante diam tincidunt turpis, imperdiet sollicitudin velit eros non augue. Duis a lorem eu massa ultricies dapibus quis semper magna. Integer et leo id velit accumsan congue. Proin eget neque metus. Curabitur rhoncus, felis in tincidunt venenatis, arcu est dignissim ipsum, non lacinia neque sapien at mauris. Sed ullamcorper viverra ipsum id condimentum. Nulla vitae orci tortor, vel tristique quam. Morbi molestie, libero sed dictum venenatis, nunc diam tincidunt magna, nec rutrum lacus dui nec metus.
            </div>
            <div class="endlinks"></div>
        </div>  
    </div>


De categorie div scaled wel mee met de lorem ipsum maar de content div scaled niet met de categorie div.

CSS:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#content{
    display: block;
    width: 768px;
    background-image: url(../img/pageborder.png);
    background-repeat: repeat-y;
    padding: 0 39px 0 39px;
}
.categorie{
    float:left;
    display:block;
    padding: 15px 35px 0 0;
    width:200px;
}
.categorie-top{
    padding: 4px 0 0 0;
    width: 200px;
    height: 28px;
    background-image: url(../img/categoriebg.png);
    background-repeat:repeat-x;
    color: #fff;
    font-size: 20px;
    font-weight: bold;
    text-align: center;
}
.links{
    width: 196px;
    padding: 3px;
    background-image:url(../img/link-border.png);
    background-repeat:repeat-y;
}
.endlinks{
    float:none;
    clear:both;
    padding: 0;
    margin: 0;
    height: 2px;
    background-image:url(../img/link-end.png);    
    background-repeat: no-repeat;
}


Hopelijk kan iemand mij helpen
 
PHP hulp

PHP hulp

24/11/2024 19:07:21
 
Wouter J

Wouter J

17/08/2012 20:10:06
Quote Anchor link
Je zou je floats moeten clearen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
#content:after {
    content: '';
    display: block;
    clear: both;
}
 
Henk Tenk

Henk Tenk

17/08/2012 20:14:20
Quote Anchor link
Dank u wel, in 1 keer goed maar toen ik even googled op css why clear floats kwam ik op een andere truc: in de content div: overflow: auto; toevoegen toch iets korter maar werkt allebei!
 
Wouter J

Wouter J

17/08/2012 20:21:30
Quote Anchor link
Henk, het is wel wat korter maar je komt op problemen als je iets out of the box wilt maken. Stel je voor dat je 1 item 10px buiten de container wilt doen, dan heb je al een probleem.
Met mijn clear fix methode is dit ook opgelost.

Als je niet begrijpt wat ik bedoel heb ik ooit een demo gemaakt: http://waldio.webatu.com/CSS/clearoroverflow.html
 
Eddy E

Eddy E

17/08/2012 20:26:21
Quote Anchor link
Even inhakend op bovenstaande CSS: waarom die
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
content: '';
?
Dat doet toch niets? Waarom is dat nodig? Nooit gezien dat je
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
clear: both;
niet zonder die content kan gebruiken...

Alleen als ik een clear:; zie, is het wel altijd met content:;.
Vraag is: waarom?
 
Henk Tenk

Henk Tenk

17/08/2012 20:28:52
Quote Anchor link
Zonder werkt het niet maar ik denk ook wel te weten waarom:
(dit is mijn suggestie/gedachte) De :after plaatst dus een stukje css/code achter de huidige inhoud van de content div, van dat stukje zet je de content van niet bestaand naar ''(wel bestaand maar niks) hier door zal de #content div verder oprekken en dus de border weergeven
 
Wouter J

Wouter J

17/08/2012 20:30:02
Quote Anchor link
Omdat een pseudo element (:after in dit geval) verplicht een content property moet hebben. Als je het zo doet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<div id=container>
   <!-- ... -->
   <div class=clear></div>
</div>

Kun je wel gewoon:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
.clear { clear: both; }

Gebruiken.

Alleen dat is niet semantisch en daarom gebruik ik altijd pseudo elements voor dit. Uitleg over pseudo elements: http://www.phphulp.nl/php/forum/topic/css-schuine-div/82882/#589542
 
Eddy E

Eddy E

17/08/2012 23:09:19
Quote Anchor link
Duidelijk. Dus alleen als er geen inhoud is, voeg je die toe. En het is een goed gebruik om dat altijd te doen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.