Xin lỗi vì đã trả lời một bài đăng cũ, nhưng bạn có thể làm như sau:
Giả sử div chứa của bạn có lớp "vàng".
.yellow div {
// Apply margin to every child in this container
margin: 10px;
}
.yellow div:first-child, .yellow div:nth-child(3n+1) {
// Remove the margin on the left side on the very first and then every fourth element (for example)
margin-left: 0;
}
.yellow div:last-child {
// Remove the right side margin on the last element
margin-right: 0;
}
Số 3n + 1 bằng mọi phần tử thứ tư outputted và rõ ràng sẽ chỉ làm việc nếu bạn biết có bao nhiêu sẽ được hiển thị trong một hàng, nhưng nó phải minh họa ví dụ. More details regarding nth-child here.
Lưu ý: Đối với: con đầu tiên làm việc trong IE8 trở về trước, phải khai báo <!DOCTYPE>
.
Lưu ý2: Bộ chọn: n-child() được hỗ trợ trong tất cả các trình duyệt chính, ngoại trừ IE8 trở về trước.
Chỉ có một nhược điểm đối với phương pháp này: nếu div cha của bạn nằm ngang với mặt bên phải của trang (hoặc trong phạm vi 10px của nó), 10px lề âm sẽ chồng lên cạnh của cửa sổ, mở rộng trang và gây ra thanh cuộn ngang. Đây có thể là vấn đề với thiết kế đáp ứng, nơi bạn cần bắt đầu xử lý với chiều rộng của chế độ xem đôi khi có chiều rộng là 320px. – thomasrutter
Lưu ý: điều đó nói rằng, tôi chắc chắn không tìm được giải pháp tốt hơn. – thomasrutter
Vâng, bạn nói đúng. Như tôi đã nói, nó chắc chắn không áp dụng được trong mọi tình huống. – ghost23