CSS居中的不同情况使用不同的方法
2015-01-08 09:15
225 查看
内容提要:CSS居中的不同情况使用不同的方法,CSS的居中会遇到很多种情况,不同的情况使用的方法不同。 1、水平居中,(1)文本、图片等行内元素的水平居中...
CSS的居中会遇到很多种情况,不同的情况使用的方法不同。
1、水平居中
(1)文本、图片等行内元素的水平居中
给父元素设置text-align:center可以实现文本、图片等行内元素的水平居中。
(2)确定宽度的块级元素的水平居中
确定宽度的块级元素水平居中是通过设置margin-left:auto和margin-right:auto来实现的。
(3)不确定宽度的块级元素的水平居中
不确定宽度的块级元素有三种方式可以实现居中。以分页模块为例,因为分页的数量是不确定的,所以我们不能通过设置宽度来限制它的弹性。
2、竖直居中
(1)父元素高度不确定的文本、图片、块级元素的竖直居中
父元素高度不确定的文本、图片、块级元素的竖直居中是通过父容器设置相同上下边距实现的。
(2)父元素高度确定的单行文本的竖直居中
父元素高度确定的单行文本的竖直居中,是通过给父元素设置line-height来实现的,line-height值和父元素的高度值相同。
(3)父元素高度确定的多行文本、图片、块级元素的竖直居中
父元素高度确定的多行文本、图片、块级元素的竖直居中有两种方法。
方法一:说到竖直居中,CSS中有一个用于竖直居中的属性vertical-align,但只有当父元素为td或者th时,这个vertical-align属性才会生效,对于其他块级元素,例如div、p等,默认情况下是不支持vertical-align属性的。在Firefox和IE 8下,可以设置块级元素的display类型为table-cell,激活vertical-align属性,但IE 6和IE 7并不支持display:table-cell,所以这种方法没办法跨浏览器兼容。但我们可以使用最原始的笨方法来实现兼容——既然不支持块级元素设置为display:table-cell来模拟表格,那么,我们就直接使用表格好了。
方法一可以很好地实现竖直效果居中,且不会带来任何样式上的副作用,但它添加了无语义的标签,并增加了嵌套深度。
方法二:对支持display:table-cell的IE 8和Firefox用display:table-cell和vertical-align来实现居中,对不支持display:table-cell的IE 6和IE 7,使用特定格式的hack。
方法二利用hack技术区别对待Firefox、IE 8和IE 6、IE 7,在不支持display:table-cell的IE 6和IE 7下,通过给父子两层元素分别设置top:50%和top:-50%来实现居中。这种方法的好处是没有增加额外的标签,但它的缺点也很明显,一方面它使用了hack,不利于维护、另一方面,它需要设置position:relative和position:absolute,带来了副作用。
『 网页设计 | DIV+CSS 』
CSS的居中会遇到很多种情况,不同的情况使用的方法不同。
1、水平居中
(1)文本、图片等行内元素的水平居中
给父元素设置text-align:center可以实现文本、图片等行内元素的水平居中。
(2)确定宽度的块级元素的水平居中
确定宽度的块级元素水平居中是通过设置margin-left:auto和margin-right:auto来实现的。
(3)不确定宽度的块级元素的水平居中
不确定宽度的块级元素有三种方式可以实现居中。以分页模块为例,因为分页的数量是不确定的,所以我们不能通过设置宽度来限制它的弹性。
2、竖直居中
(1)父元素高度不确定的文本、图片、块级元素的竖直居中
父元素高度不确定的文本、图片、块级元素的竖直居中是通过父容器设置相同上下边距实现的。
(2)父元素高度确定的单行文本的竖直居中
父元素高度确定的单行文本的竖直居中,是通过给父元素设置line-height来实现的,line-height值和父元素的高度值相同。
(3)父元素高度确定的多行文本、图片、块级元素的竖直居中
父元素高度确定的多行文本、图片、块级元素的竖直居中有两种方法。
方法一:说到竖直居中,CSS中有一个用于竖直居中的属性vertical-align,但只有当父元素为td或者th时,这个vertical-align属性才会生效,对于其他块级元素,例如div、p等,默认情况下是不支持vertical-align属性的。在Firefox和IE 8下,可以设置块级元素的display类型为table-cell,激活vertical-align属性,但IE 6和IE 7并不支持display:table-cell,所以这种方法没办法跨浏览器兼容。但我们可以使用最原始的笨方法来实现兼容——既然不支持块级元素设置为display:table-cell来模拟表格,那么,我们就直接使用表格好了。
方法一可以很好地实现竖直效果居中,且不会带来任何样式上的副作用,但它添加了无语义的标签,并增加了嵌套深度。
方法二:对支持display:table-cell的IE 8和Firefox用display:table-cell和vertical-align来实现居中,对不支持display:table-cell的IE 6和IE 7,使用特定格式的hack。
方法二利用hack技术区别对待Firefox、IE 8和IE 6、IE 7,在不支持display:table-cell的IE 6和IE 7下,通过给父子两层元素分别设置top:50%和top:-50%来实现居中。这种方法的好处是没有增加额外的标签,但它的缺点也很明显,一方面它使用了hack,不利于维护、另一方面,它需要设置position:relative和position:absolute,带来了副作用。
『 网页设计 | DIV+CSS 』
相关文章推荐
- 在xml布局文件中,我们既可以设置px,也可以设置dp(或者dip)。一般情况下,我们都会选择使用dp,这样可以保证不同屏幕分辨率的机器上布局一致。但是在代码中,如何处理呢?很多控件的方法中都只提供了
- Android Intent Activity 跳转几种情况所使用的不同方法
- abap submit 的使用方法 不同情况
- abap submit 的使用方法 不同情况
- abap submit 的使用方法 不同情况
- QTcpSocket 对连接服务器中断的不同情况进行判定(六种情况,其中一种使用IsNetworkAlive API方法)
- 使用反射令2个事件在不知道方法名的情况下使用同一个处理方法
- 在ASP.NET AJAX中,由于一个ASPX页面上只能有一个ScriptManager控件,所以在有母版页的情况下,如果需要在Master-Page和Content-Page中需要引入不同的脚本时,这就需要在Content-page中使用ScriptMa
- Ghost使用中的异常情况及应对方法
- 使用PreparedStatement为不同的数据库编写可移植的数据库存取方法
- 使用Javascript动态创建表格,不同的方法,巨大的运行时间差异!
- Iterator和ListIterator的不同使用方法
- Struts的ActionForm中不同类型属性的使用方法总结
- 使用trace方法和trace属性记录Page目录中网页的执行情况
- Iterator和ListIterator的不同使用方法
- 安装Symbian的多个SDK,在多个SDK共存在情况下,要使用不同的SDK环境编译应用程序
- 使用5种不同的方法加载水晶报表(Windows 窗体)
- 正則表達式在不同環境中的使用方法
- linux和windows不同OS环境下VNC的使用方法(20060111)
- oracle 两种方法不同的效率!务必少使用 not in