AI 助理
备案 控制台
开发者社区 云原生 文章 正文

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

简介:

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

 

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

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

 

方法一:使用text-align:justify

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

text-align:justify 属性是全兼容的,使用它实现两端对齐,需要注意在模块之间添加[空格/换行符/制表符]才能起作用,同样,实现文本对齐也是需要在字与字之间添加[空格/换行符/制表符]才能起作用

HTML:

复制代码
<p>模块内的元素之间为&nbsp;分隔,只支持webkit和Gecko内核浏览器</p>
<br />
<div class="demo"><a class="link" href="#none">10元</a>&nbsp;<a class="link" href="#none">20元</a>&nbsp;<a class="link" href="#none">30元</a>&nbsp;<a class="link" href="#none">50元</a>
</div>
<br />
<p>模块内的元素之间为换行符</p>
<br />
<div class="demo">
    <a class="link" href="#none">10元</a>
    <a class="link" href="#none">20元</a>
    <a class="link" href="#none">30元</a>
    <a class="link" href="#none">50元</a>
</div>
<br />
<p>模块内的元素之间为空格符</p>
<br />
<div class="demo">
<a class="link" href="#none">10元</a> <a class="link" href="#none">20元</a> <a class="link" href="#none">30元</a> <a class="link" href="#none">50元</a>
</div>
<br />
<p>模块内的元素之间为无分隔符,justify不起作用</p>
<br />
<div class="demo"><a class="link" href="#none">选项1</a><a class="link" href="#none">选项2</a><a class="link" href="#none">选项3</a><a class="link" href="#none">选项4</a></div>
<br />
复制代码

CSS:

