margin-top chỉ khi vật phẩm flex được bọc


89

Tôi có một hộp đựng linh hoạt với hai mặt hàng linh hoạt. Tôi muốn đặt margin-top trên cái thứ hai, nhưng chỉ khi nó được bao bọc chứ không phải ở dòng flex đầu tiên.

Nếu có thể, tôi muốn tránh sử dụng các truy vấn phương tiện.

Tôi nghĩ rằng margin-bottom ở phần tử đầu tiên có thể là một giải pháp. Tuy nhiên, nó thêm không gian ở phía dưới khi các phần tử không được bao bọc, do đó, cùng một vấn đề.

Đây là mã của tôi:

.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
Các câu hỏi tìm kiếm trợ giúp gỡ lỗi ("tại sao mã này không hoạt động?") Phải bao gồm hành vi mong muốn, một vấn đề hoặc lỗi cụ thể và mã ngắn nhất cần thiết để tái tạo nó trong chính câu hỏi. Vui lòng không lạm dụng các khối mã để đáp ứng yêu cầu này .
Paulie_D

Vấn đề là trong trường hợp này, tôi không cần giải thích thêm mã, vì vậy đó là vấn đề của StackOverflow nếu mã khối được yêu cầu.
Manuel Di Iorio

1
Vấn đề là tính hữu ích cho những người sử dụng SO trong tương lai . Nếu liên kết JSfiddle của bạn biến mất thì bài đăng của bạn về cơ bản là vô dụng. Đó là lý do tại sao SO yêu cầu mã .... lý tưởng nhất là trong các đoạn mã có sẵn cho bạn khi bạn tạo câu hỏi.
Paulie_D

Ok, tôi hiểu, tôi chỉnh sửa các câu hỏi để tuân thủ các quy tắc;)
Manuel Di Iorio

Câu trả lời:


174

Bạn có thể thêm một số margin-topvào cả hai mục linh hoạt và số âm margin-topcủa cùng một số lượng vào thùng chứa linh hoạt.

Bằng cách này, lề âm của vùng chứa flex sẽ vô hiệu hóa lề của các mục flex ở dòng đầu tiên, nhưng không phải là lề của các mục nằm ở các dòng khác.

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


115
Oh CSS, tại sao u làm dis đối với tôi
Sanderfish

3
Câu trả lời xuất sắc
pilau 15/07/18

3
Điều này không hoạt động khi vùng chứa có màu nền hoặc đường viền
Frank van Wijk
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.