Juste
li + li::before {
content: " | ";
}
Bien sûr, cela ne fait pas de résoudre le cas des OP problème. Il veut éluder les barres verticales en début et en fin de lignes en fonction de l'endroit où ils sont cassés. Je vais aller sur une branche et d'affirmer que ce problème n'est pas soluble à l'aide de CSS, et même pas avec JS, sauf si l'on veut essentiellement réécrire le navigateur du moteur de texte-mesure/modèle/de coupure de ligne logique.
Les seuls morceaux de CSS, aussi loin que je peux voir, que de "savoir" à propos de la ligne de rupture sont, en premier lieu, l' ::first-line
pseudo élément, qui ne nous aide pas ici, en tout cas, elle est limitée à quelques éléments de présentation des attributs, et ne fonctionne pas avec des choses comme ::before et ::after. Le seul autre aspect de CSS je pense que dans une certaine mesure, expose de saut de ligne est de césure. Cependant, hyphenating est tout au sujet de l'ajout d' un personnage (généralement un tiret) à la fin des lignes, dans certaines situations, alors qu'ici nous sommes préoccupés par la suppression d'un caractère (la ligne verticale), donc je ne peux pas voir comment appliquer tout type de césure-logique, même avec l'aide de propriétés telles que l' hyphenate-character
.
Nous avons l' word-spacing
de la propriété, qui est appliqué intra-ligne, mais pas à la ligne début et la fin, qui semble prometteur, mais il définit la largeur de l'espace entre les mots, pas le personnage(s) à être utilisé.
On se demande si il y a une certaine façon d'utiliser le text-overflow
de la propriété, ce qui est moins connu, la capacité à prendre deux valeurs pour l'affichage de texte qui déborde à gauche et à droite, comme dans
text-overflow: '' '';
mais il y a toujours n'a pas l'air d'être évident pour aller de A à B ici.