J'ai l'impression que j'ai trouvé un moyen, en utilisant la propriété de contenu CSS, d'insérer une balise de saut de ligne avant un élément. Évidemment cela ne fonctionne pas:
#restart:before { content: '<br/>'; }
Mais comment faites-vous cela?
Il est possible d'utiliser le \A
séquence d'échappement dans le contenu généré par l'élément psuedo. En savoir plus dans les spécifications CSS2.
#restart:before { content: '\A'; }
Vous devrez peut-être aussi ajouter white-space:pre;
à #restart
.
note: \A
indique la fin d'une ligne.
p.s. Un autre traitement à être
:before { content: ' '; display: block; }
Si #restart
est un élément en ligne (par exemple, <span>
, <em>
etc.), vous pouvez le transformer en élément de bloc en utilisant:
#restart { display: block; }
Cela aura pour effet d’assurer une rupture de ligne avant et après l’élément.
Il n'y a pas moyen de faire en sorte que CSS insère quelque chose qui se comporte comme un saut de ligne niquement avant un élément et non après. Vous pourriez peut-être provoquer une rupture de ligne avant comme effet secondaire d'autres modifications, par exemple float: left
ou clear: left
après un élément flottant, ou même quelque chose de fou comme #restart:before { content: 'a load of non-breaking spaces'; }
mais ceci n'est pas une bonne idée dans le cas général.
Cela fonctionne pour moi:
#restart:before {
content: ' ';
clear: right;
display: block;
}
Il suffit de mettre un caractère de nouvelle ligne unicode dans le pseudo-élément avant:
#restart:before { content: '\00000A'; }
Il existe deux raisons pour lesquelles vous ne pouvez pas ajouter le contenu généré via CSS de la manière souhaitée:
le contenu généré accepte le contenu et non le balisage. Le balisage ne sera pas évalué mais affiché uniquement.
Le contenu généré par :before
et :after
est ajouté à l'élément. Par conséquent, même l'ajout d'un espace ou d'une lettre et sa définition en tant que block
ne fonctionneront pas.
Il existe un pseudo-élément ::outside
qui peut faire ce que vous voulez. Cependant, il semble n'y avoir aucun support de navigateur. (Lire la suite ici: http://www.w3.org/TR/css3-content/#wrapping )
Le meilleur pari est d'utiliser un peu de jQuery ici:
$('<br />').insertBefore('#restart');
Suivre CSS a fonctionné pour moi:
/* newline before element */
#myelementId:before{
content:"\a";
white-space: pre;
}
Oui, totalement faisable, mais c’est définitivement un hack (les gens peuvent vous donner des regards sales pour écrire un tel code).
Voici le HTML:
<div>lorem ipdum dolor sit <span id="restart">amit e pluribus unum</span></div>
Voici le CSS:
#restart:before { content: 'hiddentext'; font-size:0; display:block; line-height:0; }
Voici le violon: http://jsfiddle.net/AprNY/
Essayez ce qui suit:
#restart::before {
content: '';
display: block;
}
en supposant que vous voulez que la hauteur de ligne soit de 20 px
.restart:before {
content: 'First Line';
padding-bottom:20px;
}
.restart:after {
content: 'Second-line';
position:absolute;
top:40px;
}
Je n’ai pas eu la moindre chance d’insérer une pause avec: avant. Ma solution a été d'ajouter une étendue avec une classe et de mettre la pause à l'intérieur de l'étendue. Puis changez la classe pour afficher: none; ou afficher: bloquer au besoin.
HTML
<div>
<span class="ItmQty"><br /></span>
<span class="otherclass">
<asp:Label ID="QuantityLabel" runat="server" Text="Qty: ">
</asp:Label>
</span>
<div class="cartqty">
<asp:TextBox ID="QuantityTextBox" runat="server" Text='<%# Bind("Quantity","{0:#}") %>' Width="50"></asp:TextBox>
</div>
</div>
CSS
@media only screen and (min-width: 854px)
{
.ProjItmQty
{
display: block;
clear: both;
}
}
@media only screen and (min-width: 1003px)
{
.ProjItmQty
{
display: none;
}
}
J'espère que cela t'aides.
Vous pouvez remplir votre document avec les balises <br>
et les activer\off avec css comme n'importe quel autre:
<style>
.hideBreaks {
display:none;
}
</style>
<html>
just a text line<br class='hideBreaks'> for demonstration
</html>
body * { line-height: 127%; }
p:after { content: "\A "; display: block; white-space: pre; }
https://www.w3.org/TR/CSS2/generate.html#x18 La propriété de contenu, "nouvelles lignes" ... p n'ajoutera pas de marge ni de remplissage à la fin de p à l'intérieur du bloc parent (par exemple, body ›section› p). "\ A" saute à la ligne oblige l'espace entre les lignes, hauteur de ligne stylée équivalente.
Vous pouvez également utiliser l'entité HTML pré-encodée pour un saut de ligne
dans votre contenu, ce qui produira le même effet.