मैं ट्विटर बूटस्ट्रैप का उपयोग कर रहा हूं, और एक पंक्ति है जिसमें दो कॉलम हैं (स्पैन 6)। मैं दोनों स्पैन के बीच एक ऊर्ध्वाधर विभक्त कैसे बनाऊं।
धन्यवाद, मुर्तजा
मैं ट्विटर बूटस्ट्रैप का उपयोग कर रहा हूं, और एक पंक्ति है जिसमें दो कॉलम हैं (स्पैन 6)। मैं दोनों स्पैन के बीच एक ऊर्ध्वाधर विभक्त कैसे बनाऊं।
धन्यवाद, मुर्तजा
जवाबों:
यदि आपका कोड इस तरह दिखता है:
<div class="row">
<div class="span6">
</div>
<div class="span6">
</div>
</div>
तब मुझे लगता है कि आप अपनी सामग्री को रखने / स्टाइल करने के लिए "स्पैन 6" के भीतर अतिरिक्त डीआईवीएस का उपयोग कर रहे हैं? इसलिए...
<div class="row">
<div class="span6">
<div class="mycontent-left">
</div>
</div>
<div class="span6">
<div class="mycontent-right">
</div>
</div>
</div>
तो आप अपने विभक्त बनाने के लिए बस कुछ सीएसएस को "mycontent-left" वर्ग में जोड़ सकते हैं।
.mycontent-left {
border-right: 1px dashed #333;
}
<span>अधिक है। उस स्थिति में, ऊर्ध्वाधर रेखा बदसूरत होगी।
min-height: 100%; height: 100%;कंटेनर के लिए सीएसएस में divऔर divरों प्रत्येक स्तंभ हैं।
col-*divs पर फ्लोट्स का उपयोग कर रहे हैं , तो यह काम नहीं करेगा।
.row.vertical-divider {
overflow: hidden;
}
.row.vertical-divider > div[class^="col-"] {
text-align: center;
padding-bottom: 100px;
margin-bottom: -100px;
border-left: 3px solid #F2F7F9;
border-right: 3px solid #F2F7F9;
}
.row.vertical-divider div[class^="col-"]:first-child {
border-left: none;
}
.row.vertical-divider div[class^="col-"]:last-child {
border-right: none;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet" />
<div class="row vertical-divider" style="margin-top: 30px">
<div class="col-xs-6">Hi there</div>
<div class="col-xs-6">Hi world<br/>hi world</div>
</div>
.row.vertical-divider div[class^="col-"] + div[class^="col-"] { text-align: center; padding-bottom: 100px; margin-bottom: -100px; border-left: 3px solid #0396D1; }
यहाँ एक और विकल्प है जो मैं पिछले कुछ समय से उपयोग कर रहा हूँ। यह मेरे लिए बहुत अच्छा काम करता है क्योंकि मुझे ज्यादातर 2 अलग-अलग कॉलोनों की जरूरत होती है। और यह उत्तरदायी भी है। जिसका अर्थ है कि यदि मेरे पास मध्यम और बड़े स्क्रीन आकारों में एक-दूसरे के बगल में कॉलम हैं, तो मैं कक्षा का उपयोग करूंगा col-md-border, जो छोटे स्क्रीन आकारों पर विभाजक को छिपाएगा।
सीएसएस:
@media (min-width: 992px) {
.col-md-border:not(:last-child) {
border-right: 1px solid #d7d7d7;
}
.col-md-border + .col-md-border {
border-left: 1px solid #d7d7d7;
margin-left: -1px;
}
}
Scss में आप शायद इससे सभी आवश्यक कक्षाएं उत्पन्न कर सकते हैं:
एससीएसएस:
@media(min-width: $screen-md-min) {
.col-md-border {
&:not(:last-child) {
border-right: 1px solid #d7d7d7;
}
& + .col-md-border {
border-left: 1px solid #d7d7d7;
margin-left: -1px;
}
}
}
HTML:
<div class="row">
<div class="col-md-6 col-md-border"></div>
<div class="col-md-6 col-md-border"></div>
</div>
यह काम किस प्रकार करता है:
कर्नल एक ऐसे तत्व के अंदर होना चाहिए जहां कोई अन्य बछड़े नहीं हैं अन्यथा चयनकर्ता अपेक्षा के अनुरूप काम नहीं कर सकते हैं।
.col-md-border:not(:last-child)मेल खाता है, लेकिन अंतिम तत्व से पहले .row करीब है और इसे सही सीमा जोड़ता है।
.col-md-border + .col-md-borderयदि ये दोनों एक दूसरे के बगल में हों और बाएं बॉर्डर और -1px नेगेटिव मार्जिन जोड़ते हैं तो एक ही क्लास के साथ दूसरी डीवाई से मेल खाता है। नकारात्मक मार्जिन यही है कि इससे कोई फर्क नहीं पड़ता कि किस कॉलम की ऊंचाई अधिक है और विभाजक 1px उच्चतम कॉलम वाला ऊंचाई होगा।
इसमें कुछ समस्याएं भी हैं ...
col-XX-Xऔर एक ही पंक्ति तत्व के अंदर hidden-XX/ visible-XXवर्गों के साथ मिलकर कक्षा का उपयोग करते हैं ।... लेकिन दूसरी ओर यह उत्तरदायी है, सरल HTML के लिए बहुत अच्छा काम करता है और सभी बूटस्ट्रैप स्क्रीन आकारों के लिए इन कक्षाओं को बनाना आसान है।
एक कॉलम की सामग्री लम्बे होने पर डिवाइडर के बदसूरत रूप को ठीक करने के लिए, सभी कॉलम में बॉर्डर जोड़ें। हर दूसरे कॉलम को स्थिति के अंतर की भरपाई के लिए एक नकारात्मक मार्जिन दें।
उदाहरण के लिए, मेरे तीन स्तंभ वर्ग:
.border-right {
border-right: 1px solid #ddd;
}
.borders {
border-left: 1px solid #ddd;
border-right: 1px solid #ddd;
margin: -1px;
}
.border-left {
border-left: 1px solid #ddd;
}
और HTML:
<div class="col-sm-4 border-right">First</div>
<div class="col-sm-4 borders">Second</div>
<div class="col-sm-4 border-left">Third</div>
यदि आप बूटस्ट्रैप के क्षैतिज डिवाइडर के समान रंग चाहते हैं, तो आप #ddd का उपयोग करना सुनिश्चित करें।
यदि आप अभी भी 2018 में सर्वश्रेष्ठ समाधान की तलाश कर रहे हैं, तो मैंने पाया कि यह पूरी तरह से काम करता है यदि आपके पास कम से कम एक मुफ्त छद्म तत्व है (:: बाद या पहले ::)।
आपको बस अपनी पंक्ति में इस तरह वर्ग जोड़ना होगा: <div class="row ऊर्ध्वाधर-विभक्त ">
और इसे अपने CSS में जोड़ें:
.row.vertical-divider [class*='col-']:not(:last-child)::after {
background: #e0e0e0;
width: 1px;
content: "";
display:block;
position: absolute;
top:0;
bottom: 0;
right: 0;
min-height: 70px;
}
इस वर्ग के साथ कोई भी पंक्ति अब सभी स्तंभों के बीच लंबवत विभक्त होगी, जिसमें यह शामिल है ...
यदि आप 2 कॉलमों के बीच एक ऊर्ध्वाधर विभक्त चाहते हैं, तो आपको बस जरूरत है ऐड की
class="col-6 border-left"
आपका एक कॉलम div-s
परंतु
उत्तरदायी डिजाइन की दुनिया में, आपको इसे कभी-कभी गायब करने की आवश्यकता हो सकती है।
समाधान है गायब <hr>+ गायब <div>+margin-left: -1px;
<div class="container">
<div class="row">
<div class="col-md-7">
1 of 2
</div>
<div class="border-left d-sm-none d-md-block" style="width: 0px;"></div>
<div class="col-md-5" style="margin-left: -1px;">
<hr class="d-sm-block d-md-none">
2 of 2
</div>
</div>
</div>
https://jsfiddle.net/8z1pag7s/
बूटस्ट्रैप 4.1 पर परीक्षण किया गया
मैंने इसका परीक्षण किया है। यह बढ़िया काम करता है।
.row.vdivide [class*='col-']:not(:last-child):after {
background: #e0e0e0;
width: 1px;
content: "";
display:block;
position: absolute;
top:0;
bottom: 0;
right: 0;
min-height: 70px;
}
<div class="container">
<div class="row vdivide">
<div class="col-sm-3 text-center"><h1>One</h1></div>
<div class="col-sm-3 text-center"><h1>Two</h1></div>
<div class="col-sm-3 text-center"><h1>Three</h1></div>
<div class="col-sm-3 text-center"><h1>Four</h1></div>
</div>
</div>
बूटस्ट्रैप 4 के साथ आप अन्य सीएसएस लिखने से बचते हुए सीमाओं का उपयोग कर सकते हैं ।
बॉर्डर-बायां
और यदि आप सामग्री और सीमा के बीच स्थान चाहते हैं तो आप पैडिंग का उपयोग कर सकते हैं । (इस उदाहरण में पैडिंग 4px शेष है)
pl-4
उदाहरण:
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet"/>
<div class="row">
<div class="offset-6 border-left pl-4">First</div>
<div class="offset-6 border-left pl-4">Second</div>
</div>
सीएसएस में मीडिया की चौड़ाई को जोड़ा गया है ताकि चीजों के मोबाइल के अनुकूल पक्ष पर कोई बुरा सीमा न हो। उम्मीद है की यह मदद करेगा! यह सबसे लंबे कॉलम की लंबाई के अनुरूप होगा। .Col-md-4 और .col-md-6 पर परीक्षण किया गया है और मेरी धारणा बाकी के साथ संगत है। हालांकि कोई गारंटी नहीं।
.row {
overflow: hidden;
}
.cols {
padding-bottom: 100%;
margin-bottom: -100%;
overflow: hidden;
}
@media(min-width: 992px) {
.col-md-4:not(:first-child),
.col-md-6:not(:first-child) {
border-left: 1px solid black;
}
.col-md-4:not(:last-child),
.col-md-6:not(:last-child) {
border-right: 1px solid black;
margin-right: -1px;
}
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container">
<h1>
.col-md-6
</h1>
<hr>
<div class="row text-center">
<div class="col-md-6 cols">
<p>Enter some text here</p>
</div>
<div class="col-md-6 cols">
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
</div>
</div>
<hr>
<h1>
.col-md-4
</h1>
<div class="row text-center">
<div class="col-md-4 cols">
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
</div>
<div class="col-md-4 cols">
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
</div>
<div class="cols col-md-4 cols">
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
<p>Enter some more text here</p>
</div>
</div>
</div>
खैर मैंने जो किया वह संबंधित स्पैनों के बीच की नाली को हटा दिया गया और फिर बाएं स्पैन के लिए एक बॉर्डर और दाएं बॉर्डर को इस तरह से खींचा कि उनकी सीमाएं केवल एक लाइन देने के लिए ओवरलैप हो गईं। इस तरह दिखाई देने वाली रेखा सिर्फ सीमाओं में से एक होगी।
सीएसएस
.leftspan
{
padding-right:20px;
border-right: 1px solid #ccc;
}
.row-fluid .rightspan {
margin-left: -0.138297872340425%;
*margin-left: -0.13191489361702%;
padding-left:20px;
border-left: 1px solid #ccc;
}
.row-fluid .rightspan:first-child {
margin-left: -0.11063829787234%;
*margin-left: -0.104255319148938%;
}
एचटीएमएल
<div class="row-fluid" >
<div class="span8 leftspan" >
</div>
<div class="span4 rightspan" >
</div>
</div>
यह कोशिश करो यह मेरे लिए काम करता है