利用CSS实现居中对齐
1. 文本居中
首先编写一个简单的html代码,设置一个类名为parentDiv的div对象。html代码如下:
<div class="parentDiv">
这里随意填写~...
</div>
1.1 实现文字水平居中(使用text-align)
对div.parentDiv设置text-align: center;来实现。CSS代码如下:
[css]
.parentDiv {
width:200px;
height:100px;
border: 1px solid #ececec;
text-align:center; /*水平居中*/
}
有些时候,你会发现即使使用了text-align: center;属性,但是仍然没有起到居中的作用。原因就在于div标签本身没有定义自己居中的属性,而且这样做对布局是非常不科学的方法。正确的设置方法其实很简单就是给.parentDiv添加以下属性:margin-left: auto;和margin-right: auto;即可。具体可看2.1。
注:在父级元素定义text-align: center;属性的意思就是在父级元素内的内容居中;对于IE浏览器这样设置就没问题了,但在Mozilla浏览器中却不行。解决办法就是:在子元素定义设定时,再加上margin-left: auto;及margin-right: auto;就没问题了。需要说明的是如果想用这个方法使整个页面要居中,建议不要套在一个div里,可以依次拆出多个div,只要在每个拆出的div里定义margin-left: auto;及margin-right: auto;就行。
1.2 单行文本垂直居中(使用line-height)
文字在层中垂直居中使用vertical-align属性是做不到的,所以这里有个比较巧的方法就是:设置height的高度与line-height的高度相同。CSS代码如下:
[css]
.parentDiv {
width:200px;
height:100px;
border: 1px solid #ececec;
text-align:center; /* 水平居中 */
line-height: 100px; /* line-height = height */
}
1.3 文本垂直居中(使用vertical-align)
可以使用vertical-align实现垂直居中,不过vertical-align仅适用于内联元素和table-cell元素,因此之前需要转化。
[css]
.outerBox{
width:200px;
height:100px;
border: 1px solid #ececec;
text-align:center; /* 水平居中 */
display:table-cell; /*转化成table-cell元素*/
vertical-align:middle; /*垂直居中对齐,vertical-align适用于内联及table-cell元素*/
}
1.4 图片垂直居中(使用background-position)
这里指的是背景方法,在div.parentDiv对象中使用background-position属性。CSS代码如下:
[css]
.parentDiv {
background: url(xxx.jpg) #ffffff no-repeat center;
}
注:关键就在于最后的center,这个参数定义图片的位置。当然,background-position属性还可以写成“top left"或者"bottom right"等,也可以直接写数值。
2. div居中
首先编写一个简单的html代码,设置一个父div类名为parentDiv,再设置一个子div类名为childDiv。html代码如下:
<div class="parentDiv">
<div class="childDiv"></div>
</div>
实现parentDiv和childDiv父子div的盒子宽高背景色和边框大小。CSS代码如下:
[css]
* {
-webkit-box-sizing: border-box; /*Safari*/
-moz-box-sizing: border-box; /*Firefox*/
box-sizing: border-box;
}
.parentDiv {
width:400px;
height: 100px;
background-color: #00ff00;
margin: 20px;
}
.childDiv {
width: 200px;
height:50px;
background-color: #ff0000;
}
2.1 水平居中(使用margin:auto)
当div.childDiv对象拥有固定宽度时,设置水平方向margin为auto,可以实现水平居中。CSS代码如下:
[css] /*margin:auto实现水平居中,需要居中的div必须拥有固定的宽度*/
.parentDiv .childDiv {
margin: 0 auto;
}
2.2 实现水平居中(使用text-align:center)
如果给子盒子div.childDiv设置display: inline-block不影响整体布局时,可以将子盒子转化为inline-block,对父盒子设置text-align:center实现居中对齐。CSS代码如下:
[css] /*
text-align: center;实现水平居中
需要子盒子设置为display: inline-block;
*/
.parentDiv {
text-align: center;
} .parentDiv childDiv {
display: inline-block;
}
2.3 table-cell元素居中
将父盒子设置为table-cell元素,可以使用text-align: center;和vertical-align: middle;实现水平、垂直居中。比较好的解决方案是利用三层结构模拟父子结构。html代码如下:
<div class="parentDiv tableCell">
<div class="id1">
<div class="childDiv">tableCell</div>
</div>
</div>
CSS代码如下:
[css] /*
table-cell实现居中
将父盒子设置为table-cell元素,设置
text-align: center; vertical-align: middle;
子盒子设置为inline-block元素
*/
.tableCell {
display: table;
} .tableCell .id1 {
display: table-cell;
text-align: center;
vertical-align: middle;
} .tableCell .childDiv {
display: inline-block;
}
2.4 绝对定位居中(利用margin实现偏移)
将parentDiv对象设置为定位元素(利用position: relative;属性),将childDiv对象设置为绝对定位,left和top均为50%,这时子盒子的左上角居中对齐,利用margin实现偏移。CSS代码如下:
[css] /*绝对定位实现居中*/
.parentDiv {
position: relative;
} .parentDiv .childDiv {
position: absolute;
left:50%;
top:50%;
margin-left:-100px; /*利用margin实现偏移,设置为宽度和高度的一半的负值*/
margin-top:-25px;
}
2.5 绝对定位居中(利用transform实现偏移)
绝对定位方式与2.4类似,只不过利用transform中的translate实现偏移。CSS代码如下:
[css] /*绝对定位实现居中,transform偏移*/
.parentDiv {
position: relative;
} .parentDiv .childDiv {
position: absolute;
left:50%;
top:50%;
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
-o-transform:translate(-50%, -50%) ;
transform:translate(-50%, -50%);
}
2.6 绝对定位居中(利用margin:auto实现偏移)
同样对子盒子实现绝对定位,这里使用top、right、bottom、left均为0,margin为auto实现偏移。CSS代码如下:
[css] /*绝对定位实现居中,margin:auto实现偏移*/
.parentDiv {
position: relative;
} .parentDiv .childDiv {
position: absolute;
left:; /*top、right、bottom、left均为0*/
top:;
right:;
bottom:;
margin: auto;
}
2.7 Flexbox居中
使用弹性盒模型(flexbox)实现居中。CSS代码:
[css] /*flexbox实现居中*/
.flexBox {
display: -webkit-box; /*Safari*/
display: -moz-box; /*Firefox*/
display: -ms-flexbox; /*IE*/
display: -webkit-flex; /*Chrome*/
display: flex;
-webkit-box-align: center;
-moz-box-align: center;
-ms-flex-align: center;
-webkit-align-items: center;
align-items: center;
-webkit-box-pack: center;
-moz-box-pack: center;
-ms-flex-pack: center;
-webkit-justify-content: center;
justify-content: center;
}
利用CSS实现居中对齐的更多相关文章
- CSS 图像居中对齐
CSS 图像居中对齐 我们在<CSS 内外边距>学过内容居中,它的原理是将外边左右设置为auto.图像居中也是这个原理. 示例 <!DOCTYPE html> <htm ...
- CSS上下左右居中对齐
上下左右居中对齐 display: inline/inline-block 将父元素(容器)设定 text-align: center: 即可左右置中. display: block 将元素本身的 ...
- CSS居中对齐
CSS实现居中对齐的几种方式 页面布局中,居中对齐是我们经常遇到的场景,现在总结几个常用的方式供大家参考. 场景一:按钮文字居中对齐,line-height + text-align html代码: ...
- 如何利用CSS代码使图片和文字在同一行显示且对齐
对于初学css的新手朋友来说,经常会遇到这样一个问题,当文字和图片出现在同一行或者同一个div里面的时候,在浏览器中运行出来的显示效果往往是在不同的行,那么,我们怎么才能利用CSS代码使图片和文字在同 ...
- 【css对齐】块内或者行内图片与文字居中对齐最靠谱的方式!
块内或者行内图片与文字居中对齐最靠谱的方式! 做图片与文字在一行的按钮时候最常用到,总结了一个靠谱的方法,终于可以完美的对齐下面给个代码 首先是html: <p class="btnU ...
- CSS居中对齐终极指南
本文首发于我的公众号:前端新世界 欢迎关注 本文将讨论可用于居中对齐元素的6种CSS技术(按照最佳实践排序),以及每一种技术最适合应用的场景.这里,居中对齐指的是将元素放置在其父元素的水平和垂直中心. ...
- CSS布局——居中
参考文章1.CSS布局奇淫技巧之--各种居中 2.http://www.imooc.com/article/2235 1.行内元素水平居中text-align:center对图片,按钮,文字等行内元素 ...
- 【原】css实现两端对齐的3种方法
说到两端对齐,大家并不陌生,在word.powerpoint.outlook等界面导航处,其实都有一个两端对齐(分散对齐)的按钮,平时使用的也不多,我们更习惯与左对齐.居中对齐.右对齐的方式来对齐页面 ...
- line-height,vertical-align及图片居中对齐问题根源解析
关于图片居中对齐的问题,进入前端行业虽然有一段时间了,以为自己懂了,可是实际上还是一知半解,找了一些博客来看了一下,但是感觉讲的有点碎,看完还是一知半解. 查阅了一下<css权威指南>,结 ...
随机推荐
- canvas 背景填充
这儿介绍canvas的ccreatePattern函数, context.createPattern(Image,"repeat"),还可以repeat-x,reapter-y 还 ...
- 修改本地数据库root权限密码
方法1: 用SET PASSWORD命令 测试成功 首先登录MySQL @1——mysql DOS 窗口中. 格式:mysql> set password for 用户名@localhost = ...
- nginx反向代理取得IP地址
nginx反向代理后,在应用中取得的ip都是反向代理服务器的ip,取得的域名也是反向代理配置的url的域名,解决该问题,需要在nginx反向代理配置中添加一些配置信息,目的将客户端的真实ip和域名传递 ...
- Xcode升级导致插件失效的解决办法-b
作为iOS界的攻城师,每一次水果发布新的Xcode开发版本时,我们都会跟进,然而那些好用的Xcode插件都会莫名的失灵...对此我各种百度,在这里,我将跟大家分享我是如何解决这些问题的.当然,我的方案 ...
- Solr In Action 笔记(4) 之 SolrCloud分布式索引基础
Solr In Action 笔记(4) 之 SolrCloud Index 基础 SolrCloud Index流程研究了两天,还是没有完全搞懂,先简单记下基础的知识,过几天再写个深入点的.先补充上 ...
- Unity3d在安卓android的更新(APK覆盖)
其实这并没什么技术难点,也不是完美的热更新方案,只能说是退而求其次的一个方法. 起因主要是因为公司几个U3D项目在立项之初都没有能做好热更新的规化,导致现在要去做U3D的热更新非常难,并且项目已处于中 ...
- JMS 问题java.lang.NoClassDefFoundError: weblogic/security/acl/UserInfo
run: Exception in thread "main" java.lang.NoClassDefFoundError: weblogic/security/acl/User ...
- 输入一个单向链表,输出该链表中倒数第K个结点
输入一个单向链表,输出该链表中倒数第K个结点,具体实现如下: #include <iostream> using namespace std; struct LinkNode { publ ...
- DataGridView DataGridViewCheckBoxColumn编辑时实时触发事件
正常响应CellValueChanged()事件时,当改变checkbox状态时,只有当焦点离开该单元格时才能触发CellValueChanged()事件, 如果要改变checkbox值时实时触发Ce ...
- HDOJ(HDU) 1720 A+B Coming(进制)
Problem Description Many classmates said to me that A+B is must needs. If you can't AC this problem, ...