2008-09-11 13 views
71

सेल खाली होने पर भी सेल की सीमा बनाने के लिए मुझे किन सीएसएस का उपयोग करना चाहिए?सीएसएस एक खाली सेल की सीमा बनाने के लिए प्रकट होता है?

आईई 7 विशेष रूप से।

+0

मुझे यह समस्या आईई 6 में है!   अब तक :( –

+0

समस्या आईई 8 और आईई 9 – Betlista

उत्तर

58

तो मुझे याद है, सेल dosn't कुछ IE के जब तक यह कुछ के साथ भरा है में मौजूद ...

आप एक   (नॉन-ब्रेकिंग स्पेस) डाल सकते हैं, तो शून्य, कि आम तौर पर काम करेंगे भरने के लिए । या क्या आपको शुद्ध सीएसएस समाधान की आवश्यकता है?

स्पष्ट रूप से, आईई 8 डिफ़ॉल्ट रूप से कोशिकाओं को दिखाता है, और आपको इसे empty-cells:hide से छिपाना होगा, लेकिन यह आईई 7 (जो डिफ़ॉल्ट रूप से छुपाता है) में बिल्कुल काम नहीं करता है।

+4

में अभी भी वास्तविक है। शुद्ध सीएसएस अच्छा होगा। मेरे पास पहले से ही nbsps है, लेकिन यह गंदा लगता है। :) –

+2

जहां तक ​​मुझे पता है, यह एकमात्र समाधान है, यही वह है हम क्या। –

+12

मैं ऐसा नहीं करूँगा। इसके बजाय जोड़ें।   को ज़ूम इन करते समय फ़ायरफ़ॉक्स के साथ समस्या का कारण बन जाएगा। – wbkang

2

मुझे लगता है कि यह सीएसएस के साथ नहीं किया जा सकता है; आपको & nbsp; आईई में सीमा दिखाने के लिए प्रत्येक खाली सेल में ...

9

मुझे बस निम्नलिखित मिला। यह मानकों का अनुपालन है लेकिन यह आईई में काम नहीं करता है। आह।

empty-cells: show 
+5

यह आईई 8 में काम करता है, तो बस इसे लगभग एक दशक दें, और आप जाने के लिए अच्छे हैं। – Grant

+0

Amusingly यह आईई 6 में एक मानक एचटीएमएल

के लिए भी काम करता है लेकिन एएसपी.NET तालिका नहीं :) –

5

आदर्श रूप से, आपके पास किसी तालिका में कोई खाली कक्ष नहीं होना चाहिए। या तो आपके पास डेटा की एक सारणी है, और उस विशिष्ट सेल में कोई डेटा नहीं है (जिसे आपको "-", या "n/a /", या कुछ समान रूप से उचित, या - यदि आपको - & nbsp;, के ​​रूप में इंगित करना चाहिए सुझाया गया), या आपके पास एक सेल है जिसे कॉलम या पंक्ति को फैलाने की आवश्यकता है, या आप किसी तालिका के साथ कुछ लेआउट प्राप्त करने का प्रयास कर रहे हैं जिसके लिए आपको सीएसएस का उपयोग करना चाहिए।

क्या हमारे पास थोड़ा और विस्तार हो सकता है?

+0

मुझे यह पसंद है। स्पष्टता बढ़ जाती है। –

+1

यदि आपके पास कोई बड़ी सामग्री (हजारों कोशिकाओं या बड़े) के साथ कोई सामग्री नहीं है (75-95%) तो यह खाली कोशिकाओं के लिए अधिक सक्षम हो सकती है। – Michael

31

यदि आप border-collapse संपत्ति collapse पर सेट करते हैं, तो IE7 रिक्त कक्ष दिखाएगा। यह भी सीमाओं गिर हालांकि तो यह 100% नहीं हो सकता है कि आप क्या चाहते

td { 
 
    border: 1px solid red; 
 
} 
 
table { 
 
    border-collapse: collapse; 
 
} 
 
<html> <head> <title>Border-collapse Test</title> <style type="text/css"> td { 
 
    border: 1px solid red; 
 
} 
 
table { 
 
    border-collapse: collapse; 
 
}
<table> 
 
    <tr> 
 
    <td></td> 
 
    <td>test</td> 
 
    <td>test</td> 
 
    </tr> 
 
    <tr> 
 
    <td>test</td> 
 
    <td></td> 
 
    <td>test</td> 
 
    </tr> 
 
    <tr> 
 
    <td>test</td> 
 
    <td></td> 
 
    <td>test</td> 
 
    </tr> 
 
    <tr> 
 
    <td>test</td> 
 
    <td></td> 
 
    <td /> 
 
    </tr> 
 
</table>

+0

मुझे यकीन नहीं है कि यह स्वीकार्य उत्तर होना चाहिए, क्योंकि पोस्टर बताता है, इसके अन्य दुष्प्रभाव हैं, जो अवांछनीय हो सकते हैं। यह भी सच नहीं है, कम से कम जहां तक ​​मैं सत्यापित कर सकता हूं। क्या आप एक कामकाजी उदाहरण के लिए एक लिंक पोस्ट कर सकते हैं? –

