Eğik Çizgi Kapatmadan Önce Boşluk?


95

Sık sık XML ve HTML etiketlerinde kapanış çizgisinden önce bir boşluk gördüm. XHTML satır sonu muhtemelen standart bir örnektir:

<br />

onun yerine:

<br/>

Alan gereksiz görünüyor. Aslında, gereksiz olduğunu düşünüyorum.

Bu alanı yazmanın sebebi nedir?

Alanın bazı "geriye dönük uyumluluk sorunlarını" çözdüğünü okudum. Geriye dönük uyumluluk sorunları nelerdir? Bu sorunlar hala geçerli mi yoksa IE3 uyumluluğu uğruna hala fazladan boşluklar mı ekliyoruz? Bunun kesin cevabı olan bazı özellikler var mı?

Geriye dönük uyumluluk değilse, bu bir okunabilirlik sorunu mu? Great Open Curly Brace tartışmasına benzer mi?

void it_goes_up_here() {

int no_you_fool_it_goes_down_there()
{

Farklı stilistik fikirlere kesinlikle saygı duyabilirim, bu yüzden alanı yazmanın sadece bir zevk meselesi olduğunu öğrenmekten mutlu olacağım.


5
Buna o kadar alıştım ki, <br /> sadece <br/>
mk12

Yanıtlar:


66

Cevap, insanların XHTML1.0 spesifikasyonunun Ek C'sine uymak istemeleridir . Bunu yalnızca XHTML'yi text / html olarak sunuyorsanız yapmanız gerekir . Çoğu insan bunu yapar, çünkü XHTML'nin gerçek MIME türü (application / html + xml) Internet Explorer'da çalışmaz.

Şu anda hiçbir tarayıcı alanı önemsemiyor. Tarayıcılar bunlara çok toleranslıdır.

HTML ayrıştırıcılarının sondaki eğik çizgiyi tanınmayan bir öznitelik olarak değerlendirmesini sağlamak için gerekli olan boşluk.


2
"Eskiden" hakkında daha net konuşabilir misin? Yıl ve / veya tarayıcı sürümü yapacak, teşekkürler!
Greg Mattes

5
W3.org/TR/xhtml1/#C_2’nin bu yanıt için daha kesin bir bağlantı olduğunu düşünüyorum . Öyleyse, XHTML 1.0 Appendix C2 etkin bir şekilde modası geçmiş gibi görünüyor ve alanı yazmak tamamen bir sorun tadı.
Greg Mattes

1
Maalesef, eskiden olmak, "eşittir" anlamına gelir - bir HTML ayrıştırıcısının sondaki eğik çizgiyi tanınmayan bir öznitelik olarak değerlendirmesini sağlamak açısından, tüm HTML ayrıştırıcıları tarayıcı değildir. Varsa hangi tarayıcı sürümünün tıkandığını tahmin etmek istemem, ancak IE4 veya Netscape 4'ün şikayet ettiğini hatırlamıyorum.
Lee Kowalkowski

3
aslında gerçek mime türü application / xhtml + xml'dir.
mk12

3
@JanAagaard: Bilemiyorum, öyleyse hatırlardım - IE4 ve Netscape 4'te web geliştirmeye başladım. Bağlandığınız yanıtın da bu etkiye bir yorumu var, aslında Netscape 3 olduğunu söylüyor.
Lee Kowalkowski

31

HTML'de <br/> ve <br /> farklı davranışlarını gösteren Netscape 4.80

Bobince'nin yanıtını , belgeleri gösteren Netscape 4.80 ekran görüntüsü ile desteklemek

data:text/html,<title>space</title>foo<br />bar

(sol üst, satır sonu oluşturulmuş) ve

data:text/html,<title>no space</title>foo<br/>bar

(sol alt, satır sonu yok sayıldı).


Resmi göstermek için cevap olarak gönderme

Teğetsel olarak ilişkili: Aslında, eski tarayıcıların bu tür yanlış davranışlarının nedenini (ve bunun sonucunda ortaya çıkan, boşluğu dahil etme önerisini) yanlış anlaşılmış SGML spesifikasyonlarında tanımlayan uzun bir cevabım vardı, yani SGML Boş Bitiş Etiketi ( NET ) (burada 1<tag/2/3eşittir aslında 1<tag>2</tag>3öyle 1<tag/>2olurdu 1<tag>>2) ama standardın iyi bir kanıtı ve somut versiyonunu bulamamakla kalmadım, standartlara uygun düzgün davranışı bile kavrayamadım. Referans için çok az ham bağlantı:

(Şu anda orada yeniden üretilemiyor, ancak Lee Kowalkowski'nin bundan etkilenen birden çok tarayıcı hakkındaki açıklamasını destekliyor.)


25

Bu sorunlar hala geçerli mi yoksa IE3 uyumluluğu uğruna hala fazladan boşluk ekliyor muyuz?

Yakındaydınız - bu Netscape 4 için.

Diğer rasyonalizasyonları görmek ilginç, ama bunun anlamı buydu.


2
Teşekkürler! Bunun için bir referans verebilir misiniz?
Greg Mattes

1
Hmm, birincil kaynakları bulmak zor bu kadar eski ... resmi W3 materyalleri herhangi bir UA'dan bahsetmekten kaçınıyor ve listelerdeki tartışmalar durumu okunduğu gibi alıyor gibi görünüyor. Muhtemelen alana ihtiyaç duyan başka UA'lar da vardı, ancak N4, yıllarca web yöneticilerinin sorunlarına neden olan sonuncuydu.
bobince

Böylece XHTML belgeniz de Netscape üzerinde işlenebilirdi. Özellikle ara etiketleri ve resim etiketleri içindi. Birincil Kaynak: 10 yıl önce IE4 ve NS3 uyumluluğu için kod yazıyordum.
Philihp Busby

4

Hayır, alan gerekli değildir, ancak bazı eski tarayıcıların bu etiketleri doğru şekilde oluşturması gerekir. Bunu yapmanın doğru yolu, XHTML'nin XML'den miras aldığı bir şey olduğundan fazladan boşluk bırakmamaktır.


1
Özellikle hangi eski tarayıcılar? Önemli pazar payına sahip tarayıcılardan bahsedip bahsetmediğimizi öğrenmekle ilgileniyorum.
Greg Mattes

Değildi. Çoğunlukla IE5 ve daha eski.
jmucchiello


3

Boşluk, etiketleri daha okunaklı hale getirir. Daha okunaklı kod için biçimlendirmenin büyük bir savunucusuyum. Bunun gibi küçük şeyler uzun bir yol kat eder. Boşluk olmadan kapanış etiketi, açılış etiketiyle karışır. Kodu hızlı bir şekilde okurken onu işlemem sadece bir an daha uzun sürüyor.


0

Ya orada çok tembel bir html yazarı varsa ya da tırnak işareti korkusu varsa. Onun robot sayfa tarayıcısı olsaydınız, aşağıdakileri düşünün ...

<img src=http://myunquotedurl.com/image.jpg />

karşı

<img src=http://myunquotedurl.com/image.jpg/>

Bu küçük görünebilir, ancak boşluk yoksa ne yapabileceğine bakın. Robot, eğik çizginin url'nin bir parçası mı yoksa kapanış etiketinin bir parçası mı olduğunu bilmez.


13
Ama yine de url'nin etrafında alıntılar olmalı .
Florian Wendelborn

-1

Beyaz boşluğun bu etiketin boş olduğu ve kendini kapattığı fikrini pekiştirmenin bir yolu olduğunu düşünüyorum.

Bugün artık beyaz boşluğu kullanmıyorum çünkü hiç beyaz boşlukla ilgili bir sorunum olmadı.


1
"pekiştirmek", "güçlü" için uygun bir kelimedir
Hao,

bunu fark ettiğiniz için teşekkürler. Burada yazı kalitesini garanti altına alacak insanlarımızın olduğunu görmek güzel.
nicruo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.