मैं का उपयोग करने का प्रयास करते हैं position: relative
/ position: absolute
एक पर <th>
या <td>
Firefox में यह काम करने के लिए प्रतीत नहीं होता।
मैं का उपयोग करने का प्रयास करते हैं position: relative
/ position: absolute
एक पर <th>
या <td>
Firefox में यह काम करने के लिए प्रतीत नहीं होता।
जवाबों:
आसान और सबसे उचित तरीका यह होगा कि कोशिका की सामग्री को एक div में लपेटें और उस स्थिति को जोड़े: जो उस div के सापेक्ष है।
उदाहरण:
<td>
<div style="position:relative">
This will be positioned normally
<div style="position:absolute; top:5px; left:5px;">
This will be positioned at 5,5 relative to the cell
</div>
</div>
</td>
tr {display:block}
लेआउट का पूरी तरह से उपयोग करना ।
display: block
जटिल टेबल लेआउट पर एक तय करने के लिए पर्याप्त नहीं है। अतिरिक्त div समाधान है जो अधिक विश्वसनीय है।
यह कोई समस्या नहीं होनी चाहिए। सेट करने के लिए भी याद रखें:
display: block;
position
तालिका सेल पर सेट करना , परिभाषा के अनुसार, तालिका स्वरूपण को गंभीरता से बदलना है। आप सेल के ब्लॉक को प्रवाह से बाहर ले जाते हैं (इसके अलावा position: relative
, जहां यह प्रवाह में रहता है लेकिन इससे ऑफसेट होता है)।
display: block
फ़ायरफ़ॉक्स में भी मुद्दों का कारण बन सकता है - अर्थात् यदि तालिका सेल स्तंभों को फैला रहा है, तो इसे ब्लॉक करने के लिए सेटिंग पहले स्तंभ के नीचे सेल को ध्वस्त कर देगी।
चूंकि इंटरनेट एक्सप्लोरर 7, 8 और 9 सहित हर वेब ब्राउज़र सही ढंग से स्थिति को संभालता है: टेबल-डिस्प्ले तत्व के सापेक्ष और केवल फायरफॉक्स इसे गलत तरीके से संभालता है, आपका सबसे अच्छा शर्त एक जावास्क्रिप्ट शिम का उपयोग करना है। आपको अपने DOM को सिर्फ एक दोषपूर्ण ब्राउज़र के लिए पुनर्व्यवस्थित नहीं करना चाहिए। जब लोग IE कुछ गलत हो जाता है और अन्य सभी ब्राउज़रों इसे सही मिलता है जावास्क्रिप्ट का उपयोग लोग हर समय करते हैं।
यहाँ सभी HTML, CSS और जावास्क्रिप्ट के साथ पूरी तरह से एनोटेटिड jsfiddle है।
http://jsfiddle.net/mrbinky3000/MfWuV/33/
ऊपर मेरा jsfiddle उदाहरण "उत्तरदायी वेब डिज़ाइन" तकनीकों का उपयोग केवल यह दिखाने के लिए करता है कि यह उत्तरदायी लेआउट के साथ काम करेगा। हालाँकि, आपके कोड को उत्तरदायी नहीं होना चाहिए।
यहाँ नीचे जावास्क्रिप्ट है, लेकिन यह संदर्भ से बहुत अधिक समझ में नहीं आएगा। कृपया ऊपर दिए गए jsfiddle लिंक को देखें।
$(function() {
// FireFox Shim
// FireFox is the *only* browser that doesn't support position:relative for
// block elements with display set to "table-cell." Use javascript to add
// an inner div to that block and set the width and height via script.
if ($.browser.mozilla) {
// wrap the insides of the "table cell"
$('#test').wrapInner('<div class="ffpad"></div>');
function ffpad() {
var $ffpad = $('.ffpad'),
$parent = $('.ffpad').parent(),
w, h;
// remove any height that we gave ffpad so the browser can adjust size naturally.
$ffpad.height(0);
// Only do stuff if the immediate parent has a display of "table-cell". We do this to
// play nicely with responsive design.
if ($parent.css('display') == 'table-cell') {
// include any padding, border, margin of the parent
h = $parent.outerHeight();
// set the height of our ffpad div
$ffpad.height(h);
}
}
// be nice to fluid / responsive designs
$(window).on('resize', function() {
ffpad();
});
// called only on first page load
ffpad();
}
});
फ़ायरफ़ॉक्स 30 के साथ शुरू, आप position
टेबल घटकों पर उपयोग कर पाएंगे । आप वर्तमान नाइट बिल्ड (स्टैंडअलोन के रूप में काम करता है) के साथ अपने लिए प्रयास कर सकते हैं: http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/
परीक्षण का मामला ( http://jsfiddle.net/acbabis/hpWZk/ ):
<table>
<tbody>
<tr>
<td style="width: 100px; height: 100px; background-color: red; position: relative">
<div style="width: 10px; height: 10px; background-color: green; position: absolute; top: 10px; right: 10px"></div>
</td>
</tr>
</tbody>
<table>
आप यहाँ परिवर्तनों की डेवलपर्स चर्चा का अनुसरण करना जारी रख सकते हैं (विषय 13 वर्ष पुराना है): https://bugzilla.mozilla.org/show_bug.cgi?id=63895
हालिया रिलीज इतिहास को देखते हुए , यह मई 2014 तक उपलब्ध हो सकता है। मैं मुश्किल से अपनी उत्तेजना को शामिल कर सकता हूं!
EDIT (6/10/14): फ़ायरफ़ॉक्स 30 आज जारी किया गया था। जल्द ही, मेज की स्थिति प्रमुख डेस्कटॉप ब्राउज़रों में एक समस्या नहीं होगी
फ़ायरफ़ॉक्स 3.6.13 के अनुसार, स्थिति: सापेक्ष / निरपेक्ष तालिका तत्वों पर काम नहीं करती है। यह लंबे समय से फ़ायरफ़ॉक्स व्यवहार प्रतीत होता है। निम्नलिखित देखें: http://csscreator.com/node/31771
CSS Creator लिंक निम्नलिखित W3C संदर्भ पोस्ट करता है:
टेबल-पंक्ति-समूह, टेबल-हेडर-ग्रुप, टेबल-पाद-समूह, टेबल-पंक्ति, टेबल-कॉलम-समूह, टेबल-कॉलम, टेबल-सेल और टेबल-कैप्शन तत्वों पर 'स्थिति: सापेक्ष' का प्रभाव अपरिभाषित है। http://www.w3.org/TR/CSS21/visuren.html#positioning-scheme
display
सेटिंग बदल दें । जो समझ में आता है (डिग्री सीएसएस समझ में आता है)।
display:inline-block
फ़ायरफ़ॉक्स 11 में मेरे लिए काम करने की कोशिश करें मुझे टेबल के लेआउट को नष्ट किए बिना td / th के भीतर स्थिति निर्धारण की क्षमता प्रदान करें। position:relative
चीजों को काम करने के लिए td / th के साथ मिलकर काम करना चाहिए। बस इसे खुद काम करना पड़ा।
मेरे पास एक table-cell
तत्व था (जो वास्तव में एक DIV
नहीं थाTD
)
मैंने प्रतिस्थापित किया
display: table-cell;
position: relative;
left: .5em
(जो क्रोम में काम करता है) के साथ
display: table-cell;
padding-left: .5em
बेशक बॉक्सिंग मॉडल में चौड़ाई के लिए पैडिंग को जोड़ा जाता है - लेकिन जब हमेशा पूर्ण चौड़ाई की बात आती है, तो टेबल को हमेशा अपना दिमाग लगता है - इसलिए यह कुछ मामलों के लिए काम करेगा।
प्रदर्शन जोड़ना: मूल तत्व को ब्लॉक करना यह फ़ायरफ़ॉक्स में काम कर रहा है। मुझे भी शीर्ष जोड़ना था: 0px; बाएं: 0px; Chrome के लिए मूल तत्व काम करने के लिए। IE7, IE8, और IE9 भी काम कर रहे हैं।
<td style="position:relative; top:0px; left:0px; display:block;">
<table>
// A table of information here.
// Next line is the child element I want to overlay on top of this table
<tr><td style="position:absolute; top:5px; left:100px;">
//child element info
</td></tr>
</table>
</td>
स्वीकृत समाधान प्रकार काम करता है, लेकिन यदि आप दूसरे कॉलम की तुलना में इसमें अधिक सामग्री के साथ कोई अन्य स्तंभ नहीं जोड़ते हैं। यदि आप height:100%
अपने tr , td & div में जोड़ते हैं तो यह काम करना चाहिए।
<tr style="height:100%">
<td style="height:100%">
<div style="position:relative; height:100%">
This will be positioned normally
<div style="position:absolute; top:5px; left:5px;">
This will be positioned at 5,5 relative to the cell
</div>
</div>
</td>
</tr>
एकमात्र समस्या यह है कि यह केवल एफएफ में कॉलम ऊंचाई की समस्या को ठीक करता है, क्रोम और आईई में नहीं। तो यह एक कदम करीब है, लेकिन सही नहीं है।
मैंने जनवरी से एक फिडेल को अद्यतन किया जो काम करने के लिए स्वीकृत उत्तर के साथ काम नहीं कर रहा था। http://jsfiddle.net/gvcLoz20/