CSS实现元素水平居中

元素主要分为块级元素和行内元素,所以对元素进行水平居中也分这两种情况来讨论,另外块级元素的实现比较复杂,将分情况讨论。

一、行内元素

常用行内元素为a/img/input/span 等,标签内的HTML文本也属于此类。对于此类情况,水平居中是通过给父元素设置 text-align:center来实现的。

HTML结构:

Hello World!!!

CSS样式:

div.txtCenter{

text-align:center;

}

二、块级元素

常用块级元素为div/table/ul/dl/form/h1/p等。根据应用场景不同又分为定宽块级与不定宽块级两种情况,分别讨论。

1.定宽块级元素

满足**定宽**和**块状**两个条件的元素是可以通过设置**“左右margin”值为“auto”**来实现居中的。

HTML结构:

Hello World!!!

CSS样式:

div{

border:1px solid red;/*为了显示居中效果明显为 div 设置了边框*/

width:500px;/*定宽*/

margin:20px auto;/* margin-left 与 margin-right 设置为 auto */

}

2.不定宽块级元素

我们经常会遇到不定宽度块级元素的使用,如分页导航,因为分页的数目不定,所以不能用宽度限制住。此时对元素进行水平居中主要有三种方式:

加入 table 标签

设置 display;inline 方法

设置 position:relative 和 left:50%;

2.1加入 table 标签

第一步:为需要设置的居中的元素外面加入一个 table 标签 ( 包括

、、 )。

第二步:为这个 table 设置“左右 margin:auto”(这个和定宽块状元素的方法一样)。

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;}

**这种方法的缺点是增加了无语义的HTML标签,增加了嵌套深度

2.2设置 display;inline 方法

改变块级元素的 dispaly 为 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,于是少了很多功能,比如盒子模型

2.3设置 position:relative 和 left:50%;

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

HTML结构:

  • 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,带来了一定的副作用。

三种方式各有利弊,根据实际情况相应选用。

html行内元素水平居中显示,CSS实现元素水平居中相关推荐

  1. html label水平居中显示,CSS布局之水平居中和垂直居中

    一.前言 开发中给标签(元素)设置居中的使用场景非常频繁,不同的标签类型设置方式也不同,本文旨在总结一套常用和标准的设置方式,同时也深入解析这样实现的原理.首先,我们大概来过一下一些必要的HTML知识 ...

  2. 【伪类与伪元素】用CSS伪元素(以:before为例)插入图片

    [伪类与伪元素]用CSS伪元素(以:before为例)插入图片 对于一些小图标类型的图片,若使用<img>略微有些麻烦,iconfont是一个不错的选择用起来也相当灵活,但是所需要步骤较为 ...

  3. css直接子元素怎么用,CSS 子元素选择器使用实例

    与后代选择器相比,子元素选择器只能选择作为某元素子元素的元素. 子元素选择器使用大于号">"做为连接符. 如果您不希望选择任意的后代元素,而是希望缩小范围,只选择某个元素的子 ...

  4. 行内公式不显示的问题测试

    原文链接:https://blog.csdn.net/flushhip/article/details/79721659 原题链接:点这儿. 网易的题还是有技术含量的,二分和数学和优美暴力考察得较多, ...

  5. 测试一下文章行内代码的显示

    原题链接:点这儿. 网易的题还是有技术含量的,二分和数学和优美暴力考察得较多,这些东西在工作中确实很重要,都是优化程序的方法. 第一题:牛牛找工作 题目: 为了找到自己满意的工作,牛牛收集了每种工作的 ...

  6. typora行内公式怎么显示不了,怎么办?

  7. html中设置元素隐藏显示,细说HTML元素的隐藏和显示

    CSS文档对HTML的显示和隐藏有2个属性可供选择: 1.display 2.visiblity 这2个有什么区别呢? display: display版本:CSS1/CSS2 兼容性:IE4+ NS ...

  8. CSS样式设置语法全解,样式优先级、值和单位、字体、文本、块级元素,行内元素,替换元素、非替换元素、display、float、position、table、li、光标、边距边框、轮廓、颜色背景

    全栈工程师开发手册 (作者:栾鹏) 一个demo学会css css选择器全解 css操作语法全解 CSS样式设置语法全解: 样式优先级 1. !important标记的样式 > 内联样式(sty ...

  9. Web前端,CSS中关于块级元素、行内元素、行内块元素、元素显示模式转换、CSS特性继承性和层叠性、普通导航和五彩导航的制作

    前言 持续总结输出中,今天分享的是Web前端,CSS中关于块级元素.行内元素.行内块元素.元素显示模式转换.CSS特性继承性和层叠性 1.块级元素 特点: 独占一行(一行只能显示一个) 宽度默认是父元 ...

最新文章

  1. Visual Studio2015如何连接到windows azure(国内版本)
  2. 中国网速排行榜出炉:上海最快 均速达5.4Mb/s
  3. 程序员面试金典--第k个数
  4. 十四、深入Python条件和循坏
  5. 该项目不在桌面中删除不了_win7系统桌面上的文件删不掉怎么办
  6. Jython安装配置教程(2.7.2)
  7. RoHS、无铅制程、无卤 的基本介绍
  8. ERROR (ClientException): Unexpected API Error
  9. Element 2.13.0 发布,基于 Vue 的桌面端组件库
  10. 如何使用Selenium-Grid
  11. [Server] HP DL380 G6更新esxi6.0 SATA 硬盘掉线问题
  12. NGINX(二)内存池
  13. 隐藏WIN10资源管理器中的3D对象文件夹
  14. 高通平台如何新增加一个分区,并mount到android系统中
  15. 行业点评:大疆反腐事件,员工的反驳
  16. WIN10不显示sql2005服务器,win10系统安装sql2005 sql服务无法启动的解决方法
  17. matlab 找到数组中第一个不连续点_超全Matlab绘图方法整理
  18. 读取txt文件(字符串内容),分割数组,存入Map
  19. 微信小程序--简约加载动画合集
  20. atoi(s)函数用法 1

热门文章

  1. JAVA CST时间 转换成Date
  2. FZU Problem 1077 铁皮容器
  3. 字符串转int:处理8,10,16进制以及处理无效字符
  4. HTTP Connection
  5. 期权询价+报价+下单系统解决方案
  6. 一文搞懂VOS费率前缀、地区前缀的区别和使用
  7. 疫情之下,餐饮企业该如何闯关?
  8. 获取shell返回值
  9. Halcon 元组tuple的基本操作
  10. 常用CSS布局(备以查用)