Bir öğeden önce bir satır sonu etiketi eklemek için CSS içerik özelliğini kullanarak bir yol gördüm gibi hissediyorum. Açıkçası bu işe yaramıyor:
#restart:before { content: '<br/>'; }
Ama bunu nasıl yapıyorsun?
Bir öğeden önce bir satır sonu etiketi eklemek için CSS içerik özelliğini kullanarak bir yol gördüm gibi hissediyorum. Açıkçası bu işe yaramıyor:
#restart:before { content: '<br/>'; }
Ama bunu nasıl yapıyorsun?
Yanıtlar:
Psuedo elemanı tarafından oluşturulan içerikteki \A kaçış dizisini kullanmak mümkündür . Daha fazla bilgi için CSS2 spesifikasyonuna bakınız.
#restart:before { content: '\A'; }
Ayrıca eklemek gerekebilir white-space:pre;için #restart.
not: \Abir satırın sonunu belirtir.
ps Olmak için başka bir tedavi
:before { content: ' '; display: block; }
#restartayrıca olması gerektiği de belirtilmelidirdisplay: inline;
:before { content: ' '; display: block; }onun yerine kullandım .
inline-blockelemanlarla çalışmaz . Bir sonraki satıra geçmeyecekler. Tek çözüm aslında <div></div>HTML'ye boş bir boşluk eklemektir .
Eğer #restartbir satır içi unsurdur (örneğin <span>, <em>vs) o zaman kullanarak bir blok elemanı dönüştürebilirsiniz:
#restart { display: block; }
Bu, öğeden önce ve sonra satır kesilmesini sağlama etkisine sahip olacaktır.
CSS'nin satır öğesi gibi davranan bir öğeyi yalnızca öğeden önce değil, sonradan eklemesinin bir yolu yoktur. Belki de daha önce diğer değişikliklerin bir yan etkisi olarak float: left, ya da clear: leftyüzen bir öğeden sonra, hatta çılgın bir şeyden sonra bir satır kesmesine neden olabilirsiniz , #restart:before { content: 'a load of non-breaking spaces'; }ancak bu muhtemelen genel durumda iyi bir fikir değildir.
float: leftöğe, sığacak şekilde daralan ve yeni bir satıra başladıkları için bazı yararlı olabilir. Aksi takdirde, istediğiniz şey mümkün olmayabilir.
Bu benim için çalışıyor:
#restart:before {
content: ' ';
clear: right;
display: block;
}
Önceki sözde öğenin içine bir unicode yeni satır karakteri koymanız yeterlidir:
#restart:before { content: '\00000A'; }
Aşağıdaki CSS benim için çalıştı:
/* newline before element */
#myelementId:before{
content:"\a";
white-space: pre;
}
content: 'bar: \a' attr(data-description);
Oluşturulan içeriği CSS aracılığıyla istediğiniz şekilde ekleyememenizin iki nedeni vardır:
oluşturulan içerik biçimlendirmeyi değil içeriği kabul eder. İşaretleme değerlendirilmez, yalnızca görüntülenir.
:beforeve :afteroluşturulan içerik öğenin içine eklenir, böylece bir boşluk veya harf eklemek ve onu blockçalışmaz olarak tanımlamak bile mümkündür .
::outsideİstediğinizi yapabilen bir sözde öğe var. Ancak, tarayıcı desteği yok gibi görünüyor. (Daha fazla bilgiyi buradan edinebilirsiniz: http://www.w3.org/TR/css3-content/#wrapping )
En iyi bahis burada biraz jQuery kullanmaktır:
$('<br />').insertBefore('#restart');
Evet, tamamen yapılabilir ama kesinlikle toplam bir hack (insanlar size böyle bir kod yazmak için kirli görünüyor verebilir).
İşte HTML:
<div>lorem ipdum dolor sit <span id="restart">amit e pluribus unum</span></div>
İşte CSS:
#restart:before { content: 'hiddentext'; font-size:0; display:block; line-height:0; }
İşte keman: http://jsfiddle.net/AprNY/
Takip etmeyi dene:
#restart::before {
content: '';
display: block;
}
Önce bir mola ekleyerek hiç şansım yoktu: önce. Benim çözümüm bir sınıf ile bir span eklemek ve mola span içine koymak oldu. Sonra görüntülemek için sınıfı değiştirin: none; veya display: gerektiği gibi engelle.
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;
}
}
Bu yardımcı olur umarım.
Dokümanınızı <br>etiketlerle doldurabilir ve tıpkı diğerleri gibi css ile açıp kapatabilirsiniz:
<style>
.hideBreaks {
display:none;
}
</style>
<html>
just a text line<br class='hideBreaks'> for demonstration
</html>
İçeriğinizdeki satır sonu için önceden kodlanmış HTML varlığını da kullanabilirsiniz; bu, aynı etkiye sahiptir.
body * { line-height: 127%; }
p:after { content: "\A "; display: block; white-space: pre; }
https://www.w3.org/TR/CSS2/generate.html#x18 Content Proerty, "newlines" ... p, ana blok içindeki p'nin sonuna kenar boşluğu veya dolgu eklemeyecektir (örn. gövde ›bölümü› p). "\ A" satır sonu, satır alanını, eşdeğer stilli satır yüksekliğini zorlar.
Bir ekleme margin-top:20px;için #restart. Ya da hangi boyut boşluğunun uygun olduğunu hissedersiniz. Bir satır içi öğe ise, eklemeniz gerekecek display:blockya da display:inline-blockIE'nin inline-blockeski sürümlerinde çalıştığını düşünmüyorum .
Bir şekilde manuel olarak satır sonu eklemek yerine border-bottom: 1px solid #ff0000, öğenin kenarlığını alacak ve yalnızca border-<side>belirttiğiniz tarafı oluşturacak bir uygulama yapabilirsiniz .
<br>, değil <hr>.