Je souhaite définir un élément span devant apparaître sous un autre élément à l'aide de la propriété display. J'ai essayé d'appliquer inline-block mais sans succès, et je me suis dit que je pourrais utiliser block si je réussissais à éviter d'attribuer à l'élément une largeur de 100% (je ne veux pas que l'élément "s'étire"). Cela peut-il être fait, ou sinon, quelle est la bonne pratique pour résoudre ce genre de problème?
Exemple: une liste d’actualités dans laquelle je souhaite définir un lien "lire plus" à la fin de chaque message (note: <a>
au lieu de <span>
)
<li>
<span class="date">11/15/2012</span>
<span class="title">Lorem ipsum dolor</span>
<a class="read-more">Read more</a>
</li>
Mise à jour: résolu. En CSS, appliquer
li {
clear: both;
}
li a {
display: block;
float: left;
clear: both;
}
Si je comprends bien votre question, le CSS suivant va flotter en dessous des étendues et l'empêcher d'avoir une largeur de 100%:
a {
display: block;
float: left;
clear: left;
}
Utilisation display: table
.
Cette réponse doit comporter au moins 30 caractères. Je suis entré 20, alors voici quelques autres.
vous pouvez utiliser:
width: max-content;
Remarque: le support est limité, cochez ici pour une liste complète des navigateurs supportés
Je garderais chaque rangée à son propre div, alors ...
<div class="row">
<div class="cell">Content</div>
</div>
<div class="row">
<div class="cell">Content</div>
</div>
Et puis pour le CSS:
.cell{display:inline-block}
Il est difficile de vous donner une solution sans voir votre code d'origine.
Encore une fois: une réponse qui pourrait être un peu trop tardive (mais pour ceux qui trouvent cette page de toute façon pour la réponse).
Au lieu de display:block;
utilisation display:inline-block;
Essaye ça:
li a {
width: 0px;
white-space:nowrap;
}
J'ai eu ce problème, je l'ai résolu comme suit:
.parent {
white-space: nowrap;
display: table;
}
.child {
display: block;
}
le "white-space: nowrap" fait en sorte que les enfants de l'enfant (s'il en a) ne retournent pas à la nouvelle ligne s'il n'y a pas assez d'espace.
sans "espace-blanc: nowrap":
avec "white-space: nowrap":
edit: il semble que cela fonctionne également sans la partie de bloc enfant pour moi, donc cela semble bien fonctionner.
.parent {
white-space: nowrap;
display: table;
}
Ne pouvez-vous pas définir l'envergure comme display: block
et définir un width
sur l’élément contenant li
?