标签(空格分隔): 水平居中 高度居中
水平居中设置-行内元素
水平居中
如果被设置元素为文本、图片等行内元素时,水平居中是通过给父元素设置 text-align:center来实现的。如下代码:
html代码:
我是文本,哈哈,我想要在父容器中水平居中显示。
css代码:
水平居中设置-块状元素div.txtCenter{ text-align:center; }
当被设置元素为块状元素时用text-align:center就不起作用了,这时也分两种情况:定宽块状元素和不定宽块状元素。
定宽块状元素满足定宽和块状两个条件的元素是可以通过设置“左右margin”值为“auto”来实现居中的。设置 div 这个块状元素水平居中:
html代码:
我是定宽块状元素,哈哈,我要水平居中显示。
css代码:
div{ border:1px solid red; width:500px; margin:20px auto; }
也可以写成:
margin-left:auto; margin-right:auto;
- 注意:
元素的“上下 margin” 是可以随意设置的。
在实际工作中我们会遇到需要为“不定宽度的块状元素”设置居中,比如网页上的分页导航,因为分页的数量是不确定的,所以我们不能通过设置宽度来限制它的弹性。
不定宽度的块状元素有三种方法居中(这三种方法目前使用的都比多):
- 加入 table 标签
1.第一步:为需要设置的居中的元素外面加入一个table 标签 ( 包括 、、 )。
2.第二步:为这个 table设置“左右margin居中”(这个和定宽块状元素的方法一样)。举例如下:
html代码:
- 1
- 2
- 3
css代码:
table{ margin:0 auto; } ul{list-style:none;margin:0;padding:0;} li{float:left;display:inline;margin-right:8px;} - 设置 display:inline 方法
改变块级元素的 display为 inline 类型,然后使用 text-align:center 来实现居中效果。如下例子:
html代码:
- 1
- 2
- 3
css代码:
.container{ text-align:center; } .container ul{ list-style:none; margin:0; padding:0; display:inline; } .container li{ margin-right:8px; display:inline; } -
注意
这种方法相比第一种方法的优势是不用增加无语义标签,简化了标签的嵌套深度,但也存在着一些问题:它将块状元素的 display类型改为 inline,变成了行内元素,所以少了一些功能,比如设定长度值。 - 设置 position:relative和 left:50%;
通过给父元素设置 float,然后给父元素设置position:relative和 left:50%,子元素设置position:relative和left:-50%来实现水平居中。
代码如下:
- 1
- 2
- 3
css代码:
.container{ float:left; position:relative; left:50% } .container ul{ list-style:none; margin:0; padding:0; position:relative; left:-50%; } .container li{float:left;display:inline;margin-right:8px;} 这种方法可以保留块状元素仍以display:block的形式显示,优点不添加无语议表标签,不增加嵌套深度,但它的缺点是设置了position:relative,带来了一定的副作用。
垂直居中 父元素高度确定的单行文本这三种方法使用得都非常广泛,各有优缺点,具体选用哪种方法,可以视具体情况而定。
父元素高度确定的单行文本的竖直居中的方法是通过设置父元素的height 和 line-height 高度一致来实现的。如下代码:
hi,imooc!
css代码:
父元素高度确定的多行文本、图片、块状元素.container{ height:100px; line-height:100px; background:#999; } 竖直居中的方法有两种:
- 方法一:使用插入 table (包括tbody、tr、td)标签,同时设置 vertical-align:middle。
说到竖直居中,css中有一个用于竖直居中的属性vertical-align,但这个样式只有在父元素为 td或 th 时,才会生效。所以又要插入 table 标签了。下面看一下例子:
html代码:看我是否可以居中。
看我是否可以居中。
看我是否可以居中。
看我是否可以居中。
看我是否可以居中。
css代码:
table td{height:500px;background:#ccc}因为 td 标签默认情况下就默认设置了vertical-align为middle,所以我们不需要显式地设置了。
- 方法二:在 chrome、firefox及IE8以上的浏览器下可以设置块级元素的 display 为table-cell,激活vertical-align 属性,但注意 IE6、7 并不支持这个样式。
html代码:
看我是否可以居中。
看我是否可以居中。
看我是否可以居中。
看我是否可以居中。
看我是否可以居中。
css代码:
.container{ height:300px; background:#ccc; display:table-cell; vertical-align:middle; }
隐性改变display类型这种方法的好处是不用添加多余的无意义的标签,但缺点也很明显,它的兼容性不是很好,不兼容 IE6、7。
有一个有趣的现象就是当为元素(不论之前是什么类型元素,display:none 除外)设置以下 2 个句之一:
position : absolute float : left 或 float:right
元素会自动变为以display:inline-block的方式显示,当然就可以设置元素的 width和height 了且默认宽度不占满父元素。
如下面的代码,我们知道 a 标签是行内元素,所以设置它的 width 是 没有效果的,但是设置为 position:absolute以后,就可以了。
进入课程请单击这里
css代码
.container a{ position:absolute; width:200px; background:#ccc; } C/C++/C#相关栏目本月热门文章
- 1【Linux驱动开发】设备树详解(二)设备树语法详解
- 2别跟客户扯细节
- 3Springboot+RabbitMQ+ACK机制(生产方确认(全局、局部)、消费方确认)、知识盲区
- 4【Java】对象处理流(ObjectOutputStream和ObjectInputStream)
- 5【分页】常见两种SpringBoot项目中分页技巧
- 6一文带你搞懂OAuth2.0
- 7我要写整个中文互联网界最牛逼的JVM系列教程 | 「JVM与Java体系架构」章节:虚拟机与Java虚拟机介绍
- 8【Spring Cloud】新闻头条微服务项目:FreeMarker模板引擎实现文章静态页面生成
- 9JavaSE - 封装、static成员和内部类
- 10树莓派mjpg-streamer实现监控及拍照功能调试
- 11用c++写一个蓝屏代码
- 12从JDK8源码中看ArrayList和LinkedList的区别
- 13idea 1、报错java: 找不到符号 符号: 变量 log 2、转换成Maven项目
- 14在openwrt使用C语言增加ubus接口(包含C uci操作)
- 15Spring 解决循环依赖
- 16SpringMVC——基于MVC架构的Spring框架
- 17Andy‘s First Dictionary C++ STL set应用
- 18动态内存管理
- 19我的创作纪念日
- 20Docker自定义镜像-Dockerfile
热门相关搜索路由器设置 木托盘 宝塔面板 儿童python教程 心情低落 朋友圈 vim 双一流学科 专升本 我的学校 日记学校 西点培训学校 汽修学校 情书 化妆学校 塔沟武校 异形模板 西南大学排名 最精辟人生短句 6步教你追回被骗的钱 南昌大学排名 清朝十二帝 北京印刷学院排名 北方工业大学排名 北京航空航天大学排名 首都经济贸易大学排名 中国传媒大学排名 首都师范大学排名 中国地质大学(北京)排名 北京信息科技大学排名 中央民族大学排名 北京舞蹈学院排名 北京电影学院排名 中国戏曲学院排名 河北政法职业学院排名 河北经贸大学排名 天津中德应用技术大学排名 天津医学高等专科学校排名 天津美术学院排名 天津音乐学院排名 天津工业大学排名 北京工业大学耿丹学院排名 北京警察学院排名 天津科技大学排名 北京邮电大学(宏福校区)排名 北京网络职业学院排名 北京大学医学部排名 河北科技大学排名 河北地质大学排名 河北体育学院排名



