css垂直居中那点事

这是我技术博客生涯的第一篇文章,想想还是有点小鸡冻。。。菜鸟的征程现在要开始了

 

学习css的时候经常被各种问题纠结到不要不要的,没办法,只能写写博客帮助整理一下自己的思绪和帮助一下和我遇到同样问题的小伙伴们

 

不知道各位学习css的小伙伴会不会被垂直居中的问题虐的好痛苦,反正我也被虐的挺惨

但是稍微整理一下,感觉好像垂直居中也就那么回事。

 

一,利用line-height

line-height是一个设置行高的一个css样式,一行文字上面的空白+下面的空白=行高

他可以帮助我们解决垂直居中的问题

当一个div中有1行文字(记住:是1行文字)需要垂直居中时,设置line-height=div的height可是使这一行文字垂直居中,但这个办法有点鸡肋,只能用在一行文字上,但是在文本框里面的光标解决上却很有用,现在的主流浏览器chrome,firefox,safari等等等在设置input=“text”时输入文字光标是会自动垂直居中的但是在老古董ie6,ie7,ie8上却会有问题,会变成这样:       很坑有木有???没办法这就是ie,这时我们加上line-height=文本框的height可以解决这个问题。

 

 

二,利用table

我们知道vertical-align分别是垂直居中,但是vertical-align只有在table中才能生效,这是我们就可以利用display来解决这个问题

<div>      →  display:table                                                                                                                                                                    

  <div>     →diaplay:table-cell           /*使这两个div模仿表格和表格单元,给vertical-align提供一个使用的环境*/

    我要垂直居中!!

  </div>

</div>

这时设置vertical-align:middle就可以生效了,(这个办法可以用于多行文字上)但是这个办法在ie上的支持不是很好

 

 

三,利用负边距

设置position:absolute→top:50%→margin-top:(-div中height的一般)

position:absolute的移动位移的中间点是在块级元素的正中间,但是移动距离的参考是父级元素(50%是父级元素的height的50%,而不是自己的50%),如果有两个div,父级div如果有设置position:absolute或者relative,那么子div就参照父级div来移动,如果父级的div没有设置position:absolute或者relative,那么就参考左上角(0.0)来进行移动。

这个办法可以使整个div垂直居中

 

 

四,利用伸缩盒(flexible-box)

伸缩盒现在有旧和新的两个版本,新版本有取代旧版本的趋势,本文使用的是旧版本的伸缩盒。(新版伸缩盒也可以实现)

利用伸缩盒解决垂直居中的问题也是一种好办法,但是在使用时需要加上-webkit-,-moz-,-ms-,-o-等前缀

我们同样需要利用display放一个box的容器:-webkit-display:box → 若文字是水平排列的使用:box-align:center  / 若文字是纵向排列的使用box-pack:center

 

 

当然,实现垂直居中还可以利用transform来实现等等,还有很多其他的办法,但是以我目前的总结,暂时总结到这4种,本人前端菜鸟,还请各位前端大牛勿喷。

 

 

以上内容均为原创,未经允许不许私自转载

转载于:https://www.cnblogs.com/Gary-Guoweihan/p/4728868.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/405226.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows常用shell命令大全

From: http://blog.csdn.net/yunzhongfeiniao/article/details/6564577 基于鼠标操作的后果就是OS界面外观发生改变&#xff0c;就得多花学习成本。更主要的是基于界面引导Path与命令行直达速度是难以比拟的。另外Geek很大一部分是键盘控&#xff0c;而非鼠标流的。 整理Wind…

[react] 在React项目中你用过哪些动画的包?

[react] 在React项目中你用过哪些动画的包&#xff1f; react-transition-group 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

STM32硬件错误HardFault_Handler的处理方法

https://blog.csdn.net/electrocrazy/article/details/78173558

div模拟select/option解决兼容性问题及增加可拓展性

个人博客&#xff1a; http://mcchen.club 想到做这个模拟的原因是之前使用select>option标签的时候发现没有办法操控option的很多样式&#xff0c;比如line-height等&#xff0c;还会由此导致在IE8及以下版本浏览器中的各种问题。 这个模拟思路很简单&#xff0c;也很清晰&…

Linux Socket网络通信示例

记录一下Linux 网络通信编程示例&#xff0c;主要用内网穿透和网络调试助手进行调试。 1、源文件&#xff1a; #include <stdlib.h> #include <sys/types.h> #include <stdio.h> #include <netinet/in.h> #incldue <string.h> //bze…

[react] 需要把keys设置为全局唯一吗?

[react] 需要把keys设置为全局唯一吗&#xff1f; 不需要,key是用来进行diff算法的时候进行同层比较,准备的说key只需要在兄弟节点之间唯一,一般情况key选取是后端定义的id.万不得已的时候可以选择index(选择index是万不得已的选择,因为选择了index后,一些操作会改变index的值…

