生成一个水平+垂直居中的div
这是前端布局经常用到的布局方式,水平垂直居中;面试也经常会问到。
一. 绝对定位实现居中
注意:使用绝对定位布局的时候,外层元素必须也设置有position属性,具体设置为什么值看具体情况。只要不是static就行。
1.通过定位+margin实现
将四个方向的偏移量设为0,然后用margin:auto实现居中。
.center {
/* div的基本属性 */
height: 500px;
width: 500px;
background-color: blue;
/* 绝对定位 */
position: absolute;
/* 通过定位+margin实现双居中 */
top:;
left:;
bottom:;
right:;
margin:auto;
}
2.通过定位+transform实现
设置top和left偏移量为50%,此时的正中间是div开始的位置,也就是div的坐上角,所以还需要向左上方向移动50%的宽(高)度。
.center {
/* div的基本属性 */
height: 500px;
width: 500px;
background-color: blue;
/* 绝对定位 */
position: absolute;
/* 通过定位+transform实现双居中 */
top: 50%;
left: 50%;
-ms-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-o-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
3.通过定位+margin实现(这种方法必须要知道居中div的长宽)
这个方法类似于第二种,通过设置top、left的偏移量,然后通过把margin-top,margin-left的值设置为50%的宽(高)度作为矫正。
.center {
/* div的基本属性 */
height: 500px;
width: 500px;
background-color: blue;
/* 绝对定位 */
position: absolute;
/* 通过定位+margin实现双居中 */
top: 50%;
left: 50%;
margin-top: -250px;
margin-left: -250px;
}
二. 通过flex布局实现居中
1.通过把父元素变成flex布局,再设置align-items和justify-content属性即可
.father{
/* 父元素的基本属性 */
height: 1000px;
width: 1000px;
border: 1px solid red;
/* 设置为flex布局 */
display: flex;
/* 设置flex属性 */
align-items: center;
justify-content: center;
}
.center {
/* div的基本属性 */
height: 500px;
width: 500px;
background-color: blue;
}
生成一个水平+垂直居中的div的更多相关文章
- table-cell实现未知宽高图片,文本水平垂直居中在div
<BODY> <h1>未知宽高的图片水平垂直居中在div</h1> <!--box-outer--> <div class="box-o ...
- 纯CSS实现图片水平垂直居中于DIV(图片未知宽高)
<div class="demo"><a href="#"><img src="http://nec.netease.c ...
- 多行文字水平垂直居中在div
<BODY> <div class="box"> <h3>1.单行文字居中</h3> <!--设置行高来实现- ...
- 未知宽高图片水平垂直居中在div
<BODY> <div class="box"> <span class="car"></span> <i ...
- html中div使用CSS实现水平/垂直居中的多种方式
CSS中的居中,在工作中,会经常遇到.它可以分为水平居中和垂直居中,以下是几种实现居中的方式. git 查看源码 配合在线预览,效果更佳 以下例子中,涉及到的CSS属性值. .parent-frame ...
- 用css让一个容器水平垂直居中
阅读目录 方法一:position加margin 方法二: diaplay:table-cell 方法三:position加 transform 方法四:flex;align-items: cente ...
- 文字以及div水平垂直居中
文字以及div水平垂直居中.md <div class=”content”> <div class=”mydiv”> huangyingnin! </div>< ...
- div盒子水平垂直居中的方法
这个问题比较老,方法比较多,各有优劣,着情使用. 一.盒子没有固定的宽和高 方案1.Transforms 变形 这是最简单的方法,不仅能实现绝对居中同样的效果,也支持联合可变高度方式使用.内容块定义t ...
- div盒子水平垂直居中方法
文章转载自:div盒子水平垂直居中的方法 - 雪明瑶 这个问题比较老,方法比较多,各有优劣,着情使用. 一.盒子没有固定的宽和高 方案1.Transforms 变形 这是最简单的方法,不仅能实现绝对居 ...
随机推荐
- abd常用命令
1.adb install -r 包名 ----------安装包,-r 替换原有apk安装 2.adb uninstall -k 包名 ---------------卸载包, ...
- 自己封装的Java excel数据读取方法
package org.webdriver.autotest.data; import jxl.Workbook; import jxl.Sheet; import jxl.Cell; import ...
- asp.net大文件传输断点续传源码
HTML部分 <%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="index.aspx. ...
- Java进阶知识01 Struts2下的 jquery+ajax+struts 技术实现异步刷新功能
1.效果图示 横线上方的部分不动(没有刷新),下方实现刷新(异步刷新) 2.实现步骤 jquery+ajax+struts技术实现异步刷新功能的步骤: 1.需要用到 jquery+ajax+st ...
- A. Odds and Ends(思维)
A. Odds and Ends time limit per test 1 second memory limit per test 256 megabytes input standard inp ...
- Java集合框架之接口Iterator
简述 Iterator迭代器的定义:迭代器(Iterator)模式,又叫做游标(Cursor)模式.GOF给出的定义是,提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象 ...
- Vue_(组件通讯)非父子关系组件通信
Vue单项数据流 传送门 Vue中不同的组件,即使不存在父子关系也可以相互通信,我们称为非父子关系通信 我们需要借助一个空Vue实例,在不同的组件中,使用相同的Vue实例来发送/监听事件,达到数据通信 ...
- 在mac上如何用safari调试ios手机的移动端页面
第一步:打开iphone手机的开发者模式,流程是:[设置]->[Safari]->[高级]->开启[Web检查器] ,如图1.图2 图1 图2第二步:打开Mac上Safari的开发者 ...
- Git 推送文件到远程仓库
Configure Git for the first time: git config --global user.name "xxxxx xx"git config --glo ...
- What happens in an async method
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/task-asynchronous-pr ...