当前位置:首页 > 生活百科

div上下布局方法(利用div和css布局的优势)

栏目:生活百科日期:2025-03-11浏览:0

内容导读

当父p的行高等于自身高度时,内部的行内元素会上下居中显示。行内块没有固定高度时也会上下居中显示。所以需要对父p的 line-height 进行调整。利用定位属性(top、left、right、bottom)百分比的模式。若为100%,则代表偏移的长度为父p的高度(宽度)的100%。定位属性top和bottom(或是left和right)值分别设置为0,但子p有固定高度(宽度),并不能达到上下(左右)间距为0,此时给子p设置 margin:auto 会使它居中显示。

转载自喜欢JS的无名小站

例如 一个父p(w:100%;h:400px)中有一个子p(w:100px;100px;)。让其上下左右居中。

方法一(varticle-align

理念

利用表格单元格的居中属性。

步骤

父p外层配置一个p,同时设置为表格元素 (display: table),宽度为100%父p配置为表格单元格元素 (display: table-cell)父p配置居中属性(vertical-align: middle),使子p上下居中子p通过margin配置左右居中(margin-left:auto; margin-right:auto

例子

&<style&> * {margin: 0; padding: 0; box-sizing: border-box;} .table {display: table; width: 100%;} .father {display: table-cell; vertical-align: middle;} .son {margin: auto;}&</style&>&<body&> &<p class="table" &> &<p class="father"&> &<p class="son"&>&</p&> &</p&> &</p&>&</body&>

注:

表格单元格比较特殊,如果只有一个单元格时,它的宽度默认会占父级(table|tr)宽度的100%;table默认宽度不会撑开,需要手动配置width:100%;

方法二(line-height)

理念

当父p的行高等于自身高度时,内部的行内元素会上下居中显示。行内块没有固定高度时也会上下居中显示。通过文本居中属性text-align:center,可以使内部行内元素或行内块元素左右居中显示。

步骤

子p设定为行内块元素(display:inline-block);父p设置行高(line-height)使子p上下居中父p设置文本居中(text-align:center)使子p左右居中。

&<style&> * {margin: 0; padding: 0; box-sizing: border-box;} .father {line-height: 500px; text-align: center; font-size: 0;} .son { display: inline-block; /* display: inline-flex; display: inline-grid; display: inline-table; */ }&</style&>&<body&> &<p class="father"&> &<p class="son"&>&</p&> &</p&>&</body&>

注: 行高如果设置为当前父p的高度(400px)的话,有固定高度的子p并不会居中显示的,问题出在浏览器默认将其当做文本居中的,即把它当做了一段文本(chrome默认font-size:16px;hight:21px)进行居中,没把它当做高度100px进行居中。所以需要对父p的line-height进行调整。以font-size:0(对应的字体高度为0)为例子,则需要line-height增加一个子p的高度(400px + 100px;)。

方法三(定位

理念

利用定位属性(top、left、right、bottom)百分比的模式。若为100%,则代表偏移的长度为父p的高度(宽度)的100%。

步骤

父p标记下定位(position:relative|absolute|fixed);子p绝对定位(position:absolute)子p上下居中:top:50%;margin-top:-h/2; 或是 bottom:50%;margin-bottom:-h/2;;子p左右居中: left:50%;margin-left:-w/2 或是 right:50%;margin-right:-w/2

例子

&<style&> * {margin: 0; padding: 0; box-sizing: border-box;} .father {position: relative;} .son {position: absolute;bottom:50%;margin-bottom: -50px;left: 50%;margin-left: -50px; }&</style&>&<body&> &<p class="father"&> &<p class="son"&>&</p&> &</p&>&</body&>

方法四(定位)

理念:

定位属性top和bottom(或是left和right)值分别设置为0,但子p有固定高度(宽度),并不能达到上下(左右)间距为0,此时给子p设置margin:auto会使它居中显示。

步骤:

父p标记下定位(position:relative|absolute|fixed|sticky);子p绝对定位(position:absolute)子p上下居中:top:0;bottom:0;margin-top:auto;margin-bottom:auto子p左右居中:left:0;right:0;margin-left:auto;margin-right:auto

例子

&<style&> * {margin: 0; padding: 0; box-sizing: border-box;} .father {position: relative;} .son {position: absolute; top: 0; bottom:0; left: 0; right: 0; margin: auto}&</style&>&<body&> &<p class="father"&> &<p class="son"&>&</p&> &</p&>&</body&>

方法五(flex)

理念

弹性盒子,自带的一个居中功能

例子

&<style&> * {margin: 0; padding: 0; box-sizing: border-box;} .father {display: flex; align-items: center} .son {margin: auto}&</style&>&<body&> &<p class="father"&> &<p class="son"&>&</p&> &</p&>&</body&>

“div上下布局方法(利用div和css布局的优势)” 的相关文章

excel怎么画表格线条(绘制表格操作方法)

各位小伙伴们大家好!我是归一!今天我将带着大家了解一下Excel日期函数,并用它们来生成一张自定义的日期表,大家一起来学习吧~#制作表格#首先,我们先来了解一些...

一个网站如何做好aso优化(10点做好aso优化)

ASO的目的很简单,提高APP在APPStrore(应用商店)的曝光率,为应用带来下载量,从而起到一个宣传、推广该APP的目的。说白了,跟SEO推广网站一样,A...

喜茶为什么那么火,90%的人不知道的套路

昨天,喜茶继联名杜蕾斯被群嘲后又一次“喜提热搜”,针对济南一家喜茶店员工殴打外卖小哥一事,喜茶方面做出回应:“涉事员工已全作辞退处理”。监控上显示,顾客在12:...

公司网站建设方案(网页制作策划书和流程)

IT行业是我国经济发展中速度最快的行业之一,是一个典型的朝阳产业,发展前景广阔。因为它涉及到全国各行各业,关系到人们生活的方方面面。无论是企业还是政府,社会对I...

excel判断函数的使用(if多重判断条件格式)

对于IF函数,相信很多人都不陌生,它是一个条件判断函数,几乎可以解决我们工作中遇到的,所有的条件判断之类的问题,我觉得它的重要程度不亚于vlookup函数,使用...

python中str函数的用法(str函数的详细用法)

简介字符串是Python最常用的数据类型。我们可以使用引号(&‘或&“,甚至&“&”&”或&R...

dvr是什么设备(车上DVR使用方法)

NVR是接IPcamera的录像机,IPcamera又分为CIF/D1普通的IPC与数字百万高清IPC;DVR的录像效果取决于摄像机与DVR本身的压缩算法与芯片...

人际网络营销合法吗,怎么避免入传销陷阱

网络配图1、不允许喝酒。喝酒误事,一个真实的小故事。以前一个老朋友,出去喝酒打车回寝,下车时一看兜里没带钱,于是仗着喝了酒准备赖账。但是司机偷偷地跟着他摸到了寝...

mac开发java的好处(mac搭建java开发环境的相关知识)

对于软件开发人员,代码编辑器好用与否直接影响代码编辑的效率。软件开发,基本上都有集成开发环境(IDE)工具,且自带编辑器,但IDE自带编辑器多少都存在一些不足。...

品牌推广渠道有哪些(新品牌在网络上快速推广的方法)

很多企业在成立新品牌之后,首先想到的不是怎么去打造品牌,而是怎么去尽快获取流量,来找我们公司合作的市场部门负责人说的最多的就是,你给我们做营销推广,流量和销量能...