css实现两端对齐的3种方法

前端之家收集整理的这篇文章主要介绍了css实现两端对齐的3种方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

说到两端对齐,大家并不陌生,在word、powerpoint、outlook等界面导航处,其实都有一个两端对齐(分散对齐)的按钮,平时使用的也不多,我们更习惯与左对齐、居中对齐、右对齐的方式来对齐页面的文本或模块。

响应式网页设计出现以来,更多是使用百分比布自适应布局,特别是在移动端,两端对齐的方式显得越来越重要。那么,如何使用css实现两端对齐,相信很多同学会文本对齐的text-align:justify,这是今天要讲的其中一种方式,另外还有两种更精彩的实现方式,请往下看~

下图是需要实现的demo,取了宽度分别为320px、480px、640px下的截图,也就是说再随浏览器窗口宽度的调整,按钮菜单高度不变,宽度会按比例自动适应,且左右两端对齐:

目录

方法一:使用text-align:justify

感谢join同学提供的方案,使用该方案可以做到,不过实现起来会比较复杂,而且带有hack的味道

属性是全兼容的,使用它实现两端对齐,需要注意在添加[空格/换行符/制表符]才能起作用,同样,实现文本对齐也是需要在添加[空格/换行符/制表符]才能起作用

HTML:

模块内的元素之间为&nbsp;分隔,只支持webkit和Gecko内核浏览器 <10元20元30元50元 模块内的元素之间为换行符 10元 20元 30元 50元 模块内的元素之间为空格符 10元 20元 30元 50元 模块内的元素之间为无分隔符,justify不起作用 <选项1<选项2<选项3<选项4

CSS:

{:;:;} 1.IE中要实现块内单行两端对齐需要使用其私有属性text-align-last:justify配合,text-align-last 要生效,必须先定义text-align 为justify 2.line-height:0 解决标准浏览器容器底部多余的空白 {:;:;:;:; } {:; }支持,标准浏览器需要使用 .demo:after 伪类模拟类似效果 2.opera浏览器需要添加 vertical-align:top 才能完全解决底部多余的空白 {:;:;:;:;:;:; }{:;:;:;:;:;:;:;:;:;:;:;:;:;:; }

测试地址:

方法二:使用justify-content:space-between

box-pack是css3的新属性,依赖于display:box(旧版弹性布局),受box-orient影响,box-pack决定了子标签水平对齐的方式,可选值有start | end | center | justify。使用box-pack:justify来实现两端对齐非常简单,代码量也少。为了向前看齐,把display:flex(新版弹性布局)也一起写进去~

如果是做基于webkit内核的webapp开发和winphone IE10及以上,那么一切都好办~

》,写得不错,推荐给大家~

HTML:

10元 20元 30元 50元

CSS:

{:;:;} Box定义布局为盒模型后,可使用盒模型下的Box-pack:justify属性 {:Box;:;:Box;:;Box-pack:;:;:;:; }.demo a{<span style="color: #ff0000;">
width
:<span style="color: #0000ff;">20%
;<span style="color: #ff0000;">
display
:<span style="color: #0000ff;">block
;<span style="color: #ff0000;">
height
:<span style="color: #0000ff;">44px
;<span style="color: #ff0000;">
line-height
:<span style="color: #0000ff;">44px
;<span style="color: #ff0000;">
text-align
:<span style="color: #0000ff;">center
;<span style="color: #ff0000;">
border
:<span style="color: #0000ff;">1px solid #428cc8
;<span style="color: #ff0000;">
color
:<span style="color: #0000ff;">#666
;<span style="color: #ff0000;">
font-size
:<span style="color: #0000ff;">16px;<span style="color: #ff0000;">
margin-bottom:<span style="color: #0000ff;">5px;<span style="color: #ff0000;">
border-radius:<span style="color: #0000ff;">3px;<span style="color: #ff0000;">
background-color:<span style="color: #0000ff;">#fefefe;<span style="color: #ff0000;">
background-image:<span style="color: #0000ff;">-webkit-gradient(linear,#eee));<span style="color: #ff0000;">
color:<span style="color: #0000ff;">#666;<span style="color: #ff0000;">
text-decoration:<span style="color: #0000ff;">none;
}

方法三:使用column(多列布局)

column也是是css3的属性,意思是多列布局,使用column来实现两端对齐也十分简单,只需要设置模块的个数跟column的列数一致即可,不过它的自动适应方式跟使用Box-pack还有有点差别,并不是很标准,像列与列的间距暂无法定义为百分比。值得高兴的是目前支持所有高级浏览器,对IE10的支持也良好,不支持,webapp开发中,对于不需要兼容winphone7手机(IE9)的需求来说,可以充分发挥column的强大作用~

方法,w3school的有相关教程:

HTML:

10元 20元 30元 50元

CSS:

{:;:;} {:;:;:;:;:;:; }.demo a{<span style="color: #ff0000;">
display
:<span style="color: #0000ff;">block
;<span style="color: #ff0000;">
height
:<span style="color: #0000ff;">44px
;<span style="color: #ff0000;">
line-height
:<span style="color: #0000ff;">44px
;<span style="color: #ff0000;">
text-align
:<span style="color: #0000ff;">center
;<span style="color: #ff0000;">
border
:<span style="color: #0000ff;">1px solid #428cc8
;<span style="color: #ff0000;">
color
:<span style="color: #0000ff;">#666
;<span style="color: #ff0000;">
font-size
:<span style="color: #0000ff;">16px
;<span style="color: #ff0000;">
margin-bottom
:<span style="color: #0000ff;">5px
;<span style="color: #ff0000;">
border-radius
:<span style="color: #0000ff;">3px
;<span style="color: #ff0000;">
background-color
:<span style="color: #0000ff;">#fefefe
;<span style="color: #ff0000;">
background-image
:<span style="color: #0000ff;">-webkit-gradient(linear,#eee));<span style="color: #ff0000;">
color:<span style="color: #0000ff;">#666;<span style="color: #ff0000;">
text-decoration:<span style="color: #0000ff;">none;
}

测试地址:

移动端文本两端对齐示例

text-justify示例(补充于:20160407)

justify-content:space-between示例(补充于:20160628)

ok~

以上3种实现方式各有优缺点,具体看实际项目使用,如果大家有更好的实现方式,欢迎留言探讨~

猜你在找的HTML5相关文章