CSS代码(四):float元素的垂直居中
来源:互联网 发布:长春数控cnc编程招聘 编辑:程序博客网 时间:2024/06/05 06:49
在前端程序的开发中,经常会遇到将float元素垂直居中的应用场景,并且结合的场景非常之多,如float元素与inline元素、float元素与float元素、float元素与block元素以及它们的综合应用场景,在大部分的情况下,采用的方案有如下三种:
1. 采用flex布局;
2. 综合运用line-height、margin与padding;
3. 综合运用相对定位与绝对定位;
第一种方案,嵌套略显复杂,并且实现起来感觉较重,灵活性稍差;第二种方案在大部分的情况下都简洁高效,但碰到复杂的情况,例如inline元素的自动延伸,可能需要非常繁琐的调试过程,并且扩展性稍差,第三种纯属工作量的问题,对流式布局的自动适应性几乎破环得一干二净(不到万不得已,我一般不会采用此方法)。
今天介绍一种利用table-cell布局的方法,简单高效,并且扩展性较强,尤其是在垂直居中的应用上,几乎是通杀。
首先看看应用场景,在菜单的右侧添加操作按钮与图表,要求与菜单的文字垂直居中对齐,以下是布局代码:
<ul class="list-group" style="font-size : 14px;"> <li class="list-group-item"> <a href="javascript:void">人员管理</a> <i class="glyphicon glyphicon-tags glyphicon"></i> </li> <li class="list-group-item"> <a href="javascript:void">角色管理</a> <button class="btn btn-xs btn-primary">添加</button> </li> <li class="list-group-item"> <a href="javascript:void">组织机构</a> <button class="btn btn-xs btn-primary">添加</button> </li></ul>
以下是相关元素的样式:
.list-group-item { /* 触发BFC, 防止float塌陷*/ overflow : hidden; }.list-group-item a { float : left;}.list-group-item .glyphicon, .list-group-item .btn{ float : right;}
改进的方法很简单,为菜单项、按钮、图标添加包装元素,并将元素的显示样式设置为“table-cell”,样式如下:
.wrapper { display : table-cell; width : 300px; height : 30px; vertical-align: middle;}
相关的HTML代码如下:
<li class="list-group-item"> <!-- 添加包装元素 --> <div class="wrapper"> <a href="javascript:void">组织机构</a> <button class="btn btn-xs btn-primary">添加</button> </div></li>
最后的效果如下所示,左边是未添加包装元素的效果图,右边是包装后的效果。
结论
利用table-cell来排列元素,在垂直居中上处理上效果斐然,但是table-cell布局有个缺点:不能使用相对的宽度与高度(百分比)。
阅读全文
0 0
- CSS代码(四):float元素的垂直居中
- CSS代码使任何元素垂直居中
- CSS 元素垂直居中
- css元素垂直居中
- Css实现元素的垂直居中
- Css实现元素的垂直居中
- css实现元素的垂直居中
- CSS 元素垂直居中的 方法总结
- css 元素垂直居中的问题
- css定高行级元素垂直居中
- css定高块级元素垂直居中
- css元素的水平垂直居中的整理
- 垂直居中对齐CSS代码
- CSS 元素垂直居中的 6种方法
- CSS 元素垂直居中的 6种方法
- CSS 元素垂直居中的 6种方法
- CSS 元素垂直居中的 6种方法
- CSS 元素垂直居中的 6种方法
- Scrapy 入门
- bzoj 1076 奖励关 状压+期望dp
- oracle11g创建表空间命令
- Python 3下Matplotlib画图中文显示乱码的解决方法
- 单点触摸实现水滴效果
- CSS代码(四):float元素的垂直居中
- Liunx系统为Chromium安装和更新falsh
- 【安卓开发】连接百度地图api
- log4j.properties 配置详解
- Docker中Mysql主从复制实践总结
- 1601: [Usaco2008 Oct]灌水
- springmvc mybatis 分页 控制层及sql语句 oracle mysql easyui
- [2017湖南集训7-9]大佬的问题 (数点问题)
- C++构造拷贝中拷贝的N种调用情况