2010-11-30 7 views
13

आप इसे test case चलाकर इसे पुन: पेश कर सकते हैं। परिणाम नीचे स्क्रीनशॉट में दिखाए जाते हैं। मुद्दा यह है कि फ़ायरफ़ॉक्स पर, "ब्लॉक" (स्क्रीनशॉट में ग्रे पृष्ठभूमि के साथ) पर overflow: hidden जोड़ते समय, ब्लॉक स्टॉप को गठबंधन किया जा रहा है जैसा कि मैं चाहता हूं: ब्लॉक में टेक्स्ट की आधार रेखा के बजाय पैरेंट बॉक्स की आधार रेखा से संरेखित करें, ऐसा लगता है कि ब्लॉक के नीचे पैरेंट बॉक्स की आधार रेखा पर गठबंधन किया गया था। जैसा कि आप स्क्रीनशॉट में देख सकते हैं, यह क्रोम के साथ नहीं होता है।सीएसएस: ऊर्ध्वाधर-संरेखण क्यों है: अतिप्रवाह का उपयोग करते समय फ़ायरफ़ॉक्स पर बेसलाइन स्टॉप काम करना बंद कर दिया: छुपा हुआ?

  1. क्या यह फ़ायरफ़ॉक्स बग है?
  2. फ़ायरफ़ॉक्स पर अपेक्षित परिणाम कैसे प्राप्त करें (overflow: hidden के साथ बेसलाइन संरेखण)?

Screenshot

नोट: "ब्लॉक" इसे काट नहीं है, क्या मैं वास्तव में चाहते हैं के रूप में आधारभूत संरेखण है पर vertical-align: middle का उपयोग करना। आप अधिक स्पष्ट रूप से देख सकते हैं कि vertical-align: middlepadding: 1em 0 .1em 0 की स्थापना (बॉक्स के शीर्ष पर अधिक गद्दी) है, जो आप दे द्वारा आधारभूत संरेखण नहीं करता है:

With vertical-align: middle

+0

कोशिश पाठ-नीचे, कि अतिरिक्त गद्दी –

+0

सेबस्टियन, 'ऊर्ध्वाधर- align साथ काम करता है: पाठ bottom' काम नहीं करता है; फिर यह बेसलाइन संरेखण से बहुत अलग है। आप इसे पैडिंग डालकर स्पष्ट रूप से देख सकते हैं: .3em 0 1em 0; लंबवत-संरेखण: पाठ-नीचे '। – avernet

+0

ऐसा लगता है कि यह एक कानूनी बग हो सकता है। यह फ़ायरफ़ॉक्स डिफ़ॉल्ट स्प्रेडशीट के कारण प्रतीत नहीं होता है; मैंने फ़ायरफ़ॉक्स में कई अलग-अलग ब्राउज़र डिफ़ॉल्ट स्प्रेडशीट इंजेक्शन दिए हैं, और यह समस्या को ठीक नहीं करता है। – Yahel

उत्तर

1

जोड़ने का प्रयास करें vertical-align: text-bottom;.block को

आप भी .label और .block

+0

सेबेस्टियन, अच्छा विचार, लेकिन 'लंबवत-संरेखण: मध्य' बेसलाइन संरेखण नहीं है, और आपको कुछ विशेष स्थिति को छोड़कर सही संरेखण नहीं देगा-जैसे टूटी हुई घड़ी आपको दिन में दो बार सही समय देती है;) । मैंने स्क्रीनशॉट के साथ इस बारे में अपने प्रश्न के लिए एक नोट भी जोड़ा। – avernet

+0

@alessandro: देखा कि, जवाब संपादित किया: शायद 'लंबवत-संरेखण: पाठ-नीचे;'? –

+0

वही बात: प्रश्न पर अपनी टिप्पणी पर मेरी टिप्पणी देखें। – avernet

0

के लिए बराबर लाइन ऊंचाइयों सेट करने का प्रयास की कोशिश कर सकते

 
.label { 
     float: left; 
     line-height: 30px; 
     margin-right: 5px; 
     } 

यह एफएफ और क्रोम/सफारी दोनों में वांछित परिणाम प्राप्त करेगा। हालांकि आईई में परीक्षण नहीं किया था।

+0

जब तक आप ठीक दिखते हैं तब तक आप लेबल के 'लाइन-ऊंचाई' को पिक्सेल में समायोजित कर रहे हैं। मेरी पुस्तक में, यह एचटीएमएल/सीएसएस दुनिया में एक समाधान नहीं है (यह फ़ोटोशॉप में होगा)। इस समाधान के साथ, फ़ॉन्ट आकार कम करें और लेबल बहुत अधिक है; इसे बढ़ाएं और यह बहुत कम है। इसके अलावा यदि "ब्लॉक" के लिए 'पैडिंग' बदलता है, तो आपको पिक्सेल की संख्या समायोजित करनी होगी। – avernet

13

यह अतिप्रवाह की तरह दिखता है: छुपा हुआ है यह एक इनलाइन-ब्लॉक तत्व से आधार रेखा को हटा देता है। सौभाग्य से, अतिप्रवाह के लिए एक प्रतीत होता है अनावश्यक मोज़िला सीएसएस एक्सटेंशन मान जो अतिप्रवाह को रोकता है लेकिन यह छोटी गाड़ी व्यवहार प्रदर्शित नहीं करता है।

इस प्रयास करें:

.block { 
    width: 10em; padding: .3em 0 .1em 0; 
    overflow: hidden; 
    overflow: -moz-hidden-unscrollable; 
    white-space: nowrap; 
    display: inline-block; 
    border: 1px solid #666; background-color: #eee;  
} 

ऐसा लगता है कि यह फ़ायरफ़ॉक्स में समस्या को सही और सफारी के साथ गड़बड़ नहीं है की तरह।

अद्यतन:

ऐसा लगता है कि फ़ायरफ़ॉक्स और ओपेरा अतिप्रवाह प्रदान कर रहे हैं: सही ढंग से छिपा इनलाइन ब्लॉक और वेबकिट ब्राउज़रों नहीं हैं।

W3C CSS2 Working Draft's Visual Formatting Model Details के अनुसार

,

एक 'इनलाइन-ब्लॉक' की आधारभूत, में इसकी आखिरी पंक्ति बॉक्स के आधारभूत सामान्य प्रवाह है जब तक कि यह या तो है कोई में प्रवाह लाइन बक्से या यदि इसकी 'ओवरफ्लो' प्रॉपर्टी में 'दृश्यमान' के अलावा अन्य गणना की गई है, जिसमें केस बेसलाइन नीचे मार्जिन एज है।

अपने ऊर्ध्वाधर संरेखण के लिए
+0

ऐसा लगता है कि यह मेरे लिए काम करता है। – Yahel

+0

यह फ़ायरफ़ॉक्स में काम करता है, लेकिन ओपेरा के बारे में कैसे? –

+0

पहली नज़र में, मानक का यह हिस्सा वास्तव में बेवकूफ लगता है। लेकिन मुझे पता है कि मानक के तरीके के लिए आम तौर पर अच्छे कारण होते हैं। क्या किसी को पता है कि मानक में वर्णित व्यवहार वांछित क्यों होगा? –

संबंधित मुद्दे