5 votes

Comment faire pour que les espaces blancs entre les balises n'apparaissent pas ?

J'essaie de créer un menu à l'aide de balises d'ancrage. Celles-ci doivent être placées les unes à côté des autres, afin que les liens connexes puissent être reliés par une bordure. Voici un exemple de code :

<html>
<head>
    <style type="text/css">
        a {
            border: 1px solid #939393;
            margin: 15px;
            padding: 8px;
        }
        a:hover {
            border-color: #111;
        }
        a.collapse-left {
            border-left-width: 0px;
            margin-left: 0px;
        }
        a.collapse-right {
            border-right-width: 0px;
            margin-right: 0px;
        }

    </style>
</head>
<body>
    <div class="body">
        <a href="#" class="collapse-right primary">This is</a>
        <a href="#" class="collapse-right collapse-left click">A group</a>
        <a href="#" class="collapse-left hover">Of Three</a>

        <a href="#" class="">I am by myself</a>

        <a href="#" class="collapse-right">We are</a>
        <a href="#" class="collapse-left">a pair</a>

    </div>
</body>
</html>

Il y a un peu d'espace blanc entre les boutons qui sont regroupés. Cela est dû aux sauts de ligne entre <a> balises. Ces sauts de ligne peuvent être supprimés, et le problème disparaît, mais le code est beaucoup moins lisible.

Est-il possible de conserver les sauts de ligne mais de ne pas faire apparaître les espaces blancs ?

6voto

Jeremy Ruten Points 59989

Vous devriez transformer les boîtes en blocs en modifiant votre CSS pour <a> à ça :

a {
    border: 1px solid #939393;
    margin: 15px;
    padding: 8px;
    display: block;
    float: left;
}

3voto

Robert J. Walker Points 3712

Ce n'est pas idéal, mais cela fonctionne et c'est mieux que de tout mettre sur une seule ligne :

<a href="#">First link</a><!--
--><a href="#">Second link</a><!--
--><a href="#">Third link</a>

Notez que, normalement, je ferais le site nav avec des balises de liste pour éviter des problèmes comme celui-ci, mais la solution ci-dessus résout les problèmes généraux d'espace blanc.

2voto

Alex Wayne Points 58113

Je pense que les éléments en ligne (span, em, a) laissent passer l'espace blanc autour d'eux, alors que les éléments de niveau bloc ne le font pas (P, h1, div).

Pour créer des barres de navigation, je place généralement les liens dans les éléments d'une liste non ordonnée et je donne aux li float:left qui oblige display:block et ensuite ils s'assoient généralement l'un contre l'autre.

1voto

Runscope API Tools Points 43859

Non, les espaces entre les ancres sont combinés en un seul et ils apparaissent entre vos ancres puisque celles-ci sont toutes sur une "ligne" ensemble (même si la ligne s'étend sur plusieurs lignes dans la source). La meilleure façon de procéder serait d'utiliser une liste non ordonnée stylisée. Cependant, dans IE (je pense que c'est seulement IE6, mais peut-être aussi IE7), vous avez toujours cet espace blanc avec les éléments de la liste.

1voto

jeroen Points 47068

J'ai eu le même problème avec les listes. La solution que j'ai trouvée (et qui est parfaitement valable) était de placer la parenthèse fermante juste avant le début de la suivante et je suppose que vous pouvez le faire avec la fonction a également :

    <a href="#" class="collapse-right primary">This is</a
    ><a href="#" class="collapse-right collapse-left click">A group</a
    ><a href="#" class="collapse-left hover">Of Three</a>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X