当前位置:首页 > 技术知识 > 正文内容

html+div+css布局实现两端对齐的4种方法总结

maynowei9个月前 (09-11)技术知识92

div+css布局实现两端对齐是我们网页排版中经常会使用到的,这篇文章将总结一下可以实现的方法:

html结构

实现demo里面的div通过Css进行两端对齐。

<div class="box">

<div class="demo">

<div>1</div>

<div>2</div>

<div>3</div>

</div>

</div>

1.margin负值的方式

该方法需要外面多嵌套一层来实现,通过元素的间距,做为中间层的margin溢出值来实现<style>

.box{

width:300px;margin:auto;overflow:hidden;border:1px solid #ddd;

}

.box .demo{

margin-left:-10px;width:310px

}

.box .demo div{

width:93.333px;/*(计算:(300-10*2)/3)*/

float:left;

margin-left:10px;

}

</style>

2.display:inline-block/text-align:justify方式

justify方式比较简单方便。只要一个简单元素做了声明,里面的元素就自动等间距两端对齐布局啦!根本无需计算每个列表元素间的margin间距,更不用去修改父容器的宽度。

注意一点:demo结构内元素必须存在【换行符】或【空格符】,否则直接连着写将不会生效

<style>

.demo{

margin:0;padding:0;

text-align:justify;

text-align-last:justify;/*解决IE的支持*/

line-height:0;/*解决标准浏览器容器底部多余的空白*/

}

@media all and (-webkit-min-device-pixel-ratio:0){

.demo{

font-size:0;/*webkit清除元素中使用[换行符]或[空格符]后,最后元素多余的空白*/

}

}

.demo:after{/*text-align-last:justify只有IE支持,标准浏览器需要使用 .demo:after 伪类模拟类似效果*/

display:inline-block;

overflow:hidden;

width:100%;

height:0;

content:'';

vertical-align:top;/*opera浏览器解决底部多余的空白*/

}

.demo div{

width:20%;

display:inline-block;

text-align:center;/*取消上层元素的影响*/

text-align-last:center;

font-size:12px;

}

</style>

3.css3 属性 space-between

该方法基于webkit内核的webapp开发和winphone IE10及以上,常用于移动端布局。

<style>

.demo{

display:-webkit-box;

display:-webkit-flex;

display:-ms-flexbox;

display:flex;

-webkit-box-pack:justify;

-webkit-justify-content:space-between;

-ms-flex-pack:justify;

justify-content:space-between;

}

.demo div{

width:30%;

}

</style>

4.css3属性column-count

column属性是多列布局,使用column来实现两端对齐只需要设置模块的个数跟column的列数一致即可,推荐使用于移动端布局

<style>

.demo{

-webkit-column-count:3;-moz-column-count:3;column-count:3;

-webkit-column-gap:10px;-moz-column-gap:10px;column-gap:10px;

}

.demo div{


}

</style>

相关文章

分析 Rust 程序的火焰图(rust火吗)

分析 Rust 程序的火焰图(Flame Graph)是定位性能瓶颈的核心手段,其核心是通过可视化的函数调用栈和时间分布,找到 CPU 耗时、内存分配、锁竞争等热点。以下是详细的分析方法和步骤,结合...

Linux系统编程:条件变量为什么要用锁

条件变量可以解决线程同步和共享资源访问的问题,条件变量是对互斥锁的补充,它允许一个线程阻塞并等待另一个线程发送的信号,当收到信号时,阻塞的线程被唤醒并试图锁定与之相关的互斥锁。具体定义如下:等待:in...

如何在Go中同步线程(go语言同步锁)

单线程代码已经带来头痛。添加第二个线程,就是从基础头痛升级了。解决方案?互斥锁:线程和数据的交通警察。一旦你理解了它们,线程同步就变成了第二本能,语言无关。在C++和Go中工作,我遇到过所有常见的混乱...

centos系统安装oracle简易客户端instantclient

一、目录1:centos 环境准备2:instant client 下载3:instant client 安装4:instant client 配置5:测试连接二、安装步骤1:zip,unzip命令安...

python-oracledb——利用python连接Oracle数据库的好用方法

这篇文章最早发布在CSDN了,最近想尝试使用一下头条,重新转移过来了。背景介绍之前使用的数据库一直是MySql,偶尔使用PostgreSQL,都是利用的数据库连接池使用;最近需要在Oracle数据库取...

Oracle工具PLSQL登录时提示初始化失败,无法锁定OCI.dll错误解决

报错信息: (没有登录)-PL/SQL Developer Initialization error 无法锁定OCI dll OracleHomeKey: OracleHomeDir:E\instan...