当前位置:   article > 正文

两端对齐页面布局实现方法

两端对齐布局

实现两端对齐是我们网页排版中经常使用到的一种布局,通过这篇文章总结一下常用的实现方法。

三等分为例,我们实现的效果如下图:

我们的核心 HTML 结构如下:

  1. <div class="items">
  2. <div class="item"></div>
  3. <div class="item"></div>
  4. <div class="item"></div>
  5. <div class="item"></div>
  6. <div class="item"></div>
  7. <div class="item"></div>
  8. </div>
  9. 复制代码

方法一:margin 负值

我们设子元素之间的间隔为 $padding,通过给外层容器设置 margin-left: -$paddingwidth: calc(100% + #{$padding * 2}) 来实现,核心代码(SCSS)如下:

  1. $padding: 10px;
  2. .items{
  3. width: calc(100% + #{$padding * 2});
  4. margin-left: -$padding;
  5. }
  6. .item{
  7. width: calc((100% - #{$padding * 2}) / 3); // 3 等分
  8. margin-left: $padding;
  9. float: left;
  10. }
  11. 复制代码

完整代码-在线预览

方法二:多列布局

利用多列布局,即 CSS3 增加的 column 属性,核心代码如下:

  1. .items{
  2. width: 100%;;
  3. column-gap: 10px;
  4. column-count: 3;
  5. overflow: hidden;
  6. }
  7. 复制代码

完整代码-在线预览

方法三:flex 布局

利用 flex 布局,给容器设置 justify-content: space-between; 即可,核心代码如下:

  1. .items{
  2. width: 100%;
  3. display: flex;
  4. justify-content: space-between;
  5. flex-wrap: wrap;
  6. }
  7. 复制代码

完整代码-在线预览

方法四:视为内联元素

将子元素看做行内元素,即给子元素设置 display: inline-block,再给父元素设置 text-align: justify,这样子元素就自动等间距两端对齐了,无需计算子元素间的 margin 间距。 但是,此方法会遇到一个很恶心的问题,就是:inline-block 元素间的换行符空格间隙问题,来看看怎么解决这个问题,核心代码如下:

  1. .items{
  2. width: 100%;
  3. text-align: justify;
  4. overflow: hidden;
  5. margin-top: 10px;
  6. }
  7. .items:after{
  8. /* text-align-last:justify只有IE支持,标准浏览器需要使用 .demo:after 伪类模拟类似效果 */
  9. display:inline-block;
  10. overflow:hidden;
  11. width:100%;
  12. height:0;
  13. content:'';
  14. vertical-align:top;/* opera浏览器解决底部多余的空白 */
  15. }
  16. .item{
  17. width: 30%;
  18. display: inline-block;
  19. }
  20. 复制代码

在线预览

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/295768
推荐阅读
相关标签