2009-09-20 16 views
7
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> 
<head> 
</head> 
<body> 

<table width="100%" cellspacing="0" cellpadding="0"> 
    <tr> 
     <td align="right" colspan="5"> 
      <span class="validationInline">*</span> 
      <span class="hint">Required fields</span> 
     </td> 
    </tr> 
    <tr> 
     <td colspan="5" background="http://media.monster.com.hk/bgr_8.gif"> 
      <img src="/static/cleardot.gif" height="1" width="1" /> 
     </td> 
    </tr> 
</table> 

</body> 
</html> 

यहाँ यह बाहर की जाँच कर सकते हैं: http://maishudi.com/tt2.htmlक्यों <td > ऊंचाई <img > ऊंचाई के बराबर नहीं है जब DOCTYPE एक्सएचटीएमएल 1.0 सख्त है?

मैं जानता हूं यह, DOCTYPE के कारण होती है क्योंकि वह हिस्सा हटाने से यह सामान्य कर देगा:

http://maishudi.com/tt.html

तो क्या गलत है कैसे कर सकते हैं? मैं इसे DOCTYPE के साथ काम करता हूं?

+0

मैं करूंगा, सब से पहले, HTML4.01 सख्त एक (क्यों यह एक अच्छा विचार है के लिए http://www.webdevout.net/articles/beware-of-xhtml देखें) के साथ XHTML1.0 doctype को बदलने के लिए सलाह देते हैं – kangax

+0

ओह मैं नहीं कर सकता, डॉक्टरेट बदलना अब मेरे लिए कई अन्य परेशानियों का कारण बन जाएगा। – omg

+0

मैं अनुशंसा करता हूं कि आप एक्सएचटीएमएल सख्त का उपयोग जारी रखें। एचटीएमएल को छोड़कर कठोर आवश्यकताओं सॉफ्टवेयर विकास के बिल्कुल हर रूप में एक अच्छी बात है। यही कारण है कि प्रोग्रामर आम तौर पर एचटीएमएल के बारे में सोच का एक बहुत और इसे लिखने के लिए मजबूर किया उन की क्षमता कहते हैं। कंगैक्स का आलेख यह नहीं कहता है कि एक्सएचटीएमएल सख्त को टेक्स्ट/एचटीएमएल के रूप में भेजने के लिए यह पूरी तरह मान्य है। केवल एक्सएचटीएमएल 1.1 को एप्लिकेशन/एक्सएमएल + एक्सएचटीएमएल माइम प्रकार की आवश्यकता होती है। –

उत्तर

13

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

आपके उदाहरण में, सेल में एक एकल वर्ण (गैर-ब्रेकिंग स्पेस) होता है, जो एकल रेखा का आकार लेता है। इसलिए, ब्लॉक तत्व कम से कम 1 लाइन-ऊंचाई उच्च होना चाहिए; यह किसी भी छोटे आकार को नहीं मान सकता है। यही कारण है कि आपकी ऊंचाई घोषणा को नजरअंदाज कर दिया गया था।

आप इस शैली का उपयोग कर सकते हैं:

line-height: 1px; 

यह line-height 1px को निर्धारित करता है। रेखा-ऊंचाई एक तत्व नहीं है, इसलिए उपर्युक्त नियम लागू नहीं होता है।

+0

आकर्षण की तरह काम करता है! लेकिन क्या आप समझ सकते हैं कि टीडी पर ऊंचाई का कोई प्रभाव क्यों नहीं है? – omg

+1

यह ब्राउज़र पर भी आधारित है। कुछ ब्राउज़र तत्वों के भीतर पाठ सामग्री की अपेक्षा करते हैं। यह divs के साथ भी हो सकता है। –

+0

मेरा जवाब संपादित किया गया। – RichN

0

पृष्ठभूमि टीडी तत्वों के लिए एक मानक विशेषता नहीं है कारण है। इसके बजाए उपयोग करें:

style="background: url(/path/to/image.png);" 

आपकी 1 पिक्सेल छवि के लिए, मुझे लगता है कि यह तालिका कक्ष को प्रकट करने के लिए बस है? यदि ऐसा है, तो यह करने का सलाह नहीं है। आप या तो कर सकते हैं:

table { empty-cells: show; } 

सीएसएस में हालांकि मुझे नहीं लगता कि आईई 6 इसका समर्थन करता है। गैर मानक ब्रेकिंग स्पेस का उपयोग करने के लिए अधिक मानकों का अनुपालन तरीका है:

<td>&nbsp;</td> 
+0

काम नहीं कर रहा है, आप इसे देख सकते हैं http://maishudi.com/tt3.html – omg

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