前端开发入门到实战:css实现div垂直水平居中的2种常用方法

方法一:

利用vertical-align:middle进行垂直方向上的居中对齐,此方法需要满足的条件:

  1. 设置父元素的行高line-height等于父元素height的高度
  2. 子元素必须是行内块级元素display:inline-block;
  3. 子元素设置vertical-align:middle
  4. 此方法在开发中不能右浮动(不能靠右边)

下方是完整代码,可以新建一个HTML文件进行测试(绿色的盒子):

<html>
<head>
<title>导航条</title>
<meta charset="utf-8" />
</head>

<style>

*{
    margin:0;
    padding:0;
}

.div1{
  height:200px;
  background:yellow;
  /*行高等于容器高度*/
  line-height:200px;
}

.div2{
    width:100px;
    height:100px;
    background:green;
    /*行内块级元素*/
    display:inline-block;
    /*中线和父元素基线上方出对其,参考字母"x"*/
    vertical-align:middle;
}

.div3{
    width:100px;
    height:100px;
    background:red;
    display:inline-block;
}

</style>
<body>

<div class="div1">
xxxxxxxxxxx
    <div class="div2" >
    </div>
    <div class="div3" >

    </div>
</div>

</body>
</html>

为了帮助大家让学习变得轻松、高效,给大家免费分享一大批资料,帮助大家在成为前端工程师,乃至全栈工程师的路上披荆斩棘。在这里给大家推荐一个前端全栈学习交流圈:784783012 欢迎大家进×××流讨论,学习交流,共同进步。
当真正开始学习的时候难免不知道从哪入手,导致效率低下影响继续学习的信心。
但最重要的是不知道哪些技术需要重点掌握,学习时频繁踩坑,最终浪费大量时间,所以有效资源还是很有必要的。

学习前端,我们是认真的

方法二:??

这种方法比较暴力,利用定位解决:

  1. 父元素开启相对定位
  2. 子元素绝对定位
  3. 子元素先向下移动父元素的50%,此时子元素的顶部与父元素的中线对齐了
  4. 子元素再向上移动自身高度"height"的一半,此时子元素的中线和父元素的中线对齐了
  5. 此方法可以右对齐,设置子元素right:0px;即可

下方是完整代码,可以新建一个HTML文件进行测试(绿色的盒子):

<html>
<head>
<title>导航条</title>
<meta charset="utf-8" />
</head>

<style>

*{
    margin:0;
    padding:0;
}

.div1{
  height:200px;
  background:yellow;
  /*相对定位开启*/
  position:relative;
}

.div2{
    width:100px;
    height:100px;
    background:green;
    /*绝对定位*/
    position:absolute;
    /*可以右对齐*/
    right:0px;
    /*先向下移动父元素的50%,此时子元素的顶部与父元素的中线对齐了*/
    top:50%;
    /*再向上移动自身高度"height"的一半,此时子元素的中线和父元素的中线对齐了*/
    margin-top:-50px
}

</style>
<body>

<div class="div1">
    <div class="div2" >
    </div>
</div>

</body>
</html>

原文地址:https://blog.51cto.com/14284898/2402961

时间: 2024-10-08 16:31:56

前端开发入门到实战:css实现div垂直水平居中的2种常用方法的相关文章

前端开发入门到实战:CSS中字体单位:px、em、rem和%

对于绘图和印刷而言,"单位"相当重要,然而在网页排版里,单位也是同样具有重要性,在CSS3普及以来,更支持了一些方便好用的单位(px.em.rem-等),这篇文章将整理这些常用的CSS单位,也帮助自己未来在使用上能更加得心应手. "网页"和"印刷"的单位若要把单位做区隔,最简单可以分为"网页"和"印刷"两大类,通常对于CSS来说只会应用到网页的样式,毕竟真正要做印刷,还是会倾向透过排版软件来进行设计. 网页

前端开发入门到实战:css 浮动布局,清除浮动

浮动的特性: (1)浮动元素有左浮动(float:left)和右浮动(float:right)两种 (2)浮动的元素会向左或向右浮动,碰到父元素边界.其他元素才停下来 (3)相邻浮动的块元素可以并在一起,超出父级宽度就换行 (4)浮动让行内元素或块元素自动转化为行内块元素(此时不会有行内块元素间隙问题) (5)浮动元素后面没有浮动的元素会占据浮动元素的位置,没有浮动的元素内的文字会避开浮动的元素,开成文字绕图的效果 (6)父元素如果没有设置尺寸(一般是高度不设置),父元素内整体浮动的元素无法撑开

