मेरे यहाँ दो विभाग हैं:
<div style="display:table-cell" id="div1">
content
</div>
<div style="display:table-cell" id="div2">
content
</div>
क्या इन दोनों डिवो (जो है display:table-cell
) के बीच जगह बनाने का एक तरीका है ?
मेरे यहाँ दो विभाग हैं:
<div style="display:table-cell" id="div1">
content
</div>
<div style="display:table-cell" id="div2">
content
</div>
क्या इन दोनों डिवो (जो है display:table-cell
) के बीच जगह बनाने का एक तरीका है ?
जवाबों:
आप border-spacing
संपत्ति का उपयोग कर सकते हैं:
HTML:
<div class="table">
<div class="row">
<div class="cell">Cell 1</div>
<div class="cell">Cell 2</div>
</div>
</div>
सीएसएस:
.table {
display: table;
border-collapse: separate;
border-spacing: 10px;
}
.row { display:table-row; }
.cell {
display:table-cell;
padding:5px;
background-color: gold;
}
कोई अन्य विकल्प?
खैर , वास्तव में नहीं।
क्यों?
margin
संपत्ति लागू नहीं है करने के लिए display: table-cell
तत्वों।padding
संपत्ति कोशिकाओं के किनारों के बीच जगह नहीं बनाती है।float
संपत्ति उन table-cell
तत्वों के अपेक्षित व्यवहार को नष्ट कर देती है जो उनके मूल तत्व के समान लंबे होने में सक्षम हैं।position: relative
पर table-*-group
, table-row
, table-column
, table-cell
, और table-caption
तत्वों अपरिभाषित है।
border-right: 10px solid #FFF
। जब मैंने table-cell
तत्वों के बीच कुछ स्थान चाहा तो सीएसएस ड्रॉपडाउन मेनू को डिजाइन करते समय मेरे लिए यह अच्छा रहा ।
यदि संभव हो तो पारदर्शी सीमाओं का उपयोग करें।
https://jsfiddle.net/74q3na62/
एचटीएमएल
<div class="table">
<div class="row">
<div class="cell">Cell 1</div>
<div class="cell">Cell 2</div>
<div class="cell">Cell 3</div>
</div>
</div>
सीएसएस
.table {
display: table;
border: 1px solid black;
}
.row { display:table-row; }
.cell {
display: table-cell;
background-clip: padding-box;
background-color: gold;
border-right: 10px solid transparent;
}
.cell:last-child {
border-right: 0 none;
}
आप border-spacing
संपत्ति का उपयोग कर सकते हैं, जैसा कि स्वीकार किए गए उत्तर से पता चलता है, लेकिन यह न केवल तालिका कोशिकाओं के बीच बल्कि टेबल कोशिकाओं और टेबल कंटेनर के बीच जगह भी उत्पन्न करता है। यह अवांछित हो सकता है।
यदि आपको अपनी टेबल कोशिकाओं पर दृश्यमान सीमाओं की आवश्यकता नहीं है, तो आपको transparent
सेल मार्जिन उत्पन्न करने के लिए सीमाओं का उपयोग करना चाहिए । पारदर्शी सीमाओं को स्थापित करने की आवश्यकता होती है background-clip: padding-box;
क्योंकि अन्यथा सीमा पर तालिका कोशिकाओं की पृष्ठभूमि का रंग प्रदर्शित होता है।
IE9 ऊपर (और सभी अन्य आधुनिक ब्राउज़रों) में पारदर्शी सीमाओं और पृष्ठभूमि-क्लिप का समर्थन किया जाता है। यदि आपको IE8 संगतता की आवश्यकता है या वास्तविक पारदर्शी स्थान की आवश्यकता नहीं है, तो आप बस एक सफेद सीमा रंग सेट कर सकते हैं और background-clip
बाहर छोड़ सकते हैं।
<div style="display:table;width:100%" >
<div style="display:table-cell;width:49%" id="div1">
content
</div>
<!-- space between divs - display table-cell -->
<div style="display:table-cell;width:1%" id="separated"></div>
<!-- //space between divs - display table-cell -->
<div style="display:table-cell;width:50%" id="div2">
content
</div>
</div>
ठीक है, ऊपर काम करता है, यहां मेरा समाधान है जिसे थोड़ा कम मार्कअप की आवश्यकता है और अधिक लचीला है।
.cells {
display: inline-block;
float: left;
padding: 1px;
}
.cells>.content {
background: #EEE;
display: table-cell;
float: left;
padding: 3px;
vertical-align: middle;
}
<div id="div1" class="cells"><div class="content">My Cell 1</div></div>
<div id="div2" class="cells"><div class="content">My Cell 2</div></div>
जो भी नाम हो (मैं सिर्फ टेबल-स्प्लिट का उपयोग करूंगा) के साथ एक नया डिव बनाऊंगा और इसे आवश्यक सामग्री के बीच अलग करते हुए, इसमें सामग्री को जोड़े बिना एक चौड़ाई दे दूंगा।
आप जो भी चौड़ाई आवश्यक है, उसे जोड़ सकते हैं। मैंने सिर्फ 0.6% का उपयोग किया, क्योंकि जब मुझे ऐसा करना था, तो मुझे इसकी आवश्यकता थी।
.table-split {
display: table-cell;
width: 0.6%
}
<div class="table-split"></div>
position: relative
।