html居中

CSS中垂直居中的方法

孤者浪人 提交于 2019-11-28 22:22:25
本文转载于: 猿2048 网站 CSS中垂直居中的方法 昨天总结了css中水平居中的方法,今天来总结一下css中实现垂直居中的方法。 line-height line-height用于实现单行文本的垂直居中,如下图中,我们要求单行文本垂直居中,只需要将div2设置行高line-height和height的值相同即可,也可以不用设置高度,因为单行文本的行高会撑开高度,其实二者就是一样的值。 但是这种方法有个不足之处,那就是如果文字内容的长度大于块的宽度时,就有一部分内容脱离了块,因为就不再是单行文本了,所以此方法只适用于单行文本。 还有一个方法就是,如果不设置元素height的情况下,那么本身就是元素包裹着内容,这时候只要将padding-top与padding-bottom设置为相同的值,同样是垂直居中的效果,而且这种方法对多行文本等都通用。 vertical-align:middle ​通过设置vertical-align:middle也可以实现垂直居中,但它有以下几种情况: 如下图,div2中同时又inline和inline-block元素,我们没有给div2设置高度时,它的高度由图片的高度撑开,而且图片和文本显示在一行,但我们发现图片下方有空隙,这是因为inline-block自带vertical-align属性,而且是默认值baseline。现在我们把vertical

CSS布局:元素水平垂直居中

Deadly 提交于 2019-11-28 17:21:17
CSS布局:元素水平垂直居中 本文将依次介绍在不同条件下实现 水平垂直居中 的多种方法 水平垂直居中 是在写网页时经常会用到的需求,在上两篇博客中,分别介绍了水平居中和垂直居中的方法。本文的水平垂直居中就是将之前的水平居中和垂直居中用到的方法综合起来。用到的原理都是一样的。相信掌握水平居中和垂直居中的方法后,就能自己总结如何实现水平垂直居中 Tip: 下文中说的适用场景只是举了几个简单的例子方便读者理解。实际应用场景太复杂,生搬硬套容易出错。最重要的是掌握各种方法能够实现居中的原理。只要掌握了原理,那么不管问题怎么变都可以根据自己的理解选择合适的方法。 一、使用text-algin和line-height 1.原理 使用text-algin属性的center值,实现水平居中。 使用line-height属性,使其的值等于父元素的高度,实现垂直居中 两者综合实现水平垂直居中 2.适用场景 (1)通常用于可以设置行高的元素上 3.实现步骤 (1)在父元素上设置文本水平居中 text-algin:center; (2)在子元素上设置行高等于父元素高度 line-height:100px; 4.完整代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>水平垂直居中</title> <style> .box {

元素的水平垂直居中解决方法

不羁岁月 提交于 2019-11-28 15:42:00
有时候为了使页面元素看起来更美观,常常会让元素水平居中,垂直居中。下面总结了几个常用的方法。 首先HTML结构如下: 1 <div class="out"> 2 <div class="in">布局</div> 3 </div> 方法1、使用最流行的flex布局方案。 1 .out { 2 display: flex; 3 justify-content: center; 4 align-items: center; 5 } 方法2、使用定位和偏移 1 .out { 2 position: relative; 3 } 4 .in { 5 position: absolute; 6 top: 50%; 7 left: 50%; 8 transform: translate(-50%, -50%); 9 } 使用transform可以不用考虑内部元素的宽高。 方法3、使用定位和负margin 1 .out { 2 position: relative; 3 } 4 .in { 5 position: absolute; 6 top: 50%; 7 left: 50%; 8 margin-left: -25px; 9 margin-top: -12.5px; 10 } 此时,需要明确内部元素的宽高。(这里设置的内部元素in是高25px,宽50px) 方法4、使用定位和margin

css实现水平垂直居中

空扰寡人 提交于 2019-11-28 15:20:22
第一种:利用css3的transform和绝对定位 <!DOCTYPE html> <html> <head> <title></title> </head> <style type="text/css"> /*消除行内元素的默认边距*/ *{ margin: 0; padding: 0; box-sizing: border-box;/*为元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制*/ } body{ background-color: #999; } main{ background-color: #fff; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);/*以左上角为圆点向上和左偏移自身宽高50%的距离*/ -webkit-transform: translate(-50%,-50%); -moz-transform: translate(-50%,-50%); } </style> <body> <main>水平垂直居中</main> </body> </html> 效果如图所示,并且不管如何改变页面的宽高,元素始终水平垂直居中。 第二种:利用css3的transform和相对定位 使用这种方法必须设置html,body的高度 <!DOCTYPE html

CSS布局:元素垂直居中

孤人 提交于 2019-11-28 12:58:27
CSS布局之元素垂直居中 本文将依次介绍在不同条件下实现 垂直居中 的多种方法及简单原理 Tip: 下文中说的适用场景只是举了几个简单的例子方便读者理解。实际应用场景太复杂,生搬硬套容易出错。最重要的是掌握各种方法能够实现居中的原理。只要掌握了原理,那么不管问题怎么变都可以根据自己的理解选择合适的方法。 一、使用line-height 1.原理 ​ 有行高的元素 ,内容会默认显示在行高的 垂直中心处 ,通过设置行高等于父元素的高度,可以达到内容在父元素中垂直居中的效果 2.实现步骤 (1)父元素有一个确定的高度 (2)在父元素或在子元素中设置line-height等于父元素的高度 3.适用场景 (1)具有行高属性的单行元素 Tip: 若元素有多行,line-height用同样的原理也可实现,不过需要根据行数计算且容易出错(若父元素宽度变化影响行数,那么就要重新计算布局),这里不推荐使用line-height设置多行居中。 4.完整代码展示 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>单行元素垂直居中</title> <style> #box { height: 120px; line-height: 120px; /*设置成和父元素同高,对子元素父元素设置都有效*/ border: 2px solid

摸鱼的前端练习学习笔记(二)

你说的曾经没有我的故事 提交于 2019-11-28 05:43:25
摸鱼的前端练习学习笔记(二) 今天第二天进行独立编写,因为今天要学习ELK,所以只写了一个导航栏,但是还有首尾的位置没有调出来。 HTML 今天加了一个div,在其中使用< ul >标签和< li >标签显示导航栏,在li标签中加入< a >标签,将列表设为超链接。 CSS 在css中将此div设置margin-top,设置距离上一个元素距离,在ul标签中设置每个标签都居中,设置文字大小和字体,设置每个li为左浮。设置li标签风格为none,设置文字行高和div块一样高,设置居顶部高度使之在垂直方向可以居中。 list-style: none; float: left; text-align: center; width: 120px; height: 35px; font-size: 20px; font-family: "宋体"; border-right: #00008B 2px solid; line-height: 35px; margin-top: -15px; 记录一些所学知识: ul标签配合li标签使用 li标签可以设置取消点,list-style:none; 设置边框可以单独设置边框的一边 设置line-height就是设置文字的行高 margin-top等可以为负数 图片在下面,留个记录看看每天的进度 来源: https://blog.csdn.net/qq

div+css实现水平/垂直/水平垂直居中超详解

本秂侑毒 提交于 2019-11-28 02:59:40
目录 一、水平居中 1.块级元素水平居中 方法一:设置margin:0 auto 方法二:设置flex布局 方法三:设置css3的transform 2.行内元素水平居中 行内元素在块级元素中水平居中 方法一:将外层块级元素设置为text-align:center 方法二:将行内元素设置为块级元素 3.元素内部文字水平居中 1)块内文字水平居中 方法:text-align:center 2)行内文字水平居中 二、垂直居中 1)块级元素的内部元素垂直居中 方法一:flex布局(块级元素、行内元素都可) 方法二:css3 transform属性(对行内元素无效) 2)元素内文字垂直居中 1.设置line-height和height相同(仅在容器宽高固定时有效,那么当宽高为百分比时无效) 2.flex布局 附:css2的vertical-align属性(对块级元素无效) 三、水平垂直居中 1.块级元素水平垂直居中 1)使用flex布局 2)使用css3 transform属性 2.元素内文字水平垂直居中 方法一:设置text-align和line-height 方法二:flex布局(都可) 综上所述,flex布局近乎全能,要好好掌握!! 在此之前,清除一下浏览器的默认样式 html,body { margin : 0 ; padding : 0 ; } ok,开始正文~ 一、水平居中 1