+0

मैंने एक उदाहरण HTML दस्तावेज़ जोड़ा है जो सीमा को रिक्त कक्षों पर भी दिखाता है। आईई 7, एफएक्स 3 और नवीनतम सफारी में परीक्षण किया गया। सीमा-पतन का मुख्य दुष्प्रभाव यह है कि आप दोहरी सीमाएं नहीं देख सकते जो सभ्य दिखते हैं। इसके अलावा, गायब कोशिकाओं को स्टाइल नहीं किया जा सकता है इससे कोई फर्क नहीं पड़ता कि आप कितनी मेहनत करते हैं – rpetrich

+1

आईई 6 में भी काम करता है। –

0

"आईई" नहीं इस संदर्भ में एक उपयोगी अवधि अब और अब है कि IE8 बाहर है।

आईई 7 हमेशा "रिक्त-कक्ष: शो" करता है (या तो मुझे बताया गया है ... Vista)। आईई 8 इसके किसी भी "क्विर्क" या "आई 7 मानक" मोड में हमेशा "रिक्त-कक्ष: छुपाएं" करता है। "मानक" मोड में IE8 "रिक्त-कक्ष: शो" पर डिफ़ॉल्ट होता है और सीएसएस के माध्यम से विशेषता का समर्थन करता है।

जहां तक ​​मुझे पता है, हर दूसरे ब्राउज़र ने कई वर्षों से इसका सही ढंग से समर्थन किया है (मुझे पता है कि यह फ़ायरफ़ॉक्स 2 में जोड़ा गया था)।

44

सुनिश्चित करने का एक और तरीका सभी कोशिकाओं में डेटा है:

$(document).ready(function() { 
     $("td:empty").html("&nbsp;"); 
    }); 
+5

यह अच्छी तरह से काम करता है क्योंकि आप इसे सशर्त टिप्पणियों के माध्यम से शामिल करने के लिए अलग "ie.js" फ़ाइल में रख सकते हैं। मेरे मामले में मैं एक आईई डिस्प्ले बग के लिए अपना बैकएंड बदलना नहीं चाहता था। –

+0

धन्यवाद, आपने मुझे वहां दो सौ सशर्त बयान बचाए हैं :) –

+3

' ' '  ;' –

0

मैं एक वेबसाइट से यह ले जा रहा हूँ, लेकिन: मेज और टीडी तत्व के लिए सीएसएस के लिए

.sampletable { 
border-collapse: collapse;} 

.sampleTD { 
empty-cells: show;} 

उपयोग क्रमशः।

1

खाली सेल केवल फ़ायरफ़ॉक्स तय (हाँ मैं वास्तव में फ़ायरफ़ॉक्स में इस मुद्दे था) IE 7 & 8 अभी भी संदिग्ध पाए गए ..

यह दोनों Firefox 3.6 में मेरे लिए काम किया।एक्स, IE 7 & 8, क्रोम, और सफारी:

==============================

table { 
*border-collapse: collapse;} 

.sampleTD { 
empty-cells: show;} 

==============================

* सुनिश्चित करें कि तालिका शैली ही था बनाने के लिए उपयोग करने के लिए था आईई ब्राउज़र पर लागू।

+0

सीएसएस हैक का उपयोग करके अप्रत्याशित परिणाम हो सकते हैं इसलिए सावधान रहें। एक और तरीका सशर्त सीएसएस का उपयोग करना है। – span

24

सवाल एक सीएसएस समाधान के लिए कहा है, लेकिन बंद का मौका एक HTML समाधान करना होगा पर, यहाँ एक है:

तालिका तत्व करने के लिए इन दो विशेषताओं जोड़ने का प्रयास करें: फ्रेम = "बॉक्स" नियम = "सभी" इस तरह:

<table border="1" cellspacing="0" frame="box" rules="all"> 
+2

सही! आकर्षण की तरह काम करता है! – Nerrve

+2

यह सही उत्तर – Stephan

+1

हम्म है। यदि रिक्त कक्ष खाली नहीं हैं तो वे काम नहीं करते हैं क्योंकि वे मौजूद नहीं हैं ... (उदाहरण के लिए 10 टीडी कोशिकाओं के साथ एक tr निर्दिष्ट करना लेकिन अन्य trs में 100 या 1000 टीडी कोशिकाएं हैं) – Michael

4

इस सवाल के पुराने, लेकिन अभी भी एक शीर्ष गूगल में परिणाम है, इसलिए मैं जोड़ देंगे कि मैं क्या पाया है:

सीधे शब्दों में मेज पर border-collapse: collapse जोड़ने शैली ने आईई 7 में मेरे लिए इस समस्या को ठीक किया (और जिस तरह से वे एफएफ, क्रोम, आदि में प्रदर्शित होते हैं) को प्रभावित नहीं करते थे।

