2011-04-01 17 views
42

मैं एक उस्तरा देखने के एक भाग के रूप में निम्न मार्कअप है:क्या एचटीएमएल 5 से कोशिकाओं को प्रतिबंधित करता है?

<table> 
    <caption>Presidents</caption> 
    <thead> 
    <tr> 
     <th scope="col">Name</th> 
     <th scope="col">Born</th> 
     <th scope="col">Died</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr> 
     <th scope="row">Washington</th> 
     <td>1732</td> 
     <td>1799</td> 
    </tr> 
    <!-- etc --> 
    </tbody> 
</table> 

"सत्यापन के लिए लक्ष्य स्कीमा" एचटीएमएल 5 के लिए सेट के साथ, दृश्य स्टूडियो thusly शिकायत:

चेतावनी 1 मान्यता (एचटीएमएल 5): एलिमेंट 'वें' तत्व 'टॉफ टफुट' के भीतर घोंसला नहीं होना चाहिए।

क्या यह वाकई सच है? यदि हां, तो क्या कोई spec से लिंक कर सकता है?

मेरी समझ यह थी कि पंक्ति शीर्षलेखों के लिए <th> का उपयोग केवल कानूनी नहीं बल्कि प्रोत्साहित किया गया था। यह निश्चित रूप से काफी आम लगता है, मैं दर्जनों ट्यूटोरियल को समझा सकता हूं (स्पष्ट रूप से समझदारी से) कि यह पहुंच के साथ मदद करता है।

क्या यह एक वीएस बग है? एक वास्तविक परिवर्तन एचटीएमएल 5 के साथ आ रहा है (एक अच्छा है? एक बुरा?)? कहानी क्या है?

+0

क्या आपके एक्शन कोड, ' 'के बजाय, क्या कोई अमान्य घोंसला वाला कोड है? उदाहरण के लिए ' 'के बिना' '? – Gareth

+0

गैरेथ, अच्छा सवाल है, लेकिन ऐसा नहीं है। मेरा मतलब यह था कि एक से अधिक समान पंक्ति है। मैंने इसे केवल एक के साथ करने की कोशिश की और यह केवल उसी चेतावनी की डुप्लिकेट प्रतियों को कम करता है (प्रत्येक ऐसे सेल के लिए एक)। –

उत्तर

49

मेरे समझ है कि पंक्ति हैडर के लिए <th> का उपयोग कर सिर्फ कानूनी नहीं था और था, लेकिन प्रोत्साहित

जहाँ तक मुझे पता है, यह हमेशा एचटीएमएल 4 में कानूनी (और संभवतः अपने पूर्ववर्तियों) था, hasn ' एचटीएमएल 5 में बदल गया।

W3C's HTML5 validator, अभी भी प्रयोगात्मक, कोई चेतावनी या त्रुटियों की रिपोर्ट नहीं करता है। फिर फिर, मुझे यकीन है कि एचटीएमएल 5 सत्यापन विजुअल स्टूडियो का प्रयोग प्रयोगात्मक है क्योंकि एचटीएमएल 5 खुद को अभी तक अंतिम रूप दिया गया है।

<table> 
<thead> 
    <tr> 
    <th> 
    <th>2008 
    <th>2007 
    <th>2006 
<tbody> 
    <tr> 
    <th>Net sales 
    <td>$ 32,479 
    <td>$ 24,006 
    <td>$ 19,315 
    <tr> 
    <th>Cost of sales 
    <td> 21,334 
    <td> 15,852 
    <td> 13,717 
<tbody> 
    <tr> 
    <th>Gross margin 
    <td>$ 11,145 
    <td>$ 8,154 
    <td>$ 5,598 
<tfoot> 
    <tr> 
    <th>Gross margin percentage 
    <td>34.3% 
    <td>34.0% 
    <td>29.0% 
</table> 

तो यह पूरी तरह से अंदर या तो एक <tr> तत्वों के अंदर <th> तत्वों रखने का उचित है:

HTML5 specsection 4.9.13 तालिका डेटा को चिह्नित, विशेष रूप से पर, गुंजाइश पंक्ति आंकड़ों के <tbody> और <tfoot> भीतर <th> के उपयोग से पता चलता <tbody> या <tfoot>। जैसा कि यह वैसे भी होना चाहिए, क्योंकि तालिका शीर्षलेख टेबल हेडर पर नहीं पाए जाते हैं।

+19

मैं सहमत हूं। मैंने [मुद्दा 656626] बनाया है (http://connect.microsoft.com/VisualStudio/feedback/details/656626/html5- प्रमाणीकरण- रिपोर्ट- spurious-error-when-th-tags-appear-within-tbody-tags) से इसकी रिपोर्ट करें। –

+2

+1 इसे रिपोर्ट करने के लिए परेशान होने के लिए +1! – enashnash

+0

@ डॉग मैकलेन: वीएस 11 के एचटीएमएल 5 वैधता पर कोई शब्द?मुझे यकीन नहीं है कि यह वीएस -2010 से अलग है या नहीं। – BoltClock

3

आम तौर पर एक THEAD में एक TH"col" के scope मूल्य, जबकि एक TBODY में एक TH"row" के scope मूल्य होगा होगा।

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