css 水平垂直居中那些事

本文是在参考众大神文章基础上,整理的几个常用方案,另外也掺杂个人的一些猜想,如有不妥,请不吝指出
下面开始正题,为了方便验证+展示,下面的案例我会直接附上个人验证的源码+截图

1.

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">.container{position:relative;width:500px;height:500px;border:1px solid blue;}.cnt {position: absolute;margin:auto;	width:200px;height:200px;border:1px solid red;left:0;right:0;top:0;bottom:0;}
</style>
</head>
<body>
<div class="container">
<div class="cnt"></div>
</div>
</body>
</html>
</pre>
<code>
<pre>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
.container{
position:relative;
width:500px;
height:500px;
border:1px solid blue;
}
.cnt {
position: absolute;
margin:auto;	
width:200px;
height:200px;
border:1px solid red;
left:0;
right:0;
top:0;
bottom:0;
} </style> </head> <body> <div class="container"><div class="innerCnt"></div> </div> </body> </html>

  (所有实例运行效果图,均类似右图,下面就不在粘图了(笔者太懒。。。。))

 这个案例主要应用了两个div,container和innerCnt组成,子div设成,固定宽高(非auto即可)、绝对定位(absolute)、top/right/bottom/left都设为0才能实现水平垂直居中的效果:

下面是本人猜测:在绝对定位情况下,如果没有设置坐标值(上右下左的距离),则默认吸附父容器左上角,但同时设置了上右下左的距离为等值的情况下相当于四个人同时朝这四个方向一起在拉绳子,当用相同的力量是达到了一个平衡态,使得容器得以水平垂直居中显示...233我太有才了这都想得出来

 

2.

 1 <!doctype html>
 2 <html lang="en">
 3 <head>
 4 <meta charset="UTF-8">
 5 <title>Document</title>
 6 <style type="text/css">
 7 .container{
 8     display:table-cell; //以表格形式布局
 9     width: 500px;
10     height: 500px;
11     vertical-align: middle; //垂直居中
12     text-align: center;    //水平居中
13     border: 1px solid #000000;
14 }
15 
16 .innerCnt{
17     display:inline-block;
18     width: 200px;
19     height: 200px;
20     border: 1px solid #FF0000;
21 }
22 </style>
23 </head>
24 <body>
25 <div class="container">
26 <div class="innerCnt"></div>
27 </div>
28 </body>
29 </html>

 

这个例子主要展示的是table-cell的应用 

table-cell此元素会作为一个表格单元格显示(类似 <td> 和 <th>)

使得整个区块作为一个单元格,通过vitical-align来控制垂直居中,text-align控制水平居中(需要注意的是子元素应该设置为inline-block来作为行内区块)。

 

3.

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
.container{text-align: center;width: 500px;height: 500px;border:1px solid blue;
}
.empty{width:100%;height:50%;margin-bottom:-100px;  //计算所得; =innerCnt.height/2
}
.innerCnt{display: inline-block;width: 200px;height: 200px;border:1px solid red;
}
</style>
</head>
<body>
<div class="container"><div class="empty"><!--空的内容--></div><div class="innerCnt">hello</div>
</div>
</body>
</html>

 

 

利用一个空div来占位,然后通过margin-bottom来占位使得下方元素上提,实现元素的水平(text-align:center)垂直居中。

 

转载于:https://www.cnblogs.com/V-JACK/p/5297552.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/430732.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 循环指定次数_亮仔的Python之路Day7——Python循环语句

day7&#xff1a;2019-09-01今日学习目的&#xff1a;了解循环语句&#xff0c;使用代码解放劳动力实践是检验真理的唯一标准我们使用代码的最终目的是解放劳动力当你还在复制粘贴累的半死的时候别人随手几行代码就搞定今天学习的是2种循环语句一、什么是循环语句循环语句:可以…

iOS MBProgressHUD 之带底板的加载提示

文章来自&#xff1a;http://blog.csdn.net/ryantang03/article/details/7877120 MBProgressHUD是一个开源项目&#xff0c;实现了很多种样式的提示框&#xff0c;使用上简单、方便&#xff0c;并且可以对显示的内容进行自定义&#xff0c;功能很强大&#xff0c;很多项目中都有…

HEC-RAS如何修改SA/2D Connection的名称

RAS Mapper中打开几何文件&#xff0c;进入编辑模式。

python调试蓝牙适配器_我写了一个查看Android手机的蓝牙模块是否开启的代码。在AVD上调试,因为是电脑,没有蓝牙适配器,可是...

为什么我用到蓝牙手机上的时候&#xff0c;刚打开这个程序&#xff0c;就会停止工作呢&#xff1f;代码如下&#xff0c;代码格式什么没错。publicclassMainActivityextendsActivity{BluetoothAdaptermBluetoothAdapternull;O...为什么我用到蓝牙手机上的时候&#xff0c;刚打开…

CFD何为收敛

文章来自——【小白的CFD之旅】26 何为收敛 - 流沙[胡坤] - 博客园 在CFD计算中&#xff0c;每一个网格上都会存储众多物理量&#xff0c;因此每一个网格上的任一个物理量在计算迭代过程中都会存在一个残差&#xff0c;这意味着在一次迭代过程中&#xff0c;同一物理量在不同的…

如何使用 Microsoft Azure Media Services 现场直播,(Live Streaming) 直播流媒体系统

