प्रश्न बहुत छोटा नहीं है, लेकिन समझना आसान है।टेबल पर नकारात्मक मार्जिन के साथ अजीब चीजें
यहाँ jsFiddle
है मुझे लगता है कि जैसे दो नेस्टेड तालिकाओं है,:
<table class="outer">
<tr>
<td></td>
<td>
<table class="inner">
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</table>
</td>
<td></td>
</tr>
</table>
<style>
table, tr, td {
border: 1px solid black;
border-collapse: collapse;
}
table {
width: 100%;
}
.outer {
height: 100px;
}
.inner {
background-color: #ccc;
height: 50px;
}
</style>
1 अजीब बात
:
यहाँ मार्कअप है फिर, मैं एक नकारात्मक घोड़ा जोड़ना चाहता हूँ भीतरी मेज पर izontal मार्जिन:
.inner {
margin: 0 -10%;
}
उम्मीद उत्पादन कुछ इस तरह है:
लेकिन बजाय, मैं इस मिल:
समस्या हो सकती है div में आंतरिक तालिका रखकर हल किया जाना चाहिए:
<!-- outer table -->
<div class="wrapper">
<table class="inner-wrapped">
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</table>
</div>
<!-- outer table -->
<style>
.wrapper {
margin: 0 -10%;
}
.inner-wrapped {
background-color: rgb(0,200,0);
height: 50px;
}
</style>
2 अजीब बात
मैं नकारात्मक horizonal मार्जिन -10px सेट करते हैं (पहले हम percents, नहीं पिक्सेल का उपयोग), तो अतिरिक्त में उस तालिका केवल बाईं ओर (जैसे पहले मामले में) ले जाता है, यह sigifically चौड़ाई में कम कर देता है:
.inner {
margin: 0 -10px;
}
सवाल
यह दोनों चीजें क्यों होती हैं?
इसे हल करने का कोई तरीका क्या है? क्या यह केवल एक रैपर का उपयोग करने के लिए एक अच्छा अभ्यास है, जैसा कि मैं करता हूं, या मुझे एक और अधिक चालाक तरीका का उपयोग करना चाहिए?
क्रोम निरीक्षक पर से बढ़ने नेस्ट बॉक्स को देखो, अगर। (सफेद नारंगी और हरा) जो चौड़ाई, पैडिंग और मार्जिन का वर्णन करता है और यह अधिक समझ में आता है – Ibu
क्योंकि ['टेबल लेआउट: ऑटो'] (https://www.w3.org/TR/CSS21/tables।एचटीएमएल # ऑटो-टेबल-लेआउट) spec द्वारा पूरी तरह से परिभाषित नहीं है, यह कार्यान्वयन-निर्भर है। ब्राउज़र सामग्री को ध्यान में रखने का प्रयास करते हैं, लेकिन आपके मामले में यह बहुत सारी परिपत्र परिभाषाओं का कारण बनता है। परिणाम पर भरोसा मत करो। यदि आप एक अच्छी तरह से परिभाषित एल्गोरिदम चाहते हैं तो आप ['table-layout: fixed'] (https://www.w3.org/TR/CSS21/tables.html#fixed-table-layout) आज़मा सकते हैं। – Oriol
@Oriol धन्यवाद, दिलचस्प –