[OPGELOST] probleempje met CSS opmaak

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

J opla

j opla

10/04/2016 22:51:22
Quote Anchor link
Hoi,

Ik weet niet of mijn vraag hier thuis hoort, maar wellicht kan iemand me op weg helpen.

Ik heb een stukje css code en ik kan er maar niet uit komen waarom er een bepaalde ruimte zit tussen twee elementen.

stukje html5
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<header>
  <nav>    
    <ul>
... etc ...
    </ul>
  </nav>
</header>


de bijbehorende css opmaak is:
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
header{
    position: relative;
    border-bottom: 1px solid orange;
    margin: 0;
    padding: 0;
    margin-bottom: 5px;
    text-transform: uppercase;
    font-size: 10px;
    }
header nav{
    display: inline-block;
//    margin-bottom: -2px;
    width: 100%;
    padding: 0;
    }
header nav ul{
    list-style: none;
    margin-left: -8px;
    padding-left: 8px;
    }


Nu zou ik denken dat het nav-block dezelfde hoogte zou hebben als het header-block. Maar helaas, daar blijkt een paar px verschil in te zitten.

Het header-block blijkt de (binnen) afmeting van 965x19 te hebben, de nav 965x16. En het verschil zit in de onderkant. Nu kan ik dat wel oplossen met een margin-bottom:-3px; maar dat vindt ik niet echt een mooie oplossing. Zekern niet omdat in niet weet waar het verschil door wordt veroorzaakt.


Heeft iemand enig idee waarom?

Toevoeging op 11/04/2016 15:15:53:

48 gluurders maar helaas nog geen enkele reactie ;)
Gewijzigd op 12/04/2016 16:37:25 door J opla
 
PHP hulp

PHP hulp

18/12/2024 22:02:22
 
Jan de Laet

Jan de Laet

11/04/2016 15:33:59
Quote Anchor link
is dit een valide manier om comments te maken?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
//    margin-bottom: -2px;


Ik gebruik zelf altijd /* .. */
 
J opla

j opla

11/04/2016 15:37:29
Quote Anchor link
@Jan
Inderdaad, je hebt helemaal gelijk, maar dit is bij het testen sneller en Firefox slikt het. Maar het is het probleem niet. Ook zonder de // heb ik de genoemde ruimte.
 
Randy vsf

Randy vsf

11/04/2016 16:03:02
Quote Anchor link
Als je in de browser op F12 duwt krijg je de developer tools.
Daar zit een inspector bij, daarmee kan je over elementen heen gaan, ze selecteren en de paddings, margins en overige css properties bekijken.
 
J opla

j opla

11/04/2016 16:09:07
Quote Anchor link
en dan zie ik dat de header 19 hoog is zonder, paddings 0 en de nav is 16 hoog. maar niets waarom er 3 px verschil in zit.
Gewijzigd op 11/04/2016 16:33:51 door j opla
 
Randy vsf

Randy vsf

11/04/2016 16:18:12
Quote Anchor link
Ik zie je verdere code niet, maar een unordered list heeft zelf ook styling, ook de list items.
 
J opla

j opla

11/04/2016 16:34:45
Quote Anchor link
@Randy
Wat zou je willen zien dat invloed kan hebben?
 
Randy vsf

Randy vsf

11/04/2016 16:58:59
Quote Anchor link
In je header staat iets van content, wat dit veroorzaakt.
Maak er anders eens een fiddle van.
 
J opla

j opla

11/04/2016 20:25:46
Quote Anchor link
@Randy
Ik snap niet helemaal wat de bedoeling is van dat fiddle, maar als je de totale code wilt inzien, stuur me dan een pm dan stuur ik je de 2 bestanden wel.
 
Jan de Laet

Jan de Laet

11/04/2016 20:30:58
Quote Anchor link
@J, Randy bedoelt: sla de (relevante) code eens op bij JSFIDDLE, dan kunnen we allemaal meekijken. En eventueel helpen.
 
J opla

j opla

11/04/2016 20:43:49
 
Jan de Laet

Jan de Laet

11/04/2016 21:53:24
Quote Anchor link
Heb ernaar gekeken en het gekke is dat als ik deze source gebruik (zie hieronder) header en nav dezelfde hoogte krijgen berekend (met uitzondering van de 1px bottom border van header). Geen idee nog aar het hem in zit.
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
<html><head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <meta name="robots" content="noindex, nofollow">
  <meta name="googlebot" content="noindex, nofollow">
  <link rel="stylesheet" type="text/css" href="/css/result-light.css">

  <style type="text/css">
    /* -----------------------------------------------------------
 algemeen
----------------------------------------------------------- */

