ฉันมีปัญหาที่คล้ายกันกับช่องว่างระหว่างคอลัมน์ ปัญหารากคือคอลัมน์ใน bootstrap 3 และ 4 ใช้การเติมเต็มแทนการเว้นระยะ ดังนั้นสีพื้นหลังสำหรับคอลัมน์ที่อยู่ติดกันสองอันจึงติดต่อกัน
ฉันพบวิธีแก้ปัญหาที่เหมาะสมกับปัญหาของเราและจะทำงานได้ดีที่สุดสำหรับคนส่วนใหญ่ที่พยายามคอลัมน์อวกาศและรักษาความกว้างของรางน้ำเหมือนกับส่วนที่เหลือของระบบกริด
นี่คือผลลัพธ์สุดท้ายที่เราจะทำ
การมีช่องว่างด้วยเงาที่หล่นระหว่างคอลัมน์เป็นปัญหา เราไม่ต้องการช่องว่างเพิ่มเติมระหว่างคอลัมน์ เราเพียงต้องการให้รางน้ำ "โปร่งใส" ดังนั้นสีพื้นหลังของไซต์จะปรากฏระหว่างคอลัมน์สีขาวสองคอลัมน์
นี่คือมาร์กอัพสำหรับสองคอลัมน์
<div class="row">
<div class="col-sm-7">
<div class="raised-block">
<h3>Facebook</h3>
</div>
</div>
<div class="col-sm-5">
<div class="raised-block">
<h3>Tweets</h3>
</div>
</div>
</div>
CSS
.raised-block {
background-color: #fff;
margin-bottom: 10px;
margin-left: 0;
margin-right: -0.625rem; // for us 0.625rem == 10px
padding-left: 0.625rem;
padding-right: 0.625rem;
}
@media (max-width: 33.9em){ // this is for our mobile layout where columns stack
.raised-block {
margin-left: -0.625rem;
}
}
.row [class^="col-"]:first-child>.raised-block {
// this is so the first column has no margin so it will not be "indented"
margin-left: -0.625rem;
}
วิธีการนี้ต้องการ div ภายในที่มีระยะขอบติดลบเช่นเดียวกับ bootstrap คลาส "row" ที่ใช้ และ div นี้เราเรียกมันว่า "ฟื้นคืนชีพ" จะต้องเป็นพี่น้องโดยตรงของคอลัมน์
วิธีนี้คุณยังคงได้รับการเติมที่เหมาะสมภายในคอลัมน์ของคุณ ฉันได้เห็นวิธีแก้ไขปัญหาที่ดูเหมือนว่าจะทำงานได้โดยการสร้างพื้นที่ แต่น่าเสียดายที่คอลัมน์ที่พวกเขาสร้างมีช่องว่างภายในเพิ่มเติมทั้งสองด้านของแถวดังนั้นมันจึงกลายเป็นแถวที่บางลงซึ่งรูปแบบกริดถูกออกแบบมาสำหรับ หากคุณดูที่ภาพเพื่อให้ได้รูปลักษณ์ที่ต้องการนี่หมายความว่าสองคอลัมน์เข้าด้วยกันจะเล็กกว่าอันที่ใหญ่กว่าซึ่งอยู่ด้านบนซึ่งแบ่งโครงสร้างตามธรรมชาติของกริด
ข้อเสียเปรียบหลักของวิธีนี้คือต้องใช้มาร์คอัปพิเศษห่อเนื้อหาของแต่ละคอลัมน์ สำหรับเราใช้งานได้เพราะเฉพาะคอลัมน์ที่ต้องการช่องว่างระหว่างพวกเขาเพื่อให้ได้ลักษณะที่ต้องการ