不久之前&#xff0c;微软公司宣布了 Microsoft Azure Media Services 实时直播服务 ( Live ) 开始进入技术预览阶段&#xff0c;公开接受用户测试。 而这些实时直播服务其实早已被 NBC 运动频道用于多项重大运动赛事直播&#xff0c;包括英超联赛、NHL、周日橄榄球之夜 ( Sund…

vue如何split_vue代码分割的实现(codesplit)

在vue单页应用中&#xff0c;若不做任何处理&#xff0c;所有vue文件会打包为一个文件&#xff0c;这个文件非常的大&#xff0c;造成网页在首次进入时比较缓慢。做了代码分割后&#xff0c;会将代码分离到不同的bundle中&#xff0c;然后进行按需加载这些文件&#xff0c;能够…

两相流计算中,如何用Tecplot提取水相断面平均物理量?

1.显示水相 1.导入计算结果case、data文件到Tecplot中 2.Tecplot菜单栏Plot-Blanking-Value Blanking... 以体积分数为变量进行blanking: 此时&#xff0c;只显示体积分数<0.5的区域 2.提取水相断面物理量断面平均值 1.切片 Slices-Details-选择需要的切片位置-Extrac…

【Android实战】Gallary+ImageSwicther图片查看器

仿照如今各大新闻站点图片新闻的浏览模式&#xff0c;上面展示详细图片&#xff08;ImageSwitch&#xff09;&#xff0c;以下是能够滑动的小图片(Gallery)。当中须要注意的是ImageSwitch须要定义一个工厂返回的组件&#xff0c;而且能够设置动画效果。Gallery用适配器载入布局…

陈伯雄lisp_基于AutoLisp的AutoCAD二次开发自动生成系统图

龙源期刊网http://www.qikan.com.cn基于AutoLisp的AutoCAD二次开发自动生成系统图作者&#xff1a;郎建山金江来源&#xff1a;《科技视界》2013年第22期【摘要】本文主要阐述了应用AutoLisp语言二次开发AutoCAD自动生成系统图的实现方案。【关键词】AutoCAD&#xff1b;AutoLi…

Tecplot中使用公式

如图&#xff0c;计算结果中只有x、y、z三个方向流速&#xff0c;如果要知道某点流速大小需要自定义公式 方法&#xff1a; 其中Tecplot中自定义公式规则见该文&#xff1a; Tecplot中使用公式

birt报表与现有系统的集成

与现有的系统结合有两种常见方式(其一) 1、使用Birt自带的runtime 把Birt-runtime-2.1.3.zip解压&#xff0c;把WebViewerExample 拷贝到% tomcat-Home%\webapps目录下。 把你做好的*..rptdesign 和*.rptconfig文件放于% tomcat-Home%\webapps\ report目录下 我们把刚刚创建的第…

it工程师和码农的区别_你是开发工程师、程序员还是码农?

Developers are from Mars, programmers are from Venus, so where are coders from?不管是CPPer&#xff0c;Javaer&#xff0c;还是PHPer等等&#xff0c;不少开发人员经历过这样的困惑&#xff1a;我到底是工程师(SDE&#xff0c;or Developer)&#xff0c;程序员(Programm…

Tecplot中如何提取水线面(自由表面)并绘图

1.导入CAS和DAT文件 file-->load data 2.绘制体积分数云图 contour-->phase 2 3.绘制等值表面 plot-->iso-surface 4.从等值面提取数据 data-->extract-->iso-surfaces 如果报错记得勾选iso-surfaces&#xff0c;再进行上一步操作 此时&#xff0c;可以看到…

Mobiscroll的介绍【一款兼容PC和移动设备的滑动插件】

Mobiscroll是一个用于触摸设备的日期和时间选择器&#xff0c;它的使用不会改变HTML5、PhoneGap以及混合应用的原生用户体验。作为一款jQuery滑动选择插件&#xff0c;用户可以自定义主题样式&#xff0c;为自己的移动项目UI组件添色。Mobiscroll支持所有主流平台&#xff1a;i…

Tecplot云图锯齿状边界解决办法

问题描述&#xff1a; Tecplot绘制云图时出现锯齿状边界。如图&#xff1a; 解决办法&#xff1a; 2D Cartesion: Plot-Banking-Value Banking-Trim cells along boundary 3D Cartesion: 3D Cartesion中Banking选项卡无Trim cells along boundary选项&#xff0c;目前不知道…

zookeeper的acl权限控制_Zookeeper 权限控制 ACL介绍

zookeeper 的 ACL(Access Control List&#xff0c;访问控制表)权限在生产环境是特别重要的。ACL 权限可以针对节点设置相关读写等权限&#xff0c;保障数据安全性。permissions 可以指定不同的权限范围及角色。ACL 命令行1. getAcl 命令&#xff1a;获取某个节点的 acl 权限信…

sqlserver 跨服务器查询

有两种方法&#xff0c;先记下第一种 sqlserver manager里的新查询中启用 Ad Hoc Distributed Queries&#xff1a; exec sp_configure show advanced options,1 reconfigure exec sp_configure Ad Hoc Distributed Queries,1 reconfigure ---用openDATASOURCE执行 select * fr…

HEC-RAS泥沙计算中非恒定流和准恒定流的选择

准恒定流(Quasi-Unsteady Flow) 将非恒定流流量过程划分成小段的恒定流过程&#xff0c;并在该断时间段内执行恒定流分析计算水力特性&#xff0c;根据计算得到的水力特性计算该时段内的泥沙淤积结果。 优点&#xff1a;计算稳定&#xff0c;易收敛。 缺点&#xff1a;Quasi…