margin-top เมื่อห่อสินค้าแบบยืดหยุ่นเท่านั้น


93

ฉันมีตู้คอนเทนเนอร์ที่มีดิ้นสองรายการ ฉันต้องการตั้งค่าระยะขอบบนเส้นที่สอง แต่เฉพาะเมื่อมันถูกพันและไม่อยู่ที่เส้นโค้งแรก

ถ้าเป็นไปได้ฉันต้องการหลีกเลี่ยงการใช้แบบสอบถามสื่อ

ฉันคิดว่าขอบล่างขององค์ประกอบแรกอาจเป็นวิธีแก้ปัญหา อย่างไรก็ตามมันจะเพิ่มช่องว่างที่ด้านล่างเมื่อองค์ประกอบไม่ได้ถูกรวมเข้าด้วยกันปัญหาเดียวกัน

นี่คือรหัสของฉัน:

.container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
}
.item-big {
  background: blue;
  width: 300px;
}
.item-small {
  background: red;
  margin-top: 30px;
}
<div class="container">
  <div class="item-big">
    FIRST BIG ELEM
  </div>
  <div class="item-small">
    SECOND SMALL ELEM
  </div>
</div>


1
คำถามที่ต้องการความช่วยเหลือในการแก้ไขจุดบกพร่อง ("ทำไมโค้ดนี้ถึงใช้งานไม่ได้") จะต้องมีลักษณะการทำงานที่ต้องการปัญหาหรือข้อผิดพลาดที่เฉพาะเจาะจงและรหัสที่สั้นที่สุดที่จำเป็นในการสร้างซ้ำในคำถามนั้น โปรดอย่าละเมิดการบล็อกโค้ดเพื่อหลีกเลี่ยงข้อกำหนดนี้
Paulie_D

ปัญหาคือในกรณีนี้ฉันไม่จำเป็นต้องอธิบายด้วยรหัสเพิ่มเติมดังนั้นจึงเป็นปัญหาของ StackOverflow หากต้องใช้รหัสบล็อก
Manuel Di Iorio

1
ปัญหาคือประโยชน์สำหรับผู้ใช้ SO ในอนาคต หากลิงก์ JSfiddle ของคุณหายไปโพสต์ของคุณก็ไร้ประโยชน์ นั่นเป็นเหตุผลที่ SO ขอรหัส .... ตามหลักแล้วในตัวอย่างโค้ดที่มีให้คุณเมื่อคุณสร้างคำถาม
Paulie_D

ตกลงฉันเข้าใจฉันกำลังแก้ไขคำถามเพื่อให้เป็นไปตามกฎ;)
Manuel Di Iorio

คำตอบ:


182

คุณสามารถเพิ่มบางmargin-topรายการให้กับทั้งรายการดิ้นและค่าลบmargin-topของจำนวนเท่ากันในคอนเทนเนอร์แบบยืดหยุ่นได้

ด้วยวิธีนี้ระยะขอบเชิงลบของคอนเทนเนอร์แบบยืดหยุ่นจะทำให้ระยะขอบของรายการดิ้นที่บรรทัดแรกเป็นกลาง แต่ไม่ใช่ขอบของรายการที่ห่อกับบรรทัดอื่น

.container {
  margin-top: -30px;
}
.item-big, .item-small {
  margin-top: 30px;
}


122
โอ้ CSS ทำไมคุณถึงทำกับฉัน
Sanderfish

4
คำตอบที่ยอดเยี่ยม
pilau

3
สิ่งนี้ใช้ไม่ได้เมื่อคอนเทนเนอร์มีสีพื้นหลังหรือเส้นขอบ
Frank van Wijk

@FrankvanWijk ใช้ div โปร่งใสที่ซ้อนกันสำหรับการแก้ไขระยะขอบของคุณและพาเรนต์สำหรับองค์ประกอบภาพ
ที่ระลึก
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.