body {
    color: orange;
    font-family: verdana, sans-serif;
    font-size: 1em;
    background-color: #1A1A1A;
    padding: 0;
    margin: 0;
    }
div {
    margin: 0;
    padding: 0;
    }
a {
    color: orange;
    text-decoration: none;
/*    font-size: 1em;*/
    }
a:hover, a:focus {
/*    font-weight: bold;*/
    }

a:active {
/*    font-size: 100%;*/
    }
ul{
    margin: 0;
    padding: 0;
    list-style: none;
    }    
li{
    margin: 0;
    padding: 0;}    
h1{
    font-size: 1.8em;
    line-height: 1.2em;
    text-align: center;
    letter-spacing: 0.35em;
    }
h2{
    font-size: 1.2em;
    }
h3{
    font-size: 1.2em;
    text-align: center;}
img{
    border-style: none;
    border-width: 0;
    }

#box{
    width: 965px;
}

@media screen and (min-width:965px) and (min-height:650px){
#box{
    margin: 0;
    padding: 0;
/*    width: 965px;*/
/*    height: 638px;*/
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
/*    margin: -319px 0 0 -483px;*/
/*    outline: 1px red solid;*/
    }
}

/*
+----------------------------------------------------------
| HOOFDNAVIGATIEMENU
+----------------------------------------------------------
*/

header{
    position: relative;
    border-bottom: 1px solid orange;
    margin: 0;
    padding: 0;
    margin-bottom: 5px;
    text-transform: uppercase;
    font-size: 10px;
    }
header nav{
    display: inline-block;
/*    margin-bottom: -3px;*/
    width: 100%;
    padding: 0;
    }
header nav ul{
    list-style: none;
    margin-left: -8px;
    padding-left: 8px;
    }
header nav li{
    float: left;
    position: relative;
    bottom: 0;
    }
header nav li.taal{
    float: right;
    }    
header nav li a {
    display: block;
    bottom: 0;
    padding: 0 15px 0 0;    
    }
header nav li.taal a{
    padding: 0 0 0 15px;
    }    
header nav li.huidig a {
    font-weight: bold;
    border-bottom: 3px solid orange;
    padding-right: 13px;
    margin-right: 2px;
//    margin-bottom: -1px;
    }
header nav li a:hover {
    color: red;
    }

  </style>

  <title></title>
  
</head>

<body>
      <header>
        <nav>    
            <ul>
                <li class="huidig">
                    <a href="#">THUIS</a>
                </li>
                <li>
                    <a href="#">GENEALOGIE</a>
                </li>
                <li>
                    <a href="#">MEGALIETEN</a>
                </li>
                <li>
                    <a href="#">COLUMNS</a>
                </li>
                <li>
                    <a href="#">PRIVE</a>
                </li>
                <li>
                    <a href="#">CONTACT</a>
                </li>
                <li class="taal">
                    <span title="Pools"><a lang="pl" href="https://translate.google.nl/translate?hl=nl&amp;sl=nl&amp;tl=pl&amp;u=">pl</a></span>
                </li>
                <li class="taal">
                    <span title="Engels"><a lang="en" href="https://translate.google.nl/translate?hl=nl&amp;sl=nl&amp;tl=en&amp;u=">en</a></span>
                </li>
            </ul>
        
        </nav>
    </header>
  
</body>
</html>
Gewijzigd op 11/04/2016 21:54:55 door Jan de Laet
 
Thomas van den Heuvel

Thomas van den Heuvel

11/04/2016 23:37:42
Quote Anchor link
Al geprobeerd de list items vacuum te verpakken? dus <li><a ...>...</a></li> zonder spaties en/of regelovergangen?
 
J opla

j opla

12/04/2016 12:59:56
Quote Anchor link
@Jan
Ja, zo gaat het wel goed.

@Allen:
Ik denk dat ik de oorzaak heb gevonden, maar nu de oplossing nog. Als ik in het document van Jan
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<!DOCTYPE html>

toevoeg dan krijg je ook weer het verschil tussen de afmeting van de <nav> en de <header>.

