使用css实现垂直居中
- vartical-align
vartical-align可以设置行内元素和表格单元格(table-cell)垂直对方式,所以如果元素是行内元素或者表格的话,可以直接应用这个属性对内容进行对齐设置。如果是块级元素,需要将元素的display设置为table-cell,然后使用vartical-align=center
blockElement{
display:table-cell;
vartical-align:center;
}
缺点:table-cell是css3中的属性,所以根据平台的不容可能会有兼容性的问题。具体兼容程序可以在caniuse网站查询。 - align-items
align-items是设置伸缩盒中的元素在cross axis(侧轴)方向的放置方式。
通过设置display:flex和align-items:center就可以实现将元素居中。
element{
display:flex;
align-items:center;
}
缺点:同样是兼容性问题 - justify-content
justify-content是设置伸缩盒中的元素在main axis(主轴)方向的放置方法。主轴是从左到右的,但是通过将flex-direction设置为column可以将主轴改变为上下方向。然后使用justify-content将元素居中。
element{
display: flex;
flex-direction: column;
justify-content: center;
} - 绝对定位与相对定位
同时使用父元素和子元素的高度,将父元素设置为相对定位,子元素设置为绝对定位。然后通过设置top或bottom值,就可以轻易的将子元素居中;
fatherElement{
pisition:relative;/*相对定位*/
height:number;
}
element{
position:absolute; /*绝对定位*/
top:number;
}
缺点:这种情况的前提就是必须已知父元素和子元素的高度,然后根据差值计算。 - 绝对定位和负外边距
这种情况跟上面的区别就是只使用子元素的高度。设置绝对定位的元素top值为50%,子元素的上边缘位于父元素的50%高度,然后使用负外边距将元素向上移动一般子元素高度
fatherElement{
position:relative;
}
element{
position:absolute;
top:50%;
margin-top:-number;/*负值,值为子元素的二分之一高度*/
}
缺点:必须知道被居中元素的尺寸; - 绝对定位和transform的translate
这个方法与上一个方法一处不同,就是在设置了top为50%之后,如何将元素向上移动自身高度的一半。css3中的transform转换有移动函数translate(x,y),x和y既可以为数值,也可以为百分数;如果是百分数,表示自身高度*百分数,所以
fatherElement{
position:relative;
}
element{
position:absolute;
top:50%;
transform:translate(0,-50%);
} - 绝对定位和margin:auto
绝对定位的前提下,设置相同的top和bottom值,然后使用margin:auto,可以使元素居中。
fatherElement{
position:relative;
}
element{
position:absolute;
top:0;
bottom:0;
margin:auto;
}
这里必须在绝对定位之后,对top和bottom进行赋值,值是多少无所谓,但是必须相等。然后使用margin为auto即可实现居中。 - padding
这个道理很简单,就是设置相同的上下内边距,从而使子元素居中。
#divFather{
width: 400px;
padding:10px 0;
}
#divFather>div{
width: 100px;
height: 100px;
}
在没有对父元素设置高度的时候,这个居中实质上是等距离加大padding,从而让元素看起来就是居中的,父元素的内容区高度就是子元素的高度。 - 使用line-height对单行文本进行居中
设置line-height与容器的高度相同,可以使单行文本居中
div{
width: 400px;
height: 200px;
line-height: 200px;
} - 使用line-height和vertical-align对图片进行居中
<div>
<img>
</div>
div{
width: 300px;
height: 300px;
background: #ddd;
line-height: 300px;
}
div img {
vertical-align: middle;
}
使用css实现垂直居中的更多相关文章
- 五种方法让CSS实现垂直居中
利用 CSS 来实现对象的垂直居中有许多不同的方法,比较难的是选择那个正确的方法.我下面说明一下我看到的好的方法和怎么来创建一个好的居中网站. 使用 CSS 实现垂直居中并不容易.有些方法在一些浏览器 ...
- CSS实现垂直居中的5种方法
利用 CSS 来实现对象的垂直居中有许多不同的方法,比较难的是选择那个正确的方法.我下面说明一下我看到的好的方法和怎么来创建一个好的居中网站. 使用 CSS 实现垂直居中并不容易.有些方法在一些浏览器 ...
- CSS水平垂直居中总结
行内元素水平居中 把行内元素包裹在块级父元素中,且父元素中的css设置text-align:center; <!DOCTYPE html> <html> <head> ...
- css图片垂直居中
css图片垂直居中一.style代码 .case-pic{ height: 125px; position: relative; text-align: center } .case-pic span ...
- 转: css实现垂直居中的方法
利用 CSS 来实现对象的垂直居中有许多不同的方法,比较难的是选择那个正确的方法.我下面说明一下我看到的好的方法和怎么来创建一个好的居中网站. 用 CSS 实现垂直居中并不容易.有些方法在一些浏览器中 ...
- 纯CSS实现垂直居中的7种方法
今天申请博客通过了,给大家讲讲我所看到过的纯css实现垂直居中的各种方法.为什么要把它作为第一篇文章呢?因为这是我刚开始接触前端学到的对我最有用的知识,希望大家也可以从中获益! 在CSS中实现水平居中 ...
- CSS文字垂直居中的一些问题
说到CSS文字垂直居中,很多初学者都喜欢用调整行高等于div高度的方式来达到效果, div { height:30px; line-height:30px; } 但其实这么做会遇到一个问题:多行文本溢 ...
- CSS布局-垂直居中问题
在前端页面的布局方面,很多时候需要用到垂直居中,如果父集元素或子元素的高度是固定的那么垂直居中可以用line-height或者定位 top:50%:margin-top:- height/2 px:实 ...
- 顽石系列:CSS实现垂直居中的五种方法
顽石系列:CSS实现垂直居中的五种方法 在开发过程中,我们可能沿用或者试探性地去使用某种方法实现元素居中,但是对各种居中方法的以及使用场景很不清晰.参考的内容链接大概如下: 行内元素:https:// ...
- css 文字垂直居中问题
CSS 文字垂直居中问题 问题:在 div 中文字居中问题: 当使用 line-height:100%%; 时,文字没有居中,如下: html: <div id="header_log ...
随机推荐
- 11-24网页基础--Js框架及学习思路
第一部分 基本语法: 1.数据类型(字符串.小数.整数.布尔.时间日期)var s="3.14" var n=parsefloat(s) s+=5;var s="abc3 ...
- 导入android studio项目,编译失败
使用android studio 打开studio 工程,编译的时候报错: “ INFO - .project.GradleProjectResolver - Gradle project resol ...
- 关于FILL_PARENTE和match_parent布局属性
在观看早期的代码的时候,经常会看到FILL_PARENT属性,但是新的代码中却有了MATCH_PARENT 那么,两者有何区别呢? 答案是,没有,只是换了个名字而已,均为-1
- jquery datatable设置垂直滚动后,表头(th)错位问题
jquery datatable设置垂直滚动后,表头(th)错位问题 问题描述: 我在datatable里设置:"scrollY": '300px',垂直滚动属性后,表头的宽度就会 ...
- ztree 树的模糊搜索
(转载),有个坑记录下: (原文)实现类似下面这种: /** * 展开树 * @param treeId */ function expand_ztree(treeId) { var treeObj ...
- 第6章 使用springboot整合netty搭建后台
我们不会去使用自增长的id,在现阶段的互联网开发过程中,自增长的id是已经不适用了.在未来随着系统版本的迭代,用户数量的递增,肯定会做分库分表,去做一些相应的切分.在这个时候我们就需要有一个唯一的id ...
- [hdu1251]统计难题(trie模板题)
题意:返回字典中所有以测试串为前缀的字符串总数. 解题关键:trie模板题,由AC自动机的板子稍加改造而来. #include<cstdio> #include<cstring> ...
- 2018网络预选赛 青岛 H
题目链接:https://pintia.cn/problem-sets/1036903825309761536/problems/1041156323504345088 题意:小明从某一点出发,向右方 ...
- eclipse中安装git插件
1 安装及配置git插件,问度娘即可 点击前往 2 eclipse 中怎么同步到 本地git仓库 和 码云远程仓库 点击前往
- HDOJ 1164 Eddy's research I
Problem Description Eddy's interest is very extensive, recently he is interested in prime number. Ed ...