Tôi có vùng chứa chiều rộng cố định <div>
hiển thị một hoặc nhiều tiện ích <div>
s. Tôi muốn nó trông như thế này:Hiển thị các phần tử trong nhiều hàng bằng cách sử dụng CSS
< - khối màu xám là widget, đường viền màu đỏ là container
giản, cấu trúc của tôi trong HTML trông như thế này:
<div id="container">
<div id="widget1">1</div>
<div id="widget2">2</div>
<div id="widget3">3</div>
<div id="widget4">4</div>
<div id="widget5">5</div>
<div id="widget6">6</div>
<div id="widget7">7</div>
</div>
cân nhắc
- Tiện ích con sẽ có chiều cao cố định, ví dụ: 100px
- Tiện ích sẽ có chiều rộng cố định, ví dụ: 100px nhưng chúng cũng có thể là bội số của chiều rộng đó (cộng với bất kỳ lề nào được gạch chéo - xem tiện ích 1)
- Widget nên được đặt cách nhau một cách độc đáo với lề (hoặc tương tự), ví dụ: 10px
- Tôi không biết số lượng tiện ích sẽ có (người dùng có thể chỉ định bao nhiêu hoặc ít tùy thích cho vùng chứa).
- Thùng chứa có chiều rộng cố định nhưng không có kiểu dáng "trực quan" (viền đỏ) để minh họa)
- Giải pháp phải hoạt động trong trình duyệt hiện đại (và MSIE7) và lý tưởng là CSS thuần túy.
Vì xem xét 4. Tôi không thể chỉ định đánh dấu bổ sung, ví dụ: hàng div, các lớp (.first-child, .last-child) và vì 2.:nth-child
sẽ không hoạt động AFAIK.
Những điều tôi đã cố gắng
margin-left trên widget với :first-child
thiết margin-left: 0
sẽ không hiển thị một hàng mới đúng.
lề phải trên các tiện ích có cài đặt :last-child
margin-right: 0
hàng đầu tiên buộc div vùng chứa rộng hơn và last-child isn't supported until MSIE9.
lề trái và phải bằng nhau (ví dụ: lề: 0 5px 10px) buộc lại vùng chứa.
tràn - hoạt động tuyệt vời trong đầu của tôi! Không quá nhiều với một trong hai lề hoặc đệm.
Có cách nào để thực hiện điều này trong CSS không?
http://jsfiddle.net/agtb/VHXGT/
Tôi nghĩ bạn đúng rồi! Với một sửa đổi nhỏ (widget chỉ sử dụng lề trái và lề dưới và đặt lề trái trên vùng chứa), tôi có thể ngăn mở rộng vùng chứa và kích hoạt thanh cuộn (đó là chiều rộng của vùng trang của tôi). Cảm ơn! – agtb