0

0

CSS样式设计小技巧(水平居中,垂直居中)_html/css_WEB-ITnose

php中文网

php中文网

发布时间:2016-06-24 11:47:19

|

1820人浏览过

|

来源于php中文网

原创

水平居中设置

(如果有些词组较陌生,可以快速浏览一遍我发布的随笔"html常用标签","CSS总结(上,中,下篇)",再回顾一下)。

☆水平居中设置-行内元素

  我们在实际工作中常会遇到需要设置水平居中场景,现在来总结一下怎么设置水平居中的。
如果被设置元素为文本、图片等行内元素时,水平居中是通过给父元素设置 text-align:center 来实现的。如下代码:
html代码:

 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>定宽块状元素水平居中</title> 6 <style> 7 div{ 8     border:1px solid red; 9     margin:20px;10 }11 div.txtCenter{12     text-align:center;13 }14 </style>15 </head>16 <body>17 <div class="txtCenter">我是文本,哈哈,我想要在父容器中水平居中显示。</div>18 </body>19 </html>

 

立即学习前端免费学习笔记(深入)”;

效果图如下:

 

立即学习前端免费学习笔记(深入)”;

☆水平居中设置-定宽块状元素

  当被设置元素为块状元素时用 text-align:center 就不起作用了,这时也分两种情况:定宽块状元素和不定宽块状元素。先来看看定宽块状元素。
  满足定宽和块状两个条件的元素是可以通过设置“左右margin”值为“auto”来实现居中的。我们来看个例子就是设置 div 这个块状元素水平居中:
html代码:

 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>定宽块状元素水平居中</title> 6 <style> 7 div{ 8     border:1px solid red; 9     width:500px;10     margin:20px auto;11 }12 </style>13 </head>14 <body>15 <div>我是定宽块状元素,哈哈,我要水平居中显示。</div>16 </body>17 </html>

 

立即学习前端免费学习笔记(深入)”;


注意:元素的“上下 margin” 是可以随意设置的。

效果图如下:

 

立即学习前端免费学习笔记(深入)”;

☆水平居中设置-不定宽块状元素方法(一)

  在实际工作中我们会遇到需要为“不定宽度的块状元素”设置居中,比如网页上的分页导航,因为分页的数量是不确定的,所以我们不能通过设置宽度来限制它的弹性。
不定宽度的块状元素有三种方法居中(这三种方法目前使用的都比较多):
1.加入 table 标签
2.设置 display;inline 方法
3.设置 position:relative 和 left:50%;
先来看第一种方法:
第一步:为需要设置的居中的元素外面加入一个 table 标签 ( 包括 

、、 )。
第二步:为这个 table 设置“左右 margin 居中”(这个和定宽块状元素的方法一样)。
举例如下:
html代码:

 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>不定宽块状元素水平居中</title> 6 <style> 7 table{ 8     margin:0 auto; 9 }10 ul{list-style:none;margin:0;padding:0;}11 li{float:left;display:inline;margin-right:8px;}12 </style>13 </head>14 <body>15 <div>16 <table>17   <tbody>18     <tr><td>19     <ul>20         <li><a href="#">1</a></li>21         <li><a href="#">2</a></li>22         <li><a href="#">3</a></li>23     </ul>24     </td></tr>25   </tbody>26 </table>27 </div>28 </body>29 </html>

 

立即学习前端免费学习笔记(深入)”;

效果图如下:

 

立即学习前端免费学习笔记(深入)”;

☆水平居中设置-不定宽块状元素方法(二)

  第二种方法:改变块级元素的 dispaly 为 inline 类型,然后使用 text-align:center 来实现居中效果。如下例子:
html代码:

 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>不定宽块状元素水平居中</title> 6 <style> 7 .container{text-align:center;} 8 .container ul{list-style:none;margin:0;padding:0;display:inline;} 9 .container li{margin-right:8px;display:inline;}10 </style>11 </head>12 13 <body>14 <div class="container">15     <ul>16         <li><a href="#">1</a></li>17         <li><a href="#">2</a></li>18         <li><a href="#">3</a></li>19     </ul>20 </div>21 </body>22 </html>

这种方法相比第一种方法的优势是不用增加无语义标签,简化了标签的嵌套深度,但也存在着一些问题:它将块状元素的 display 类型改为 inline,变成了行内元素,所以少了一些功能,比如设定长度值。(效果图如方法一图)

