css垂直居中

垂直水平居中方法小结

一个人想着一个人 提交于 2019-12-04 03:49:00
前言: 最近看到很多面试题目会问:请说出几种使用css完成垂直水平居中的方法?正好看css基础的时候看到 一篇文章 是讲完全居中的,这边对于文章中的内容做个小结。 一、使用absolute(Absolute Centering) 1.1 具体代码如下: .container { position: relative; } .absolute_center { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 50%; height: 50%; margin: auto; padding: 20px; overflow: auto; } <div class="container"> <div class="absolute_center"> <ul> <li> 该方法的核心思想是是使用绝对定位布局,使当前元素脱离正常的流体特性,而使用absolute的流体特性 </li> </ul> </div> </div> 1.2 该方法的核心思想是: 使用absolute进行定位布局,脱离正常的块状元素流体特性,而通过absolute的流体特性完成垂直水平居中。 这里有两个基本知识点需要知道: 1.流体特性: 块状水平元素,如div元素,在默认情况下(非浮动、绝对定位等),水平方向会自动填满外部的容器

总结:前端开发中让元素水平垂直居中的方法

坚强是说给别人听的谎言 提交于 2019-12-03 23:19:33
前端开发中,我们经常需要对元素进行水平垂直居中。为此,小编特地总结了让元素居中的方法。 水平居中text-align:center; 这个是没有浮动的情况下,我们可以先将要居中的块级元素设为inline/inline-block,然后在其父元素上加上属性text-align:center;即可。如果要居中的块级元素直接是内联元素(span、img、a等),直接在其父级元素上加上属性text-align:center;即可; .way { border: 1px solid red; width: 250px; } .way img { max-width: 200px; } .way1 { text-align: center; font-size: 0px; //HTML图片之间,浏览器会产生默认的间距,父元素设置font-size:0px;可以很好地解决这个问题。 } <div class="way way1"> <img src="fj.jpg" alt=""> </div> 使用margin:0 auto;水平居中 前提:居中的元素必须是块级元素,如果是内联元素,需要添加属性display:block;而且元素不浮动。 .way2 img { display: block; margin: 0 auto; } <div class="way way2"> <img src=

css中:如何让一个图片(不知道宽高,宽高可能比父元素div大),在父元素div内部水平垂直居中,并且不溢出父元素div,且图片不拉伸变形(可等比例缩小)?

跟風遠走 提交于 2019-12-03 15:22:19
效果图: 不管父元素的宽高怎么变化,图片都是水平垂直居中的,并且不溢出父元素。 注意:   img中css属性:position:absolute,margin:auto不能缺少,如果只有top和bottom,则只能实现垂直居中;如果只有left和right,则只能实现水平居中;如果四个都有,能够实现水平垂直居中 原理是:   绝对定位的布局取决于三个因素: 一个是元素的位置,一个是元素的尺寸,一个是元素的margin值。   没有设置尺寸和 margin 的元素会自适应剩余空间,位置固定则分配尺寸,尺寸固定边会分配 margin,都是自适应的。   IE7- 的渲染方式不同,渲染规则也不一样,他不会让定位元素去自适应。 (这是我之前遇到的一个面试题) 来源: https://www.cnblogs.com/ympjsc/p/11802051.html

[分享] 纯CSS完美实现垂直水平居中的6种方式

对着背影说爱祢 提交于 2019-12-03 14:26:07
前言 由于HTML语言的定位问题,在网页中实现居中也不是如word中那么简单,尤其在内容样式多变,内容宽高不定的情况下,要实现合理的居中也是颇考验工程师经验的。网上讲居中的文章很多,但是都不太完整,所以小茄今天就来总结下纯CSS实现居中的各种方案。学疏才浅,文中如有不当之处,万望指出! 6种方案 1、绝对定位+margin:auto <style type="text/css"> .wrp { background-color: #b9b9b9; width: 240px; height: 160px; } .box { color: white; background-color: #3e8e41; width: 200px; height: 120px; overflow: auto; } .wrp1 { position: relative; } .box1 { margin: auto; position: absolute; left: 0; right: 0; top: 0; bottom: 0; } </style> <div class="wrp wrp1"> <div class="box box1"> <h3>完全居中层1:</h3> <h3>开发工具 【 WeX5 】: 高性能轻架构、开源免费、跨端、可视化</h3> </div> </div> 效果:

CSS实现文字和图片的水平垂直居中

橙三吉。 提交于 2019-12-03 14:04:16
CSS实现文字和图片的水平垂直居中   关于文字和图片的水平垂直居中,在前端界绝对算是一个老生常谈的问题了,尤其是垂直居中,什么千奇百怪的解法都能想的出来。下面我就总结一些比较常用的方法: 一、文本的水平垂直居中: 1、水平居中: 是不是很开心?超级简单的问题,一个text-align:center 就搞定了。过过过... -------------------------------------下面看单行、多行文本的垂直居中------------------------------------- 2、垂直居中:   1)、单行文本 <!--只要height值等于line-height值就ok -- > <div style="height:100px;line-height:100px;"> 有且仅占有一行的情况下垂直居中 </div> ps:height === line-height 无法使替换元素,如<img>、<input>、<areatext>、<select>...垂直居中,必须有<a>、<span>...类似行内标签配合才能使垂直居中生效! (下面的图片垂直居中解法5 会用到这个特性)   2)、多行文本 情况1:高度固定 关键属性:display:tabel-cell; vertical-align:middle; <style>div{height:300px

主流 CSS 布局(水平居中、垂直居中、居中 )

99封情书 提交于 2019-12-03 05:10:43
什么是布局 html 页面的整体结构或骨架 布局不是某个技术内容 而是一种设计思想 [ 布局方式 ] 水平居中布局 垂直居中布局 居中布局( 水平 + 垂直 ) 什么是水平居中布局 水平居中布局 元素相对于页面/元素相对于父元素水平居中 [ 实现方式 ] inline-block + text-align 属性配合使用 注:[优点] 浏览器兼容性比较好 [缺点] text-align 属性具有继承性 导致子级元素的文本居中显示 解决方法:在子级元素重新设置 text-align 属性覆盖掉父级元素的 text-align 属性 <style> *{ margin: 0; padding: 0; } .parent { width: 100%; height: 200px; background-color: #00ffff; /* 方法一: inline-block + text-align 属性配合使用 为父元素 添加 text-align 属性 为子元素添加 display 属性 - text-align 属性 为文本内容设置对其方式 + left: 左对齐 + center: 居中对齐 + right: 右对齐 */ text-align: center; } .child { width: 300px; height: 200px; background-color:

Div垂直水平居中(CSS篇)

匿名 (未验证) 提交于 2019-12-02 20:21:24
方式一: .pdiv{ width: 500px; height: 400px; margin: 100px auto; border: 1px solid green; position: relative; } .div{ width: 300px; height: 100px; line-height: 100px; text-align: center; border: 1px solid red; position: absolute; top: 50%; left: 50%; margin: -50px 0 0 -150px; } 方式二: .pdiv{ width: 500px; height: 400px; margin: 100px auto; border: 1px solid green; text-align: center; position: relative; } .div{ margin: auto; width: 300px; height: 100px; line-height: 100px; text-align: center; border: 1px solid red; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); } 方式三: .pdiv{

CSS垂直居中的8种方法

匿名 (未验证) 提交于 2019-12-02 20:21:24
CSS垂直居中的8种方法 1、 通过verticle-align:middle实现CSS垂直居中。 通过vertical-align:middle实现CSS垂直居中是最常使用的方法,但是有一点需要格外注意,vertical生效的前提是元素的display:inline-block。 2、 通过display:flex实现CSS垂直居中。 随着越来越多浏览器兼容CSS中的flexbox特性,所以现在通过“display:flex”实现CSS水平居中的方案也越来越受青睐。 通过display:flex实现CSS垂直居中的方法是给父元素display:flex;而子元素align-self:center; 这个跟CSS水平居中的原理是一样的,只是在flex-direction上有所差别,一个是row(默认值),另外一个是column。 3、 通过伪元素:before实现CSS垂直居中。 具体方式是为父元素添加伪元素:before,使得子元素实现垂直居中。 4、 通过display:table-cell实现CSS垂直居中。 给父元素display:table,子元素display:table-cell的方式实现CSS垂直居中。 5、 通过隐藏节点实现CSS垂直居中。 创建一个隐藏节点#hide,使得隐藏节点的height值为剩余高度的一半即可。 这种方法也适用于CSS水平居中,原理一样。

CSS垂直水平居中,display:flex,布局,文字属性的一些零碎

 ̄綄美尐妖づ 提交于 2019-12-02 16:51:13
1. body的height不可少,如body{height:100%},否则子元素会不认,如果子元素的高直接以百分比写的话,会不显示。因为识别不出来。 宽度则不会,因为浏览器的宽度是固定的,高度会滚,不固定。 2. border-sizing其实是将默认的content-sizing转为了老ie的盒子模型 如果元素float 可以通过转为该模式,让多个元素在width相加===1时控制在一行上 3. display:flex 弹性布局类似于word中的 按内容分布表格 的意思。按内容来自动分配。 为什么在body中定位会失效? jusitify-content:Center 控制水平居中 没有问题 但align-items:center 控制垂直居中 就失效了 因为body没有控制大小和绝对定位! body { height : 100 % ; width : 100 % ; display : flex ; justify-content : center ; position : absolute ; align-items : center ; } 这里position 必须和height,width一起配合来用,哪个缺少,相应位置上的定位就达不到了。 如果是一个普通的div呢? div { width : 300 px ; height : 230 px ;

css盒子五种常用的居中方式

别说谁变了你拦得住时间么 提交于 2019-12-02 15:37:06
假设一个 div 里面有一个 p 元素。 <div><p></p></div> 第一种居中方式: 利用了伪元素让子元素 p 在 div 盒子里左右水平居中只需要在它的父元素 div 里加 text-align:center; 垂直方向居中需要在父元素后面加了一个伪元素,并使得样式为 inline-block;height:100%; 就是和父元素一样高, vertical-align:middle; 垂直居中,也就是 p 元素相对与伪元素居中,由于伪元素和 div 一样高,所以相当于 p 元素在 div 里垂直居中。 css 样式如下: div{width:200px;height:300px;border:2px solid #000;margin:200px auto; text-align:center;font-size:0;} div p{width:100px;height:100px;background:#666; display:inline-block;vertical-align:middle;} div:after{content:"";display:inline-block;height:100%;vertical-align:middle;} 第二种居中方式: 这里利用了定位居中 子元素 p 设置 position : absolute 脱离文档流 ,