垂直居中的几种方法

我的梦境 提交于 2019-11-28 01:29:57
(1)margin:auto法 css: div{ width: 400px; height: 400px; position: relative; border: 1px solid #465468; } img{ position: absolute; margin: auto; top: 0; left: 0; right: 0; bottom: 0; } html: <div> <img src="mm.jpg"> </div> 定位为上下左右为0,margin:0可以实现脱离文档流的居中. (2)margin负值法 .container{ width: 500px; height: 400px; border: 2px solid #379; position: relative; } .inner{ width: 480px; height: 380px; background-color: #746; position: absolute; top: 50%; left: 50%; margin-top: -190px; /*height的一半*/ margin-left: -240px; /*width的一半*/ } 补充:其实这里也可以将marin-top和margin-left负值替换成, transform:translateX(-50%)和transform

css垂直居中方案

耗尽温柔 提交于 2019-11-28 01:22:54
垂直居中的几种方法 html结构 <div class="container"> <div class="item">垂直居中</div> </div> css <style> .container { width: 500px; height: 500px; border: 1px solid #000; position: relative; } </style> 1. 使用flex布局 在父容器中设置 .container{ displayy: flex; justify-content: center; align-items: center } 2. 绝对定位 分为已知宽高和未知宽高两种情况 已知宽高都是100px,设置自身为绝对定位(absolute),top和left为50%,margin-left、margin-top为自身的一半,也就是50px .item { width: 100px; height: 100px; border: 1px solid red; position: absolute; top: 50%; left: 50%; margin-left: -50px; margin-top: -50px; } 未知宽高 /*使用traansform*/ .item { border: 1px solid red; position: absolute

div+css 兼容 ie6 ie7 ie8 ie9和FireFox Chrome等浏览器方法

拜拜、爱过 提交于 2019-11-27 23:03:44
div+css 兼容ie6 ie7 ie8 ie9和FireFox Chrome等浏览器方法 1.DOCTYPE 影响 CSS 处理 2.FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行 3.FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中 4.FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width 5.FF: 支持 !important, IE 则忽略, 可用 !important 为 FF 特别设置样式 6.div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行 7.cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以 8.FF: 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar