2009-09-15 41 views
6

Bu tanımlamayı, HTML oluşturucumun biraz daha iyi uyum sağlaması için arıyorum. Şu anda, hangi boşlukları tutacağınızı, hangi noktaların çökeceğini ve ne atılacağını tahmin ediyor. SGML standardı bulmak zor ve HTML standardı, ihtiyacım için gereken derinlikteki nesneyi tedavi ediyor gibi görünmüyor.HTML beyaz boşluk kurallarının tanımı?

anda benim oluşturucu bir özyinelemeli düzeni tüm unsurları ve bunların içeriğini konumlandırmak için geçmesi gelmez sonra bir ağaca HTML ayrıştırır ve. Ayrıştırma aşamasında bazı boşlukları dışarı atmayı deniyorum, yani, belirli durumlarda yalnızca metin parçalarını beyaz boşluk bırakmıyordum. Vakaların çoğu için hangi tür çalışır, ama başa çıkmak zorlaşan adil bir kaç kenar durumu vardır.

(Ayrıca HTML denetiminin bir editör alt sınıfı üzerinde çalışıyorum ve düzen zaman çözümleri editörde biraz sorun olduğunu kanıtlıyor, bu yüzden onları ayrıştırma aşamasına getirme üzerinde çalışıyorum.) belgeyi düzenledikten sonra biraz zaman olduğu yeniden akış süresi, kadar mevcut t.)

Yangın uzak bağlantı/alevlerle.

cevap

5

Ben bölüm 9.1 White space in the HTML 4 specification aradığınız şey olduğunu düşünüyorum. Eğer kendi HTML ayrıştırıcı yazıyorsanız

+0

ben okudum ve ben gerekli detay yoktu. Şu anda öğelerin etrafındaki boşlukları nasıl kapsadığını görmek için HTML 5 ayrıştırıcı belgelerine bakın. – fret

3

, sonra kuvvetle HTML 5 spec içinde ayrıştırma algoritması kullanır önerilir. http://www.whatwg.org/html5 Çok sayıda kenar ve köşe kutusu ve genel tarayıcı tuhaflığını kapsar. Tarayıcılar SGML kurallarına uymazlar, ancak HTML 5 özelliklerinin ne söylediğini veya işlevsel eşdeğerini kullanırlar. Algoritmayı uygulayan çeşitli açık kaynak kodlayıcılar vardır, bu yüzden ihtiyacınız olan her şeye sahip olmalıdır.

+0

Şimdi HTML5 spec okumak için biraz zaman yaşadığınız, iyi ayrıştırma başa parçalar, ben boşluk karakterleri işlenmiş sona ve hangi kaybolur hangi çalışma dışarı hiçbir yakınım. – fret

+0

Sağ. Hangi beyaz alan oluşturulduğu sorusu için farklı bir sorudur, bu da ayrıştırma aşamasında hangi beyaz boşluğun atılabileceğidir. Beyaz boşluk gibi css olduğunu unutmayın: pre ayrıştırma aşamasından sonra javascript tarafından uygulanabilir, böylelikle ayrıştırma aşaması daha sonra böyle bir uygulamaya tabi olabilecek herhangi bir beyaz boşluğu atamaz. – Alohci

+0

arada, tarayıcılar gerçekte bunu nasıl görmek için iyi bir araç, Hixie Canlı DOM Görüntüleyici (http://software.hixie.ch/utilities/js/live-dom-viewer/) kullanmaktır. "Test etmek için işaretleme" kutusunda beyaz boşluk oluştururken, "#text:" düğümlerinin DOM'da oluşturulduğunu görürsünüz, beyaz boşluk ayrıştırma aşamasında atılmadığını gösterir. Geçerli/yeni tarayıcıların tam olarak aynı şekilde davranmadığını unutmayın, ancak gecko, webkit veya presto tabanlı bir tarayıcı kullanıyorsanız, efekt yeterince açık olmalıdır. – Alohci

İlgili konular