CSS实现居中对齐的几种方式

页面布局中,居中对齐是我们经常遇到的场景,现在总结几个常用的方式供大家参考。

场景一:按钮文字居中对齐,line-height + text-align

html代码:

<div class="btn">Hello World</div>

CSS代码:

.btn{
width: 120px;
height: 48px;
border: none;
background: #f8f8f8;
color: #333;
/* 文本水平居中 */
text-align: center;
/* 文本垂直居中 */
ling-height: 48px;
}

效果如图所示:

场景二:父元素内部的子元素居中对齐,子元素设置position定位来实现

方式1:position+top/left定位实现

HTML代码:

<div class="father">
<div class="son"></div>
</div>

CSS代码:

.father {
width: 400px;
height: 400px;
margin: 0 auto;
margin-top: 100px;
background: lightblue;
/*子元素定位可以是相对定位,也可以是绝对定位,所以父元素最好做定位限制。*/
position: relative;
} .son {
width: 100px;
height: 100px;
border: none;
background: #1c3beb;
/* 居中代码,定位可以是相对定位,也可以为绝对定位 */
position: relative;
top: calc(50% - 50px);
left: calc(50% - 50px);
}
方式2:position+top/left+transform来实现居中

上面的子元素的偏移量计算,也可以由CSS3中的新属性transform来实现:

.son {
width: 100px;
height: 100px;
border: none;
background: #1c3beb;
/* 居中代码,定位可以是相对定位,也可以为绝对定位 */
position: absolute;
top: 50%;
left: 50%;
/*百分比是相对于自身宽高的偏移量计算*/
transform: translate(-50%, -50%);
}
方式3:position+margin来实现居中

上面的子元素也可以利用绝对定位元素的流体特性和margin:auto的自动分配特性来实现居中:

.father {
width: 400px;
height: 400px;
margin: 0 auto;
margin-top: 100px;
background: lightblue;
position: relative;
} .son {
width: 100px;
height: 100px;
border: none;
background: #1c3beb;
/* 居中代码,定位为绝对定位 */
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
}
方式4:弹性布局实现居中
.father {
width: 400px;
height: 400px;
margin: 0 auto;
margin-top: 100px;
background: lightblue;
/*启用弹性布局,主轴与交叉轴都采用居中对齐*/
display: flex;
justify-content: center;
align-items: center;
} .son {
width: 100px;
height: 100px;
border: none;
background: #1c3beb;
}

以上几种对齐效果都一样,但是考虑到兼容性等问题,推荐方式3。以上几种方式的对齐效果如下:

CSS居中对齐的更多相关文章

  1. CSS居中对齐终极指南

    本文首发于我的公众号:前端新世界 欢迎关注 本文将讨论可用于居中对齐元素的6种CSS技术(按照最佳实践排序),以及每一种技术最适合应用的场景.这里,居中对齐指的是将元素放置在其父元素的水平和垂直中心. ...

  2. 利用CSS实现居中对齐

    1. 文本居中 首先编写一个简单的html代码,设置一个类名为parentDiv的div对象.html代码如下: <div class="parentDiv"> 这里随 ...

  3. CSS 图像居中对齐

    CSS  图像居中对齐 我们在<CSS 内外边距>学过内容居中,它的原理是将外边左右设置为auto.图像居中也是这个原理. 示例 <!DOCTYPE html> <htm ...

  4. 【css对齐】块内或者行内图片与文字居中对齐最靠谱的方式!

    块内或者行内图片与文字居中对齐最靠谱的方式! 做图片与文字在一行的按钮时候最常用到,总结了一个靠谱的方法,终于可以完美的对齐下面给个代码 首先是html: <p class="btnU ...

  5. CSS上下左右居中对齐

    上下左右居中对齐 display:  inline/inline-block 将父元素(容器)设定 text-align: center: 即可左右置中. display: block 将元素本身的 ...

  6. CSS居中demo

      <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&q ...

  7. line-height,vertical-align及图片居中对齐问题根源解析

    关于图片居中对齐的问题,进入前端行业虽然有一段时间了,以为自己懂了,可是实际上还是一知半解,找了一些博客来看了一下,但是感觉讲的有点碎,看完还是一知半解. 查阅了一下<css权威指南>,结 ...

  8. 如何实现CSS居中?–CSS居中常用方法

    来源:http://www.ido321.com/824.html 一.水平居中 1.内联元素居中:相对父级块级元素居中对齐 1: .center-children { 2: text-align: ...

  9. HTML学习笔记——各种居中对齐

    0.前言     水平居中基本方法--指定块的宽度并设定块的左右外边距为auto,上下外边距可取0,那么该块能够在父元素中水平居中. 样式例如以下: 1:margin:0px auto 2:margi ...

随机推荐

  1. shell中文本内容多行变一行的技巧

    在linux下有时可能需要将多行的值转成一行.其实现的方法有很多种.笔者将自己曾经用过的方法在些分享. 如有一文本文件5201351.txt,文本的内容如下: 现我们可以通过如下方法将文本内容转成一行 ...

  2. JDBC连接泄露问题的排查过程总结

    当前使用的Spring JDBC版本是5.0.0.RC1,HikariCP版本是3.1.0. 今天测试同学反馈在前端页面点击次数多了,就报500错误,数据显示不出来.于是我在后台服务日志中观察发现Hi ...

  3. 安装apoc插件

    APOC是Neo4j 3.3版本推出时推荐的一个Java存储过程包,包含丰富的函数和存储过程,作为对Cypher所不能提供的复杂图算法和数据操作功能的补充,APOC还具有使用灵活.高性能等优势. 1. ...

  4. matlab-整数规划(非线性规划之蒙特卡洛法(随机取样法))

    首先编写M 文件mengte.m 定义目标函数f 和约束向量函数g,程序如下:function [f,g]=mengte(x);%定义目标函数f和约束向量函数g f=x()^+x()^+*x()^+* ...

  5. 写一个通用的List集合导出excel的通用方法

    前几天要做一个数据导出Excel 我就打算写一个通用的. 这样一来用的时候也方便,数据主要是通过Orm取的List.这样写一个通用的刚好. public static void ListToExcel ...

  6. Codeforces Round #648 (Div. 2)

    链接 : https://codeforces.com/contest/1365/problems problem A 统计可用的行和列的最小值, 模2输出即可 /* * Author: RoccoS ...

  7. Spark GraphX企业运用

    ========== Spark GraphX 概述 ==========1.Spark GraphX是什么?  (1)Spark GraphX 是 Spark 的一个模块,主要用于进行以图为核心的计 ...

  8. vulstack红队评估(一)

    一.环境搭建: 1.根据作者公开的靶机信息整理: 虚拟机初始所有统一密码:hongrisec@2019   因为登陆前要修改密码,改为了panda666...   2.虚拟网卡网络配置: ①Win7双 ...

  9. Java中在数字前自动补零方法

    /** * 数字前面自动补零 * @param number 数字 * @return */ public static String geFourNumber(int number){ Number ...

  10. 2020年最佳Java调试工具(翻译)

    调试是应用程序开发周期不可或缺的一部分.用Java或任何其他语言编写程序时,每个开发人员应解决的首要问题之一是可靠的调试工具的可用性. 所使用的工具类型可能影响或破坏应用程序的调试过程,因此至关重要的 ...