html - CSS:有没有办法在兄弟元素之间获得相同的填充

标签 html css padding border-box

我在每个元素之间设置了 5px 的填充,但是 5px + 5px 在兄弟元素之间变成了 10px(水平,垂直也有 10px)

http://plnkr.co/edit/7FKBiTocHrTuwnpEqQsu?p=preview

// Code goes here

angular.module('app', [])
   .controller('MainCtrl', function($scope){
     $scope.items = Array(10);
   })
/* Styles go here */

*, :after, :before {
  box-sizing: border-box;
}

.one.fifth {
  width: 20%;
}
.one.whole{
  width: 100%;
}
.pad {
  padding: 5px;
}
.red {
  color: red;
}
.box {
  float: left;
  position: relative;
}
.red.box {
  background-color: red;
}
.white.box {
  background-color: white;
}
.black.border {
  border: 1px solid #000;
}
.center {
  text-align: center;
}
<!DOCTYPE html>
<html ng-app="app">

  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.28/angular.min.js"></script>
  </head>

  <body class="one whole">
    <div ng-controller="MainCtrl">
      <div class="red box pad center">
        <div class="white box">
          <div class="one fifth box pad" ng-repeat="item in items track by $index">
            <div class="one whole black border box">TEST {{$index}}</div>
          </div>
        </div>
      </div>
    </div>
  </body>

</html>

有什么方法可以让所有内容之间的填充或间距精确为 5 像素?

注意:我试过+运算符,但是第六项有副作用,因为这10项是兄弟

最佳答案

为什么不能只使用 nth-child CSS 选择器?为第一个元素以外的所有元素赋予 5pxpadding-right,并为第一个元素赋予 5px 的 padding-left 也是。最简单的解决方案,不是吗?

文档链接:http://www.w3schools.com/cssref/sel_nth-child.asp

关于html - CSS:有没有办法在兄弟元素之间获得相同的填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29553944/

相关文章:

javascript - 如何在组件内部使用 StyledComponents 主题

css - 用背景颜色填充标题

css - 不指定 float 元素的宽度有什么危险?

javascript - 如何仅使用单个 div 实现阅读更多功能

CSS 属性自动换行不适用于 Firefox 上的 select 元素

javascript - 在 View 中显示 SVG 动画

CSS:Chrome 浏览器不会在菜单元素之间留出空格

c - 结构大小、填充和 future

javascript - 使用自己域的虚拟主机 (Weebly)

html - 如何在 css3 中延迟每个循环动画?