J'ai le code suivant:
Partie CSS:
<style type="text/css">
.menu
{
width:200px;
}
.menu ul
{
list-style-image:none;
list-style-type:none;
}
.menu li
{
margin:2px;
}
.menu A
{
height:25px;
width:170px;
background:url(./images/button-51.png);
padding:2px 5px ;
}
.menu A:link
{
height:25px;
width:170px;
background:url(./images/button-51.png);
padding:2px 5px ;
}
</style>
Partie HTML:
Tout fonctionne bien, mais lorsque j'ajoute l'élément 'DOCTYPE' au début du document HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
la largeur de l'élément 'a' n'est pas prise en compte.
Question 1: Pourquoi?
Question 2: Comment résoudre ce problème?
Merci beaucoup!
Question 1: pourquoi?
Parce que ce n'est pas un élément block par défaut.
Question 2: Comment résoudre ce problème?
Faites-en un élément de bloc en utilisant display: block;
ou un bloc en ligne par display: inline-block;
.
faire un bloc pour la balise d'ancrage ajouter display:block
dans le style
.menu a
{
display:block;
height:25px;
width:170px;
background:url(./images/button-51.png);
padding:2px 5px ;
}
NOTE: ne répétez pas tous les éléments de la classe .menu a:link
.. ajoutez simplement des modifications ou de nouveaux styles . NOTE: utilisez toujours des minuscules en code html et css
Cela a fonctionné pour moi, mais comme je voulais que tous mes liens soient sur la même ligne, j'ai utilisé display: inline-block;
ajouter un bloc d'affichage dans un:
.menu A
{
display: block;
height:25px;
width:170px;
background:url(./images/button-51.png);
padding:2px 5px ;
}
Un lien est un élément en ligne par défaut. ajoutez display: block;
et il utilisera la largeur définie.
CSS est tout à propos de point. Les attributs prennent leur place en fonction de cela. Jetez un coup d'œil à Google University prenez la question. Cela vous aidera beaucoup à comprendre les bases et un peu au-delà.
.menu A
{
float: left;
height:25px;
width:170px;
background:url(./images/button-51.png);
padding:2px 5px ;
}