css使多个相互之间有间隔的元素两端对齐显示

2024-06-10 04:48

本文主要是介绍css使多个相互之间有间隔的元素两端对齐显示,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

场景重现

这里写图片描述
电商网站经常会出现如下布局来展示商品图片,每行4个,每个和每个之间有20px的距离,两端对齐,假设总宽度为500px

效果列举

  • 失败效果
    这里写图片描述

  • 成功效果
    这里写图片描述

代码示例

方法一:width: 25%; margin-right: -20px;

说明:每个大的item宽度25%,那么4个正好排成一行,item里面的div右边距20px,最后设置最大的包裹div右边距-20px,使右边界对齐

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>demo</title><style>* {margin: 0;padding: 0;}body, html {width: 100%;height: 100%;}.ctn {width: 500px;height: 300px;background: grey;}.hidden {overflow: hidden;}.item-ctn {margin-right: -20px;margin-bottom: -20px;background: blue;}.item-ctn:after {content: '';display: block;clear: both;}.item {float: left;width: 25%;height: 100px;margin-bottom: 20px;}.item-ctx {margin-right: 20px;height: 100%;background: red;}</style>
</head>
<body><div class="ctn"><div class="hidden"><div class="item-ctn"><div class="item"><div class="item-ctx"><p>1</p></div></div><div class="item"><div class="item-ctx"><p>1</p></div></div><div class="item"><div class="item-ctx"><p>1</p></div></div><div class="item"><div class="item-ctx"><p>1</p></div></div><div class="item"><div class="item-ctx"><p>1</p></div></div><div class="item"><div class="item-ctx"><p>1</p></div></div><div class="item"><div class="item-ctx"><p>1</p></div></div><div class="item"><div class="item-ctx"><p>1</p></div></div></div></div></div>
</body>
</html>
方法二calc:width: calc((100% - 20px*3)/4); .item:nth-child(4n)

说明:使用css3新属性calc布局(注意不同浏览器的兼容前缀)
* 设置宽度

<style>* {margin: 0;padding: 0;}body,html {width: 100%;height: 100%;}.ctn {width: 500px;height: 300px;background: grey;}.hidden {overflow: hidden;}.item-ctn {margin-bottom: -20px;background: blue;}.item-ctn:after {content: '';display: block;clear: both;}.item {float: left;width: calc((100% - 20px*3)/4);margin-right: 20px;height: 100px;margin-bottom: 20px;}.item:nth-child(4n) {margin-right: 0;}.item-ctx {height: 100%;background: red;}
</style>
方法三flex:display: flex; justify-content: space-between;

说明:使用flex布局,子元素间隔且两端对齐即可(注意不同浏览器的兼容前缀)

<style>* {margin: 0;padding: 0;}body,html {width: 100%;height: 100%;}.ctn {width: 500px;height: 300px;background: grey;}.hidden {overflow: hidden;}.item-ctn {margin-bottom: -20px;background: blue;/* 弹性盒子 */display: flex;/* 沿行轴线两端对齐,子元素之间有间隙 */justify-content: space-between;/* 子元素溢出父容器时换行 */flex-flow: row wrap;}.item {width: 110px;height: 100px;margin-bottom: 20px;}.item-ctx {height: 100%;background: red;}
</style>
方法四grid:display: grid; justify-content: space-between;

说明:使用网格布局,子元素间隔且两端对齐即可(注意不同浏览器的兼容前缀)

<style>* {margin: 0;padding: 0;}body,html {width: 100%;height: 100%;}.ctn {width: 500px;height: 300px;background: grey;}.hidden {overflow: hidden;}.item-ctn {margin-bottom: -20px;background: blue;/* 网格布局 */display: grid;/* 定义网格的行和列 */grid-template: auto / 110px 110px 110px 110px;/* 沿行轴线两端对齐,子元素之间有间隙 */justify-content: space-between;}.item {width: 110px;height: 100px;margin-bottom: 20px;}.item-ctx {height: 100%;background: red;}
</style>

这篇关于css使多个相互之间有间隔的元素两端对齐显示的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1047257

相关文章

在React中引入Tailwind CSS的完整指南

《在React中引入TailwindCSS的完整指南》在现代前端开发中,使用UI库可以显著提高开发效率,TailwindCSS是一个功能类优先的CSS框架,本文将详细介绍如何在Reac... 目录前言一、Tailwind css 简介二、创建 React 项目使用 Create React App 创建项目

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Vue中组件之间传值的六种方式(完整版)

《Vue中组件之间传值的六种方式(完整版)》组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,针对不同的使用场景,如何选择行之有效的通信方式... 目录前言方法一、props/$emit1.父组件向子组件传值2.子组件向父组件传值(通过事件形式)方

css中的 vertical-align与line-height作用详解

《css中的vertical-align与line-height作用详解》:本文主要介绍了CSS中的`vertical-align`和`line-height`属性,包括它们的作用、适用元素、属性值、常见使用场景、常见问题及解决方案,详细内容请阅读本文,希望能对你有所帮助... 目录vertical-ali

C++从序列容器中删除元素的四种方法

《C++从序列容器中删除元素的四种方法》删除元素的方法在序列容器和关联容器之间是非常不同的,在序列容器中,vector和string是最常用的,但这里也会介绍deque和list以供全面了解,尽管在一... 目录一、简介二、移除给定位置的元素三、移除与某个值相等的元素3.1、序列容器vector、deque

C++常见容器获取头元素的方法大全

《C++常见容器获取头元素的方法大全》在C++编程中,容器是存储和管理数据集合的重要工具,不同的容器提供了不同的接口来访问和操作其中的元素,获取容器的头元素(即第一个元素)是常见的操作之一,本文将详细... 目录一、std::vector二、std::list三、std::deque四、std::forwa

浅析CSS 中z - index属性的作用及在什么情况下会失效

《浅析CSS中z-index属性的作用及在什么情况下会失效》z-index属性用于控制元素的堆叠顺序,值越大,元素越显示在上层,它需要元素具有定位属性(如relative、absolute、fi... 目录1. z-index 属性的作用2. z-index 失效的情况2.1 元素没有定位属性2.2 元素处

Python实现html转png的完美方案介绍

《Python实现html转png的完美方案介绍》这篇文章主要为大家详细介绍了如何使用Python实现html转png功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 1.增强稳定性与错误处理建议使用三层异常捕获结构:try: with sync_playwright(