CSS居中的几种方式总结
1.水平居中的 margin:0 auto;
这个是用于子元素上的,前提是不受float影响
- <style type="text/css">
- .box{
- width: 300px;
- height: 300px;
- border: 3px solid red;
- /*text-align: center;*/
- }
- img{
- display: block;
- width: 100px;
- height: 100px;
- margin: 0 auto;
- }
- </style>
- <body>
- <div class="box">
- <img src="detail-share.png" alt="">
- </div>
- </body>
2.水平居中 text-align:center;
代码实例如上
3.水平垂直居中(一)定位和需要定位的元素的margin减去宽高的一半
- <style type="text/css">
- .box{
- width: 300px;
- height: 300px;
- background:#e9dfc7;
- border:1px solid red;
- position: relative;
- }
- img{
- width: 100px;
- height: 120px;
- position: absolute;
- top: 50%;
- left: 50%;
- margin-top: -60px;
- margin-left: -50px;
- }
- </style>
- <div class="box">
- <img src="detail-share.png" alt="">
- </div>
4.水平垂直居中(二)定位和margin:auto;
这个方法也很实用,不用受到宽高的限制,也很好用
- .box{
- position: relative;
- width: 300px;
- height: 300px;
- background:#e9dfc7;
- border:1px solid red;
- }
- img{
- width: 100px;
- height: 100px;
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- margin: auto;
- }
5.水平垂直居中(三)绝对定位和transfrom
这个方法比较高级了,用到了形变,据我所知很多大神喜欢使用这个方法进行定位,逼格很高的,学会后面试一定要用!这个是不需要知道居中元素的宽高就可以使用的,代码里的图片稍微有点大,改改宽高,仅此而已,在面试中大部分人会问如果不知道宽高该如何居中,答这个,加分!
- .box{
- width: 300px;
- height: 300px;
- background:#e9dfc7;
- border:1px solid red;
- position: relative;
- }
- img{
- width: 100px;
- height: 100px;
- position: absolute;
- top: 50%;
- left: 50%;
- transform: translate(-50%,-50%);
- }
6.水平垂直居中(四)diplay:table-cell
其实这个就是把其变成表格样式,再利用表格的样式来进行居中,很方便
- .box{
- width: 300px;
- height: 300px;
- background:#e9dfc7;
- border:1px solid red;
- display: table-cell;
- vertical-align: middle;
- text-align: center;
- }
- img{
- width: 100px;
- height: 100px;
- /*margin: 0 auto;*/ 这个也行
- }
7.水平垂直居中(五)flexBox居中
这个用了CSS3新特性flex,非常方便快捷,在移动端使用完美,pc端有兼容性问题,以后会成为主流的
- .box{
- width: 300px;
- height: 300px;
- background:#e9dfc7;
- border:1px solid red;
- display: flex;
- justify-content: center;
- align-items:center;
- }
- img{
- width: 100px;
- height: 100px;
- }
8.水平垂直居中(六)利用vertical-align:middle;
这方法不常见,但是这位朋友@不二很纯洁 补充后我觉得也不失为一种好方法可以让别人刮目相看,这个方法关键要有一个和容器一样高的元素作为居中的一个参照就像b元素一样
- <style type="text/css">
- .wrap{
- width:300px;
- height:300px;
- background:rgba(0,0,0,0.5);
- text-align:center;
- font-size:0;
- }
- .vamb{
- display:inline-block;
- width:0px;
- height:100%;
- vertical-align:middle;
- }
- .test{
- display:inline-block;
- vertical-align:middle;
- font-size:16px;
- text-align:left;
- background:red;
- }
- </style>
- <div class="wrap">
- <b class="vamb"></b>
- <div class="test">
- 宽高不定<br>
- 垂直水平居中
- </div>
- </div>
CSS居中的几种方式总结的更多相关文章
- css居中的几种方式
居中分水平和垂直两种,使用的频度也算是很高,下面分情况来讨论一下几种常用的实现方式. 欢迎指正文中的错误,同时如果有学习到新的方式也会更新在后面,也方便以后温故知新. 1.margin 这种方式只能实 ...
- 前端基础问题:CSS居中的几种方式
水平居中 (1)内联元素: text-align: center; 利用 text-align: center :可以实现在块级元素内部的内联元素水平居中. 如果一行中有多个块级元素,可以通过设置块级 ...
- 前端js,css文件合并三种方式,bat命令
前端js,css文件合并三种方式,bat命令 前端js文件该如何合并三个方式如下:1. 一个大文件,所有js合并成一个大文件,所有页面都引用它.2. 各个页面大文件,各自页面合并生成自己所需js的大文 ...
- HTML 引用Css样式的四种方式
不才,只知道HTML引用CSS样式有四种方式,内部引用和外部引用各两种,因为老是忘记细节,记下了随时翻阅亦可方便如我般的初学者 内部引用方式1: 直接在标签内用 style 引用,如: <div ...
- 原生js更改css样式的两种方式
下面我给大家介绍的是原生js更改CSS样式的两种方式: 1通过在javascript代码中的node.style.cssText="css表达式1:css表达式2:css表达式3 &quo ...
- python 中增加css样式的三种方式
增加css样式的三种方式: <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- 【javascript】原生js更改css样式的两种方式
下面我给大家介绍的是原生js更改CSS样式的两种方式: 1通过在javascript代码中的node.style.cssText="css表达式1:css表达式2:css表达式3 &quo ...
- 我给女朋友讲编程CSS系列(1) –添加CSS样式的3种方式及样式表的优先权
如果说,原生态就是美,那么,我们就没有必要穿衣打扮. 网页是什么? 说白了,网页就是一堆[html标签]有序的搭配,让[CSS属性值]整整容,请[Javascript语言]处理一下事件. 一个人的整容 ...
- HTML与CSS结合的四种方式
HTML与CSS结合的四种方式: 方式一:每个标签加一个属性: 例如:<div style="background-color:red; color: green"> ...
随机推荐
- 如何在 Linux 中查找最大的 10 个文件
https://linux.cn/article-9495-1.html
- docker技术之基本命令
我们使用基本命令之前,先来普及一下操作中使用的基本概念 镜像 image 容器 container 仓库 repository 镜像 Docker 镜像是一个特殊的文件系统,除了提供容器运 ...
- JS中的<a>标签
<a>标签可定义锚.一个锚有两种用法: 通过使用 href 属性,创建一个到另外一个文档的链接 通过使用 name 或 id 属性,创建一个文档内部的书签 如果是在 HTML 5 中,它定 ...
- java的强制类型转换
java强制类型转换 详细连接https://www.cnblogs.com/kuangwong/p/6198862.html 在Java项目的实际开发和应用中,常常需要用到将对象转为String这 ...
- Django--CRM
一 . 什么是CRM CRM就是客户关系管理系统(customer relationship management) 二 . 用户登录 # models.py文件 class UserProfile( ...
- sed 双引号 单引号的区别
a="abcd" b="abc" sed -i '/$a/ s/$/$b/' test.a 我想在test.a中匹配以”abcd“开头的行,然后在行尾加入”ab ...
- comparable和comparator
Comparable Comparable可以认为是一个内部比较器,实现了Comparable接口的类有一个特点,就是这些类是可以和自己比较的,在compareTo方法中指定具体的比较方法. comp ...
- Tomcat配置Https环境
windows环境下:http://blog.csdn.net/supersky07/article/details/7407523 linux环境下:http://blog.csdn.net/cuk ...
- ES 6 系列 - Proxy
Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以是一种“元编程”,即对编程语言进行编程. 简单地理解,就是在目标对象之前假设一层“拦截”,外界对改对象的访问,都必须先通过这层拦截 ...
- WPF TextBox控件中文字实现垂直居中
TextBox纵向长度比较长但文字字体比较小的时候,在输入时就会发现文字不是垂直居中的. 而使用中我们发现,TextBox虽然可以设置文字的水平对齐方式,但却没有相应的属性让我们来调节他的垂直对齐方式 ...