Maar om correct html5 te schrijven moet je volgens mij met de <!DOCTYPE html> beginnen. Is dit een bug?

toevoeging: als je in fiddle voor een HTML4.01 Transitional kiest, dan verdwijnt ook de marge van 3 px
Gewijzigd op 12/04/2016 13:15:36 door j opla
 
Jan de Laet

Jan de Laet

12/04/2016 13:19:53
Quote Anchor link
Kun je niet zonder <header> om je <nav>?

Dan moet je wel een paar CSS regels van <header> verplaatsen naar <nav>, zoals border en font-size.
Dan werkt het volgens mij ook met je DOCTYPE declaratie.
 
J opla

j opla

12/04/2016 13:40:04
Quote Anchor link
@Jan
Ik snap niet helemaal wat je bedoelt.
 
Jan de Laet

Jan de Laet

12/04/2016 13:43:18
Quote Anchor link
Ik bedoel dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<body>
        <nav>    
            <ul>
                <li class="huidig">
                    <a href="#">THUIS</a>
                </li>
                <li>
...

Dus header heb ik hier verwijderd.
In je CSS moet je een aantal keer "header nav" vervangen door "nav" en een paar CSS regels van header naar nav verplaatsen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
nav{
    display: inline-block;
    font-size: 10px;
    border-bottom: 1px solid orange;
    width: 100%;
    padding: 0;
    }
 
J opla

j opla

12/04/2016 13:44:35
Quote Anchor link
Dan blijft er een verschil van 3px tussen de nav en de header ...

De header box is 24 px hoog, de nav is 15+1+5=21 px. Of wil je dat ik de hele header weg haal, maar dan schrijf je eigenlijk geen goede code heb ik begrepen ...
Gewijzigd op 12/04/2016 13:50:42 door j opla
 
Jan de Laet

Jan de Laet

12/04/2016 13:52:11
Quote Anchor link
In mijn oplossing is er geen header meer....
nav hoeft niet perse in header volgens mij.

Hier de hele body:
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
<body>
        <nav>    
            <ul>
                <li class="huidig">
                    <a href="#">THUIS</a>
                </li>
                <li>
                    <a href="#">GENEALOGIE</a>
                </li>
                <li>
                    <a href="#">MEGALIETEN</a>
                </li>
                <li>
                    <a href="#">COLUMNS</a>
                </li>
                <li>
                    <a href="#">PRIVE</a>
                </li>
                <li>
                    <a href="#">CONTACT</a>
                </li>
                <li class="taal">
                    <span title="Pools"><a lang="pl" href="https://translate.google.nl/translate?hl=nl&amp;sl=nl&amp;tl=pl&amp;u=">pl</a></span>
                </li>
                <li class="taal">
                    <span title="Engels"><a lang="en" href="https://translate.google.nl/translate?hl=nl&amp;sl=nl&amp;tl=en&amp;u=">en</a></span>
                </li>
            </ul>
        
        </nav>
  
</body>
Gewijzigd op 12/04/2016 13:54:22 door Jan de Laet
 
J opla

j opla

12/04/2016 13:59:52
Quote Anchor link
Dan blijk ik heel wat CSS code te moeten herschrijven. Dan kan ik net zo goed de nav {margin-bottom: -3px;} zetten, dat is een stuk minder werk en je houdt een betere HTML5 code over.

De vraag was eigenlijk ook: hoe komt die 3 px verschil. Het lijkt een beetje op een bug in de HTML5 code interpretatie want als ik voor HTML4.01 Trans kies dan interpreteert de browser het wel zoals ik verwacht. Of zie ik iets anders over het hoofd?
 
Jan de Laet

Jan de Laet

12/04/2016 14:05:27
Quote Anchor link
Ik weet ook niet waar dit verschil door komt. Ik heb nog even gegoogled maar kon zo snel geen antwoord vinden. Maar ben ook geen echte HTML5 expert.

Wat je allemaal in CSS moet veranderen kan ik natuurlijk niet overzien, maar voor zover je voorbeeld gaat hoef je alleen "header nav" regels te vervangen door "nav". En dat kan met een goede editor heel snel.


Toevoeging op 12/04/2016 14:08:28:

Ik zie nu dat je eventueel ook alles kunt laten zoals het was, maar de volgende regel in CSS van header naar nav verplaatsen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
    border-bottom: 1px solid orange;
 

Pagina: 1 2 volgende »



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.