复制代码
*{margin:0;padding:0;}
/* 
 说明:
1.IE中要实现块内单行两端对齐需要使用其私有属性text-align-last:justify配合,text-align-last 要生效,必须先定义text-align 为justify 2.line-height:0 解决标准浏览器容器底部多余的空白
*/ .demo{ text-align:justify; text-align-last:justify; line-height:0; height:44px; } /* 说明: 模块使用[换行符]或[空格符]后,webkit浏览器中会引起最后一个模块有多余空白,使用font-size:0可清除该空格 */ @media all and (-webkit-min-device-pixel-ratio:0){ .demo{ font-size:0; } } /* 说明: 1.text-align-last:justify 目前只有IE支持,标准浏览器需要使用 .demo:after 伪类模拟类似效果 2.opera浏览器需要添加 vertical-align:top 才能完全解决底部多余的空白 */ .demo:after{ display:inline-block; overflow:hidden; width:100%; height:0; content:''; vertical-align:top; } .demo a{ width:20%; display:inline-block; height:44px; line-height:44px; text-align:center; border:1px solid #428cc8; color:#666; font-size:16px; margin-bottom:5px; border-radius:3px; background-color:#fefefe; background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fefefe),color-stop(1,#eee)); color:#666; text-decoration:none; }
复制代码

 测试地址:

http://jsbin.com/uGetOJE/1

移动端文本两端对齐示例(补充于:20160407)

http://1.peunzhang.sinaapp.com/demo/justify/text_justify.html

 

方法二:使用box-pack:justify

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

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

关于盒模型布局的介绍,这里有篇文章《 CSS box-flex属性,然后弹性盒子模型简介》,写得不错,推荐给大家~

HTML:

复制代码
<div class="demo">
    <a class="link" href="#none">10元</a>
    <a class="link" href="#none">20元</a>
    <a class="link" href="#none">30元</a>
    <a class="link" href="#none">50元</a>
</div>
复制代码

CSS:

复制代码
*{margin:0;padding:0;}
/*
 说明:
 display:box定义布局为盒模型后,可使用盒模型下的box-pack:justify属性
*/
.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 a{
     width:20%;
     display:block;
     height:44px;
     line-height:44px;
     text-align:center;
     border:1px solid #428cc8;
     color:#666;
     font-size:16px;
     margin-bottom:5px;
     border-radius:3px;
     background-color:#fefefe;
     background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fefefe),color-stop(1,#eee));
     color:#666;
     text-decoration:none;
}
复制代码

 

测试地址:

http://jsbin.com/qalahihubo

 

 

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

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

关于column的使用方法,w3school的有相关教程: http://www.w3school.com.cn/css3/css3_multiple_columns.asp

HTML:

复制代码
<div class="demo">
    <a class="link" href="#none">10元</a>
    <a class="link" href="#none">20元</a>
    <a class="link" href="#none">30元</a>
    <a class="link" href="#none">50元</a>
</div>
复制代码

CSS:

复制代码
*{margin:0;padding:0;}
/* 
 说明:
 1.column-count定义了对象的列数,例子中有4个模块,那么定义为4列
 2.column-gap定义了对象中列与列的间距,间距不能设置为百分比,显得不够灵活
*/
.demo{
     -webkit-column-count:4;-moz-column-count:4;column-count:4;
     -webkit-column-gap:20px;-moz-column-gap:20px;column-gap:20px; 
}

.demo a{
     display:block;
     height:44px;
     line-height:44px;
     text-align:center;
     border:1px solid #428cc8;
     color:#666;
     font-size:16px;
     margin-bottom:5px;
     border-radius:3px;
     background-color:#fefefe;
     background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fefefe),color-stop(1,#eee));
     color:#666;
     text-decoration:none;
}
复制代码

测试地址:

http://jsbin.com/avoPiqo/3

 

ok~

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

作者:白树

出处: http://peunzhang.cnblogs.com/

白树
目录
相关文章
听白
|
13天前
|
前端开发 JavaScript
jQuery css() 方法
jQuery css() 方法
听白
9 1
听白
|
8天前
|
XML 前端开发 JavaScript
jQuery HTML / CSS 方法
jQuery HTML / CSS 方法
听白
13 0
lvbb66
|
30天前
|
前端开发 容器
css溢出隐藏的五种方法
css溢出隐藏的五种方法
lvbb66
19 1
游客zi3qmblbcdexu
|
1月前
|
前端开发
css实现两个字和三个字的两端对齐
【8月更文挑战第10天】
游客zi3qmblbcdexu
32 5
阿福的工作室
|
1月前
|
前端开发 容器
css溢出隐藏的五种方法
css溢出隐藏的五种方法
阿福的工作室
178 0
朝阳39
|
2月前
|
前端开发 JavaScript 算法
CSS【详解】样式选择器的优先级(含提升优先级的方法)
CSS【详解】样式选择器的优先级(含提升优先级的方法)
朝阳39
70 0
CSS【详解】样式选择器的优先级(含提升优先级的方法)
朝阳39
|
2月前
|
前端开发
css 实用技巧 —— div在div中水平垂直居中(两种方法)
css 实用技巧 —— div在div中水平垂直居中(两种方法)
朝阳39
41 3
朝阳39
|
2月前
|
JavaScript 前端开发 容器
vue组件封装——固定宽高比的容器(2种方法:纯CSS实现 + JS实现)
vue组件封装——固定宽高比的容器(2种方法:纯CSS实现 + JS实现)
朝阳39
91 2
朝阳39
|
2月前
|
前端开发
css 实用技巧 —— 文字和图标垂直居中对齐(四种方法)
css 实用技巧 —— 文字和图标垂直居中对齐(四种方法)
朝阳39
1033 1
朝阳39
|
2月前
|
前端开发
你不知道的css——2. 百分比高度失效,绝对定位和非绝对定位元素的宽高百分比计算方法的不同
你不知道的css——2. 百分比高度失效,绝对定位和非绝对定位元素的宽高百分比计算方法的不同
朝阳39
39 1

热门文章

最新文章

  • 1
    细节决定成败——无CSS时网页的可读性
  • 2
    CSS3自定义发光radiobox单选框
  • 3
    12款精美的免费 CSS 网页模板下载
  • 4
    CSS好看的按钮
  • 5
    【技术贴】DropDownList的css颜色样式修改
  • 6
    通用base.css —— 《编写高质量代码 web前端开发修炼之道》
  • 7
    CSS3新特性: mix-blend-mode: multiply
  • 8
    Css3 圆角和渐变色问题(IE9)
  • 9
    15.2. XHTML+DIV+CSS
  • 10
    利用 hover 伪类创建纯 CSS 收缩面板
  • 1
    设计,兼容性----字体-------Css样式的字体,字体样式导入
    42
  • 2
    css 鼠标悬浮显示放大图片 vs 鼠标点击显示放大图片
    31
  • 3
    css 平滑滚动 scroll-behavior: smooth
    33
  • 4
    css图标合并——ClipPath Sprites技术
    31
  • 5
    css的flex布局中使用margin:auto智能分配剩余空间
    36
  • 6
    vue组件封装——固定宽高比的容器(2种方法:纯CSS实现 + JS实现)
    91
  • 7
    vue实战范例——箭头步骤条/导航(含css 斜切skew的妙用)
    143
  • 8
    css特效动画——转圈的加载动画
    31
  • 9
    只会用插件可不行,这些前端动画技术同样值得收藏-CSS篇
    68
  • 10
    如何在CSS中写变量?一文带你了解前端样式利器
    38
  • 相关课程

    更多
  • CSS 快速掌握
  • 零基础学前端HTML+CSS
  • 前端开发CSS基础
  • 相关电子书

    更多
  • 零基础CSS入门教程
  • 低代码开发师(初级)实战教程
  • 阿里巴巴DevOps 最佳实践手册
  • 相关实验场景

    更多
  • 前端开发基础3:CSS3常见显示属性
  • CSS基础教程
  • 下一篇
    搭建自己的私有云盘工具总结

    玻璃钢生产厂家瑞丽市玻璃钢雕塑设计加工湖北城市雕塑玻璃钢内蒙古公园玻璃钢雕塑定做惠州自发光动物玻璃钢雕塑定做灵武玻璃钢雕塑加工义乌商场玻璃钢雕塑辽宁仿铜玻璃钢雕塑广东发光动物玻璃钢雕塑制作黄浦优良玻璃钢雕塑深圳常见商场美陈订购吉安水果玻璃钢雕塑市场玻璃钢不锈钢雕塑定制玻璃钢雕塑艺术小品湛江玻璃钢雕塑价格表贵州玻璃钢仿真水果雕塑仿真玻璃钢白菜雕塑玻璃钢小品雕塑加工郑州创意玻璃钢雕塑订做价格广州玻璃钢小黄人卡通雕塑徐州玻璃钢雕塑设计方案水果玻璃钢雕塑定做价格玻璃钢怎么制作雕塑吉林人物玻璃钢雕塑方法惠州玻璃钢艺术雕塑玻璃钢几何雕塑定做青海仿真人物玻璃钢雕塑制作长沙玻璃钢雕塑价格玻璃钢花盆座椅定制沈阳玻璃钢雕塑鱼陕西创意玻璃钢雕塑供应商香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

    玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化