2013-05-02 9 views
6

Tasarımımızla, elips ile başlıkları görüntülemek için birden çok sütuna ihtiyaç duyuyoruz, ki bu büyük bir anlaşma olmasını beklemiyor ancak bir display: table'un içine yerleştirildiğinde hesaplamalar yanlış görünüyor.Tablo görünümündeki bir öğenin içinde iç içe geçmediğinde neden sarma genişliği değişmez?

Uyarılar, yüzdelik genişliklerin gerekli olması için duyarlı bir düzen olmasını istiyoruz (sabit genişlikler sorunu çözer). Ve bizim düzenlerimiz bir display: table ağacını daha fazla gerektirir ve büyük bir refactor olmadan onu kaldıramıyorum.

ben beklediğiniz gibi ekran her şey çalışıyor kaldırırsanız:

EXPECTED

Ama bu ekran sahip (ama nowrap ile alınır toplam genişliği ön kesilmiş alt öğeleri dikkate almak ebeveyn neden olur hesap). İlk oluşturma, bir taşma tanımlanmadan gerçekleşir ve gerçeği ekledikten sonra ekler (ancak bu nokta genişlik hesaplaması çok büyüktür).

RESULT

neden render kırılıyor de tahmin edebilirsiniz ama Tarayıcının bu nasıl oluşturduğunu hakkında daha kesin bir yanıt istiyorum ...

+0

Bu biraz dağınık, bir satır öğesinin (span) içine bir blok öğesinin (ul) yerleştirilmesi ve ekran tablosunu doğrudan bir şey gösterim tablosu hücresinin içinde (standart olmayan, böylece son tarayıcı oluşturma öngörülemeyen hale gelir) tablo-satırını kullanarak ... Gerçekten neye ihtiyacınız olduğunu açıklayabilir misiniz? – coma

+0

Yukarıdaki örnek benim kodumla ilgili değil; Gördüğüm davranışları göstermek için bir grup eleman kullandım (derslerle dolu bir el bulmak yerine). 'display: table' orijinal olarak eklendi, böylece aynı dinamik yüksekliğe sahip birden çok sütun bitecek (js yok). Her neyse, benim anladığım şey şu ki, bu davranışa niçin şu anda bu davranışa sahip olduğumuzdur (ben bir "ekran görüntüsümde html nasıl görüneceğini" düşünmüyorum, bunu yapabilirim). Ayrıca, tablo-satırının benim örneğimi etkilemesini beklemiyorum çünkü genişlik hesaplarını etkilemeyeceğini sanmıyorum (ama dışarıda bırakmak için biraz özensizti). – SciSpear

+0

Tüm tarayıcılarda aynı davranıyor, bu yüzden tahmin edilebilir bir davranış (ve beklenen bir model) olduğunu düşünüyorum. Tahminim, sonucu anlamak için tarayıcının alt düzey boya/düzen döngüleri hakkında yeterli bilgiye sahip olmadığım. – SciSpear

cevap

2

(Mac'te Krom/FF/Safari'de test edilmiştir) Bunun nedeni, auto mizanpaj yöntemini kullanırken tablo düzeni hücreleriyle ilgili yapmak zorunda.

Nasıl çalıştığının ayrıntıları section 17 of the CSS spec'da açıklanmıştır, ancak önemli nokta, auto düzeninin hücrenin içeriğine bağlı olmasıdır (bu nedenle içeriğinizi bir satıra zorladığınızda bu kadar büyüktür); fixed düzeni yalnızca tablo genişliğine bağlıdır (beklediğiniz gibi).

.table selektörünüze table-layout:fixed eklerseniz, sorununuz çözülmelidir.

+0

Sadece özellikleri okuyun ve onu çok güzel özetlediniz; Bu kesinlikle sorumu yanıtladı. – SciSpear

+0

Sevindim Yardımcı olabilirim. Ödül için teşekkür ederim. –

İlgili konular