前端开发入门到实战:css 定位布局

文档流: 文档流,是指盒子按照html标签编写的顺序依次从上到下,从左到右排列.块元素占一行,行内元素在一行之内从左到在排列,先写的先排列,后写的排在后面,每个盒子都占据自己的位置. 关于定位: 可以使用css的position属性来设置元素的定位类型,position设置项如下: (1)relative?生成相对定位元素,元素所占据的文档流的位置保留,元素本身相对自身原位置进行偏移. (2)absolute?生成绝对定位元素,元素脱离文档流,不占据文档流的位置,可以理解为漂浮在文档流的上方,相

前端开发入门到实战:CSS 页面滚动平滑

1. 这些年自己步子慢了 这些年自己在无障碍访问,SVG和Canvas这些偏小众的领域花了大量的学习精力,以至于很多前端新特性,新技术没能及时关注和了解,有CSS3领域的新属性,有JS领域的新API,包括全新的ES6/ES7语法等,相比以前的学习,步子确实慢了.比方说,本文要介绍的平滑滚动,无论是CSS还是JS,现代浏览器都提供了原生的属性或方法支持,而且差不多已经有一年时间,而我最近才知道,和数年前实时关注新技术的自己形成了明显的对比. 不过随着SVG和Canvas的基础越来越牢固,细节越来越

前端开发入门到实战:css实现修改浏览器自动填充表单的默认样式

当表单中存在input[password]的时候,采用submit方式提交.就会触发浏览器自动填充表单.比如chrome自动填充后,淡×××输入框代替了背景样式,看起来有些怪异. ?那么如何通过css实现取消浏览器自动填充表单的默认样式呢? 解决方法一: 当input文本框是纯色背景的,可以对input:-webkit-autofill使用足够大的纯色内阴影来覆盖input输入框的×××背景:如: input:-webkit-autofill { -webkit-box-shadow: 0 0

前端开发入门到实战:HTML5新增和废弃的标签

一.废弃的标签 以下的 HTML 4.01 元素在HTML5中已经被删除,虽然浏览器为了兼容性考虑都还支持这些标签,但建议使用新的替代标签,矛盾的是老浏览器对新标签的支持度又不够,视项目的受众对象而定了. 1.能用CSS代替的元素 这些元素包含basefont.big.center.font.s.strike.tt.u.这些元素纯粹是为页面展示用的,表现的内容应该由CSS完成. 2.frame框架 这些元素包含frameset.frame.noframes.HTML5中不支持frame框架,只支

前端开发入门到实战:把HTML转成PDF的4个方案及实现

在本文中,我将展示如何使用 Node.js.Puppeteer.headless Chrome 和 Docker 从样式复杂的 React 页面生成 PDF 文档. 背景:几个月前,一个客户要求我们开发一个功能,用户可以得到 PDF 格式的 React 页面内容.该页面基本上是患者病例的报告和数据可视化结果,其中包含许多 SVG.另外还有一些特殊的请求来操纵布局,并对 HTML 元素进行一些重新排列.因此与原始的 React 页面相比,PDF 中应该有不同的样式和额外的内容. 由于这个任务比用简

前端开发入门到实战:计算一个页面内每个模块的曝光时间(停留时间)

产品希望看到投放出去的活动页,用户对其页面内的什么信息比较感兴趣,对什么信息完全不感兴趣.=> 计算页面内每模块的停留时间 第一次听到这个需求,我的大脑开始疯狂运转,然后想到了plan 1, plan 2, plan3...中间还有很多失败想法我已经忘记了,这里方案三是我最终采用的方法. 方案一:根据页面dom将页面分模块 var bodyChildrenLists = $('body').children() var bodyChildDomLsit = [] var initHeight =

前端开发入门到实战:HTML标签和JS中设置CSS3 var变量

一.HTML标签中设置CSS变量 如下: <div style="--color: #cd0000;"> <img src="mm.jpg" style="border: 10px solid var(--color);"> </div> 直接正常CSS语句一样在style属性中设置即可. 效果如下截图: 二.JS中设置CSS变量 如下,HTML示意: <div id="box">