☆水平居中设置-不定宽块状元素方法(三)

  方法三:通过给父元素设置 float,然后给父元素设置 position:relative 和 left:50%,子元素设置 position:relative 和 left:-50% 来实现水平居中。
html代码:

 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>不定宽块状元素水平居中</title> 6 <style> 7 .container{ 8     float:left; 9     position:relative;10     left:50%11 }12 .container ul{13     list-style:none;14     margin:0;15     padding:0;16     17     position:relative;18     left:-50%;19 }20 .container li{float:left;display:inline;margin-right:8px;}21 </style>22 </head>23 24 <body>25 <div class="container">26     <ul>27         <li><a href="#">1</a></li>28         <li><a href="#">2</a></li>29         <li><a href="#">3</a></li>30     </ul>31 </div>32 </body>33 </html>

  这种方法可以保留块状元素仍以 display:block 的形式显示,优点不添加无语议表标签,不增加嵌套深度,但它的缺点是设置了 position:relative,带来了一定的副作用。这三种方法使用得都非常广泛,各有优缺点,具体选用哪种方法,可以视具体情况而定。(效果图如方法一图)

垂直居中设置

☆垂直居中-父元素高度确定的单行文本

  父元素高度确定的单行文本的竖直居中的方法是通过设置父元素的 height 和 line-height 高度一致来实现的。如下代码:

 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>垂直居中</title> 6 <style> 7 .wrap h2{ 8     margin:0; 9     height:100px;10    line-height:100px;11     background:#ccc;12 }13 </style>14 </head>15 <body>16 <div class="wrap">17     <h2>hello,world!</h2>18 </div>19 </body>20 </html>

 

立即学习前端免费学习笔记(深入)”;

效果图:

拍我AI
拍我AI

AI视频生成平台PixVerse的国内版本

下载

 

立即学习前端免费学习笔记(深入)”;

 

立即学习前端免费学习笔记(深入)”;

☆垂直居中-父元素高度确定的多行文本(方法一)

  父元素高度确定的多行文本、图片、块状元素的竖直居中的方法有两种:
  方法一:使用插入 table (包括tbody、tr、td)标签,同时设置 vertical-align:middle。
  说到竖直居中,css 中有一个用于竖直居中的属性 vertical-align,但这个样式只有在父元素为 td 或 th 时,才会生效。所以又要插入 table 标签了。下面看一下例子:
html代码:

 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta  charset="utf-8"> 5 <title>父元素高度确定的多行文本</title> 6 <style> 7   .wrap{height:300px;background:#ccc} 8 </style> 9 </head>10 <body>11 <table><tbody><tr><td class="wrap">12 <div>13     <p>看我是否可以居中。</p>14     <p>看我是否可以居中。</p>15     <p>看我是否可以居中。</p>16     <p>看我是否可以居中。</p>17     <p>看我是否可以居中。</p>18 </div>19 </td></tr></tbody></table>20 </body>21 </html>

 

立即学习前端免费学习笔记(深入)”;

注:因为 td 标签默认情况下就默认设置了 vertical-align 为 middle,所以我们不需要显式地设置了。

效果图如下:

 

立即学习前端免费学习笔记(深入)”;

☆垂直居中-父元素高度确定的多行文本(方法二)

  在 chrome、firefox 及 IE8 以上的浏览器下可以设置块级元素的 display 为 table-cell,激活 vertical-align 属性,但注意 IE6、7 并不支持这个样式。
html代码:

 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta  charset="utf-8"> 5 <title>父元素高度确定的多行文本</title> 6 <style> 7 .container{ 8     height:300px; 9     background:#ccc;10     display:table-cell;/*IE8以上及Chrome、Firefox*/11     vertical-align:middle;/*IE8以上及Chrome、Firefox*/12 }13 </style>14 </head>15 16 <body>17 <div class="container">18     <div>19         <p>看我是否可以居中。</p>20         <p>看我是否可以居中。</p>21         <p>看我是否可以居中。</p>22         <p>看我是否可以居中。</p>23         <p>看我是否可以居中。</p>24     </div>25 </div>26 </body>27 </html>

  这种方法的好处是不用添加多余的无意义的标签,但缺点也很明显,它的兼容性不是很好,不兼容 IE6、7。(效果图如方法一图)

隐形改变display类型

☆隐形改变display类型

  有一个有趣的现象就是当为元素(不论之前是什么类型元素,display:none 除外)设置以下 两句之一:
  position : absolute
  float : left 或 float:right
  元素会自动变为以 display:inline-block 的方式显示,当然也可以设置元素的 width 和 height 了且默认宽度不占满父元素。
如下面的代码,小伙伴们都知道 a 标签是行内元素,所以设置它的 width 是 没有效果的,但是设置为 position:absolute 以后,就可以了。

 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta  charset="utf-8"> 5 <title>隐性改变display类型</title> 6 <style> 7 .container a{ 8     position:absolute; 9     width:200px;10     background:#ccc;11     12 }13 </style>14 </head>15 <body>16 <div class="container">17     <a href="#" title="">查看效果</a>18 </div>19 </body>20 </html>

 

立即学习前端免费学习笔记(深入)”;

效果图如下:

 

立即学习前端免费学习笔记(深入)”;

相关文章

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

3

2026.03.03

C++高性能网络编程与Reactor模型实践
C++高性能网络编程与Reactor模型实践

本专题围绕 C++ 在高性能网络服务开发中的应用展开,深入讲解 Socket 编程、多路复用机制、Reactor 模型设计原理以及线程池协作策略。内容涵盖 epoll 实现机制、内存管理优化、连接管理策略与高并发场景下的性能调优方法。通过构建高并发网络服务器实战案例,帮助开发者掌握 C++ 在底层系统与网络通信领域的核心技术。

12

2026.03.03

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

69

2026.02.28

Golang 工程化架构设计:可维护与可演进系统构建
Golang 工程化架构设计:可维护与可演进系统构建

Go语言工程化架构设计专注于构建高可维护性、可演进的企业级系统。本专题深入探讨Go项目的目录结构设计、模块划分、依赖管理等核心架构原则,涵盖微服务架构、领域驱动设计(DDD)在Go中的实践应用。通过实战案例解析接口抽象、错误处理、配置管理、日志监控等关键工程化技术,帮助开发者掌握构建稳定、可扩展Go应用的最佳实践方法。

59

2026.02.28

Golang 性能分析与运行时机制:构建高性能程序
Golang 性能分析与运行时机制:构建高性能程序

Go语言以其高效的并发模型和优异的性能表现广泛应用于高并发、高性能场景。其运行时机制包括 Goroutine 调度、内存管理、垃圾回收等方面,深入理解这些机制有助于编写更高效稳定的程序。本专题将系统讲解 Golang 的性能分析工具使用、常见性能瓶颈定位及优化策略,并结合实际案例剖析 Go 程序的运行时行为,帮助开发者掌握构建高性能应用的关键技能。

46

2026.02.28

Golang 并发编程模型与工程实践:从语言特性到系统性能
Golang 并发编程模型与工程实践:从语言特性到系统性能

本专题系统讲解 Golang 并发编程模型,从语言级特性出发,深入理解 goroutine、channel 与调度机制。结合工程实践,分析并发设计模式、性能瓶颈与资源控制策略,帮助将并发能力有效转化为稳定、可扩展的系统性能优势。

24

2026.02.27

Golang 高级特性与最佳实践:提升代码艺术
Golang 高级特性与最佳实践:提升代码艺术

本专题深入剖析 Golang 的高级特性与工程级最佳实践,涵盖并发模型、内存管理、接口设计与错误处理策略。通过真实场景与代码对比,引导从“可运行”走向“高质量”,帮助构建高性能、可扩展、易维护的优雅 Go 代码体系。

20

2026.02.27

Golang 测试与调试专题:确保代码可靠性
Golang 测试与调试专题:确保代码可靠性

本专题聚焦 Golang 的测试与调试体系,系统讲解单元测试、表驱动测试、基准测试与覆盖率分析方法,并深入剖析调试工具与常见问题定位思路。通过实践示例,引导建立可验证、可回归的工程习惯,从而持续提升代码可靠性与可维护性。

4

2026.02.27

漫蛙app官网链接入口
漫蛙app官网链接入口

漫蛙App官网提供多条稳定入口,包括 https://manwa.me、https

348

2026.02.27

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
html/css快速入门
html/css快速入门

共51课时 | 18.4万人学习

CSS梅兰商城网页设计项目视频教程
CSS梅兰商城网页设计项目视频教程

共18课时 | 5.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号