Windows Phone 实用开发技巧(3):输入框自动聚焦并打开SIP

大家看到这个标题&#xff0c;可以会问什么是SIP&#xff08;看过我Windows Phone 7 Tips系列的童鞋应该知道&#xff09;&#xff0c;SIP全称为Soft Input Panel&#xff0c;即触摸屏中的输入键盘。在Windows Phone 应用程序中&#xff0c;可能会碰到这样的情况&#xff0c;即…

shell除法计算

From: http://5iwww.blog.51cto.com/856039/270119 shell计算中使用除法&#xff0c;基本默认上都是整除。比如&#xff1a;num12num23num3expr $num1 / $num2这个时候num30 ,是因为是因为expr不支持浮点除法解决的方法&#xff1a;num3echo "sclae2; $num1/$num2" …

stm32+lwip(四):网页服务器测试

ST官方有lwip的例程&#xff0c;下载地址如下&#xff1a; https://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32-standard-peripheral-library-expansion/stsw-stm32070.html 本文例子参考ST官方给出的例…

[react] 你有使用过suspense组件吗?它帮我们解决了什么问题?

[react] 你有使用过suspense组件吗&#xff1f;它帮我们解决了什么问题&#xff1f; 动态加载(异步组件)加载时候会有延迟,在这延迟期间可以将一些内容展示给用户,比如loading 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定…

HDOJ 2046 骨牌铺方格 【递推】

HDOJ 2046 骨牌铺方格 【递推】 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid2046 铺2*1只有一种情况&#xff08;一竖&#xff09; 2*2有两种情况&#xff08;两横或两竖&#xff09; 2*n (n≥3)时 可以先铺1块竖着&#xff0c;再铺n-1块 还有先铺2块横着&#x…

cygwin清屏

From: http://www.cclove.me/Enable_clear_command_on_cygwin.html 默认安装的cygwin的bash shell并没有clear命令&#xff0c;于是有些shell程序需要用到的时候就蛋疼了&#xff1a; Katherinecclove ~$ cls -bash: cls: command not foundKatherinecclove ~$ clear -bas…

Linux 用C/C++创建新文件并写入内容

1、需求 在Linux环境下用C编写一个函数&#xff0c;用于记录运行日志&#xff0c;要求只存在一个同名文件&#xff0c;每次记录前清除已有的信息。 2、思路 需要完成的是&#xff1a; &#xff08;1&#xff09;查找&#xff08;access&#xff09;是否该文件存在&#xff…

动态加载JS脚本【转】

原文&#xff1a;http://mario-design.iteye.com/blog/147810 要实现动态加载JS脚本有4种方法&#xff1a; 1、直接document.write <script language"javascript"> document.write("<script srctest.js><\/script>"); </script>…

如何将Eclipse中的开源项目使用到Android Studio中

近几日&#xff0c;笔者用到了一些开源项目&#xff0c;比如著名的PTR项目。但是在使用的过程中&#xff0c;遇到了一些问题。 这个开源库是在Eclipse上面写的&#xff0c;我们现在开发用的是Android stuido。 两种软件的项目结构是不同的&#xff0c;那么怎么把PTR用到我们的项…

EditPlus常用快捷键

From: http://katrina.blog.51cto.com/709863/144111 editplus占内存比较小&#xff0c;加载速度快&#xff0c;很强大。文本类&#xff1a;新建普通文本 CtrlN 新建普通的文本(经常建立一个新脚本平时很容易遇到)新建浏览器窗口 CtrlShiftB 新建浏览器…

[react] super()和super(props)有什么区别?

[react] super()和super(props)有什么区别&#xff1f; react 中的class 是基于es6的规范实现的, 继承是使用extends关键字实现继承的&#xff0c;子类必须在constructor()中调用super() 方法否则新建实例 就会报错&#xff0c;报错的原因是 子类是没有自己的this对象的&#…

VC实现表单提交并设置获取COOKIE:

可以尝试通过 HttpAddRequestHeaders 来添加自已的COOKIE: char * lpszHeaders "Cookie: Keysomevalue"; DWORD dwHeadersLength strlen(lpszHeaders); HttpAddRequestHeaders(hOpenRequest, lpszHeaders, dwHeadersLength, HTTP_ADDREQ_FLAG_A…

STM32 网络通信Web Server中 SSI与CGI的应用解析

本次主要解析STM32网络通信中WebServer应用&#xff0c;从网页界面的编写到浏览器与STM32之间进行通信的数据来说明SSI与CGI的原理及应用&#xff0c;并对GET与POST指令进行应用解析。 硬件和软件环境&#xff1a; 1.硬件环境&#xff1a;STM32F407&#xff0c;网卡芯片LAN87…

ggg

ggg转载于:https://www.cnblogs.com/britphy/p/4744739.html