CSS布局技巧 -- 各种居中
多行垂直居中
废话少说,直接上例子!!!
display:table
Html代码:
<div class="wrapper">
<div class="content">
<span>我是很短的文本</span>
<span>我是很长的文本,内容非常多多多多多多多多多多多多...</span>
<div>我只是一个div标签</div>
<img src="..." style="width:200px;height:200px;"/>
</div>
</div>
CSS代码:
.wrapper{display:table;height:800px;width:300px;}
.content{display:table-cell;vertical-align:middle;text-align:center;}
//文本内容不足一行时居中,内容多行时左对齐
.content span{display:inline-block;text-align:left;}
虽然对于现代浏览器都能够生效,但是在奇葩的IE6-7下就无法正常运行。在这里为了兼容这些特殊的情况,必然要使用另外一种相对定位和绝对定位的方式,在使用IE的特有的条件语法的同时,也可以使用ie hack来写。
兼容IE的CSS代码:
.wrapper{display:table;height:800px;width:300px;position:relative;}
.content{display:table-cell;vertical-align:middle;text-align:center;*position:absolute;*top:50%;*left:50%;}
//文本内容不足一行时居中,内容多行时左对齐
.content span{display:inline-block;text-align:left;}
.content *{position:relative;*top:-50%;*left:-50%;}
优点:
wrapper的高度没有限制,可以自适应,根据内部元素动态的改变高度
缺点:
结构复杂,需要增加额外的标签,对于IE6-7浏览器需要额外的兼容
以上结构能满足所有的多行内容的垂直水平居中,对于单行垂直水平居中的情况,实现相对更加简单,即通过line-height来实现。
float属性
在child元素之前插入一个div元素,使其left浮动,高度为parent元素的50%,同时设置margin-bottom为
负
的child元素高度的一半
,然后再child元素中清除浮动。这样,child元素就相对parent元素垂直居中。No Code No Truth
Html代码:
<div class="wrapper">
<div class="floater"></div>
<div class="content">Contents</div>
</div>
CSS代码:
.floater{float:left;height:50%;margin-bottom:-100px;}
.content{clear:both;height:240px;position:relative;}
优点:
不存在兼容问题,所有浏览器都适应;内部元素的高度需要固定
缺点:
需要插入额外的空元素
CSS布局技巧 -- 各种居中的更多相关文章
- div+css 布局技巧总计
一.css 样式 1.float 首先需要了解块级元素(block element).每个块级元素都默认占用一行,在同一行只能添加一个块元素(float 除外).块级元素一般可以嵌套块级元素或者行内元 ...
- CSS布局技巧之——各种居中
居中是我们使用css来布局时常遇到的情况.使用css来进行居中时,有时一个属性就能搞定,有时则需要一定的技巧才能兼容到所有浏览器,本文就居中的一些常用方法做个简单的介绍. 注:本文所讲方法除了特别说明 ...
- CSS布局之--各种居中
居中是我们使用css来布局时常遇到的情况.使用css来进行居中时,有时一个属性就能搞定,有时则需要一定的技巧才能兼容到所有浏览器,本文就居中的一些常用方法做个简单的介绍. 注:本文所讲方法除了特别说明 ...
- css布局技巧
CSS用户界面样式 鼠标样式currsor li{ cursor:pointer: } 设置或检索在对象上移动鼠标指针采用何种系统预定义的光标形状 属性值 描述 default 默认 pointer ...
- HTML+CSS布局技巧及兼容问题【阅读季】
在IE6和IE7中,行高值必须大于字体的2px以上才能保证字体的完整显示或当作为链接时能显示下划线. IE6 下去掉 input等元素 的边框 border: 0 none; 所有浏览器都可以了 边框 ...
- Html和CSS布局技巧
单列布局水平居中 水平居中的页面布局中最为常见的一种布局形式,多出现于标题,以及内容区域的组织形式,下面介绍四种实现水平居中的方法(注:下面各个实例中实现的是child元素的对齐操作,child元素的 ...
- 史上最全Html与CSS布局技巧
单列布局水平居中水平居中的页面布局中最为常见的一种布局形式,多出现于标题,以及内容区域的组织形式,下面介绍四种实现水平居中的方法(注:下面各个实例中实现的是child元素的对齐操作,child元素的父 ...
- Html利用CSS布局技巧
单列布局水平居中 水平居中的页面布局中最为常见的一种布局形式,多出现于标题,以及内容区域的组织形式,下面介绍四种实现水平居中的方法(注:下面各个实例中实现的是child元素的对齐操作,child元素的 ...
- 史上最全Html和CSS布局技巧
单列布局水平居中 水平居中的页面布局中最为常见的一种布局形式,多出现于标题,以及内容区域的组织形式,下面介绍四种实现水平居中的方法(注:下面各个实例中实现的是child元素的对齐操作,child元 ...
随机推荐
- 《SSM框架搭建》一.构建maven web项目
一.创建maven工程File-New-other-Maven Project 二.设置项目工作空间,取消默认勾选,手动设置 三.选择internal,输入web,选择maven.archetypes ...
- apache日志轮询技术
1.首先先下载安装apache的日志轮询工具cronolog: wget http://cronolog.org/download/cronolog-1.6.2.tar.gz .tar.gz cd c ...
- Log Buffer
Log Buffer 一.Log Buffer的引入 Oracle有一个原则:只要是已经提交的数据,就不会丢失,保证数据库的一致性.这该如何实现?事物提交时,直接写入dbf中,效率是极低的.因为直接写 ...
- HTML DOM 对象简单介绍
文档对象模型(Document Object Model,DOM)是DHTML的基础. 常用对象:1)window对象:表示对象浏览器窗口(选项卡)对象.2)document对象:代表整个网页,是客户 ...
- C#中string在内存中是如何表示的
不知道你是否有过和我一样的疑问,不同编码的字符串是如何存储在运行时的内存中的呢,计算机在操作string类型的对象时,如何知道这个string是什么编码呢?和文本文件那样有类似BOM的东东在strin ...
- 高级php面试题
在网上看到一些高级php 的面试题目.. 最近接连面试了几家公司,有些重要问题记录一下,督促自己学习提高,同时希望给朋友们一些帮助.内容很多,一点点完善,一步步学习..有些是面试被问,有些是招聘要求, ...
- ViewPager如下效果你研究过吗?
1:ViewPager实现欢迎页面动画效果 ViewPager实现欢迎页面动画滑动切换view效果,页面切换添加优美的动画, //主要代码实现 public void animateSecondScr ...
- 项目中可能用到的demo
1. 轮播图 https://github.com/codingZero/XRCarouselView 2. 图表 https://github.com/Zirkfied/ZFChart
- android 设置状态栏与标题背景颜色一致
必须在Android4.4以上版本才能设置状态栏颜色: 一.在单个Activity里面,设置状态栏的背景: 效果: 1.在Activity的布局根文件中添加属性: android:fitsSystem ...
- Erlang 从入门到精通(三) 改变工作目录
对于初学者来书,经常会碰到下面的错误: no such file or directoryerror 提示找不到文件,这时候就需要将文件放到工作目录下,或者直接修改工作目录到文件所在位置. 右键ERl ...