जब आप सीएसएस के साथ ठीक कर सकते हैं तो &nbsp; या अन्य स्पेसिंग तत्व जोड़ने के अतिरिक्त कोड से बचने के लिए सर्वश्रेष्ठ।

9

मैं इस प्रश्न में हुआ और मैंने कोई जवाब नहीं देखा जो वास्तव में इस मुद्दे को संबोधित करता था।

समस्या का परिणाम क्योंकि आईई 7 सेल के लिए कोई आंतरिक सामग्री नहीं देखता है; प्रोग्रामिंग शब्दों में सेल को null के रूप में परिणाम दिया जाता है और अधिकांश चीजों की तरह, आप null पर सीमा नहीं लगा सकते हैं या उस पर कोई कार्रवाई नहीं कर सकते हैं। सीमा/लेआउट लागू करने के लिए ब्राउजर को एक तत्व/ऑब्जेक्ट की आवश्यकता होती है जिसमें एक लेआउट होता है।

यहां तक ​​कि खाली <div></div> या <span></span> सामग्री नहीं होनी चाहिए, इस प्रकार वहाँ, रेंडर करने के लिए फिर से कि null मामले में जिसके परिणामस्वरूप कुछ नहीं है।

हालांकि, आप खाली div/span लेआउट गुण देकर, सेल की सामग्री को सोचने में ब्राउज़र को चालित कर सकते हैं। सबसे आसान तरीका सीएसएस शैली zoom:1 लागू करना है। के बाद से यह नहीं अनावश्यक रूप से गंदगी स्क्रीन रीडर्स करता है, और सेल का मान गलत ढंग से प्रस्तुत नहीं किया गया है

<table> 
    <tr><td>Foo</td> 
     <td><span style="zoom:1;"></span></td></tr> 
</table> 

इस तरीके को एक &nbsp; का उपयोग कर की तुलना में बेहतर है। नए ब्राउज़र में आप empty-cell:<show|hide> विकल्प का उपयोग कर सकते हैं।


नोट: Tomalak की टिप्पणी के एवज में, यह समझा जाना चाहिए hasLayout null कोई लेना देना नहीं है, यह महज कैसे ब्राउज़र सूचना का आदान प्रदान और hasLayout renders की तुलना था इसी तरह कैसे एक डेटाबेस के लिए या प्रोग्रामिंग भाषा नल के साथ बातचीत करता है। यह एक छिद्र है, लेकिन मैंने सोचा कि उन प्रोग्रामर के लिए वेब डिजाइनर बनने के लिए समझना आसान हो सकता है।

+1

+1 दिलचस्प। हालांकि मैं पूरी तरह से आपके 'शून्य' समानता से आश्वस्त नहीं हूं। –

+0

@ टोमालक: यह सबसे नज़दीकी तुलना थी जो मैं कर सकता था। यदि कोई तत्व/ऑब्जेक्ट्स लेआउट नहीं है तो ब्राउजर (आईई) उन्हें अलग-अलग व्यवहार करता है और प्रतिपादन करते समय उन्हें और उनके माता-पिता को बहुत सी दृश्य सेटिंग्स लागू नहीं करता है।हालांकि समानार्थी नहीं है, मैंने तुलनात्मक रूप से तुलना का उपयोग किया क्योंकि स्टैक ओवरफ़्लो अवधारणात्मक रूप से क्यू एंड ए प्रोग्रामिंग के लिए एक मंच था, जरूरी नहीं कि वेब डिज़ाइन डिबगिंग - यह तब से उगाया गया है :) आपके पास आश्वस्त होने का हर अधिकार नहीं है! – vol7ron

+0

मैंने वें का परीक्षण किया {सीमा-तल: 1 पीएक्स ठोस लाल; ज़ूम: 1;} आईई 7 में और यह मदद नहीं करता है। सीमा-तल प्रकट नहीं होता है .... – nerdess

1

इस प्रयास करें यदि आप गैर-भंगुर अंतरिक्ष का उपयोग नहीं कर सकते हैं:

var tn = document.createTextNode('\ '); 
yourContainer.appendChild(ta); 
1

मैं एक div शैली अपने सेल की पृष्ठभूमि के रूप में एक ही फ़ॉन्ट रंग है कि बना सकते हैं और कुछ भी लिखना (आमतौर पर एक "-" सेल सामग्री देने के लिए "एन/ए" या "खाली")। यह दिखाता है कि यदि आप पृष्ठ को हाइलाइट करते हैं, लेकिन जब सामान्य रूप से देखा जाता है तो यह दिखता है कि आप कैसे चाहते हैं।

+0

यह 13 अन्य उत्तरों में कैसे सुधार/जोड़ता है? –

1

मैं HTML और सीएसएस के मिश्रण का इस्तेमाल पार ब्राउज़र तालिका ग्रिड बनाने के लिए:

एचटीएमएल

<table cellspacing="1" style="background-color:#000;" border="0">

सीएसएस

td{background-color:#fff;} 

मैं किसी के साथ किसी भी मुद्दे नहीं देखा है अब तक ब्राउज़रों।

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