css – 在元素之间创建带边距但不包含容器的元素容器?

前端之家收集整理的这篇文章主要介绍了css – 在元素之间创建带边距但不包含容器的元素容器?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
>容器#666有保证金:20px;溢出:隐藏;
>节点#333有边距:20px 0 0 20px;向左飘浮;.

例如,http://jsbin.com/owejal/3/edit图片

但是,预期的结果是:

>容量为20px的容器,
>中间有20px边距的儿童,但不包括容器.

这可以使用负填充(即,如果容器具有填充:-20px 0 0 -20px)来实现,尽管这种情况不存在.

使用附加元素(http://jsbin.com/owejal/4/)可以实现所需的结果,但我很想知道是否只有CSS解决方案.

解决方法

如果您只关心元素之间的间距,则可以丢弃伪元素.它只适用于背景.

http://codepen.io/cimmanon/pen/mucDv

  1. <div class="foo"></div>
  2. <div class="group">
  3. <div class="node"></div>
  4. <div class="node"></div>
  5. <div class="node"></div>
  6. <div class="node"></div>
  7. <div class="node"></div>
  8. <div class="node"></div>
  9. <div class="node"></div>
  10. </div>
  11. <div class="foo"></div>

CSS:

  1. .group {
  2. overflow: hidden;
  3. margin: -10px 0 -10px 10px;
  4. padding-right: 10px;
  5. position: relative;
  6. }
  7.  
  8. .group:before {
  9. display: block;
  10. content: '';
  11. position: absolute;
  12. z-index: -1;
  13. top: 10px;
  14. right: 20px; /* 20px instead of 10px due to padding */
  15. bottom: 10px;
  16. left: 10px;
  17. background: #666;
  18. }
  19.  
  20. .node {
  21. width: 100px;
  22. height: 100px;
  23. float: left;
  24. background: #333;
  25. margin: 10px;
  26. }
  27.  
  28. .foo {
  29. height: 20px;
  30. background: #00f;
  31. margin: 20px;
  32. }

猜你在找的CSS相关文章