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;进入编辑模式。

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

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

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

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

Tecplot中使用公式

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

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;目前不知道…

YYCache 设计思路

iOS 开发中总会用到各种缓存&#xff0c;最初我是用的一些开源的缓存库&#xff0c;但到总觉得缺少某些功能&#xff0c;或某些 API 设计的不够好用。YYCache (https://github.com/ibireme/YYCache) 是我新造的一个轮子&#xff0c;下面说一下这个轮子的设计思路。 内存缓存 通…

python 下的数据结构与算法---6:6大排序算法

顶先最后推荐&#xff1a;哈哈&#xff0c;意思是放到顶部强调其重要性&#xff0c;但是应该我总结的六种算法看完了后再看的一篇醍醐灌顶的文章 一&#xff1a;冒泡排序&#xff08;Bubble Sort&#xff09; 原理&#xff1a;假设有n个数&#xff0c;第一轮时&#xff1a;从第…

UML基础知识点

UML : unified Modeling Language 统一建模语言1.对系统问题进行分析和建模2.非专利的第三代建模和规约语言3.UML是一种开放的方法、用于说明、可视化、构建、编写一个正在开发的、面向对象的、软件密集系统的开放方法4.UML集成了Booch、OMT和面向对象软件工程的概念面向对…

如何实现listbox选项,然后双击鼠标实现选项的删除

如何实现双击鼠标左键然后删除列表框中的选项呢&#xff1f; 只需要两步&#xff1a; 第一步&#xff0c;建立listbox控件与鼠标事件的绑定并给一个跳转函数; 如本例中的listbox控件&#xff0c;绑定事件<Double-Button-1>&#xff0c;其含义是指双击鼠标左键&#xf…

页面 接收跳转数据_【实战案例】在线教育渠道落地页数据分析

商业数智化工作坊“ 与多位来自高校的专家学者与业界导师共同探索商业数字化、智能化发展趋势、技术及实践培养数字思维&#xff0c;掌握数智化工具&#xff0c;实现管理能力跃迁”1背景与目标通过对跟渠道落地页数据的分析&#xff0c;优化用户路径&#xff0c;提高各环节的转…

ANSYS2020R2与Solidworks2019进行关联,但2019安装完后打开出现无法获得下列许可SOLIDWORKS Standard.使用许可文件不支持此版本(-21,126,0)

本身想将ANSYS2020R2与Solidworks进行关联&#xff0c;本身电脑上安装了2016版本&#xff0c;但是使用ANSYS2020R2软件&#xff0c;无法关联上。又没找到相应方法去解决&#xff0c;估计是版本问题无法关联上吧&#xff0c;所以就重新下个高点的版本试试。在网上下载相关软件&a…

《Linux内核》课本读书笔记 第三章

转载于:https://www.cnblogs.com/bushifudongjing/p/5339017.html

ANSYS Workbench对称建模

ANSYS Workbench对称建模 &#xff08;使用版本为ANSYS 2020R2&#xff09; 一、循环对称建模 1、建立三维模型。拖出一个静力学分析模块&#xff0c;材料保持系统默认&#xff0c;在Design Modeler中建立圆盘的1/4模型。外圆半径20m&#xff0c;内圆半径10m&#xff0c;厚度5m…

毕业论文排版之Word 中公式居中,编号靠右该怎么设置(针对左右不对称页边距)

首先感谢博主这篇&#xff0c;大家基本可以参照这个&#xff1a; http://t.csdn.cn/s0FY7&#xff1b; http://t.csdn.cn/FjmbH&#xff1b; 但是由于博主的是规规整整的页面边距&#xff0c;一篇为上下左右均为2cm&#xff0c;另一篇上下2.54cm左右3.18cm。ps:如果你为以上的页…

workbench出现“Unable to start the geometry editor”

今天上午打开workbench遇到这个“Unable to start the geometry editor”问题&#xff0c;但是重启软件还是没用&#xff0c;所以网上找了下。 方法1、来源百度——大向日葵爱太阳&#xff1a; 我刚出现这样的问题&#xff0c;解答办法是将你安装主程序下的破解文件的路径改一…