css label 居中布局_css常见问题:块级元素和行内元素在水平和垂直方向怎样居中呢?...

本文详细探讨了如何使用CSS使块级元素和行内元素在水平和垂直方向上居中,包括各种方法如margin、定位、弹性盒布局等,并提供了实例代码。还介绍了在不同场景下水平垂直同时居中的解决方案,同时提醒在实际项目中需考虑浏览器兼容性问题。
摘要由CSDN通过智能技术生成

相信大家在写css样式的时候会经常遇到这样一个问题,那就是块级元素和行内元素在水平和垂直方向怎么居中呢?又怎么即在水平方向居中,又在垂直方向居中呢?这里我们来好好地研究一下。

首先,我们先花一点时间了解一下,什么是块级元素?什么又是行内元素?这两个哥们儿之间有啥区别呢?

图片来源于网络

块级元素

定义:简单的来说,默认情况下,块级元素会新起一行。常用块级元素:div 、dl 、form、h1 ~h2 、ol 、p 、table 、ul、li 等等。行内元素

定义:默认情况下,行内元素不会以新行开始(有些行内元素可以设置宽高,属于行内块元素)。常用行内元素:a、b、em、i、img、input、label、span、strong、textarea、u等等。区别

块级元素会新起一行,而行内元素不会新起一行。块级元素可以容纳其他块元素或者行内元素,而行内元素只能容纳文本或其他行内元素;块元素中高度、行高以及顶和底边距都可以控制改变,而行内元素这三项不可改变(除非申明为block或者inline-block)好了,简单的介绍了一下,咱们开始进入正题,怎么解决水平和垂直方向居中以及即在水平方向居中,又在垂直方向居中的问题。

图片来源于网络

首先我们来看一下块级元素 :

HTML部分代码示例:

HTML部分代码

块级元素水平方向居中

效果图:

效果图

1. 利用margin:0 auto进行水平方向居中

css部分代码示例:

css代码

2. 利用绝对定位+负边距进行水平方向居中

css部分代码示例:

css代码

3. 利用绝对定位+margin : auto进行水平方向居中

css部分代码示例:

css代码

4. 利用弹性盒布局进行水平方向居中

css部分代码示例:

css代码

5. 利用将子元素设置成行内元素或者行内块元素

css部分代码示例:

css代码

块级元素垂直方向居中

效果图:

效果图

1. 利用绝对定位+负边距进行垂直方向居中

css部分代码示例:

css代码

2. 利用绝对定位+margin : auto进行垂直方向居中

css部分代码示例:

css代码

3. 利用弹性盒布局进行垂直方向居中

css部分代码示例:

css代码

4. 利用绝对定位+transform进行垂直方向居中

css部分代码示例:

css代码

现在我们来看一下行内元素 :

HTML部分代码示例:

HTML部分代码

行内元素水平居中

效果图:

效果图

1. 利用text-align: center实现水平居中,行内元素一般就是利用这个

css部分代码示例:

css代码

行内元素垂直居中

效果图:

效果图

1. 利用行高line-height来解决

css部分代码示例:

css代码

2. 利用弹性盒布局来解决

css部分代码示例:

上面就是一些我总结的水平或者垂直居中的方法,现在我们来看一下即在水平方向居中,又在垂直方向居中怎么解决。

图片来源于网络

水平垂直方向同时居中

效果图:

效果图

1. 利用inline-block的vertical-align: middle去对齐span,实现高度反向对齐

HTML代码示例:

css部分代码示例:

2. 利用绝对定位+负边距进行水平垂直居中

HTML部分:

css部分代码示例:

3. 利用绝对定位+margin:auto进行水平垂直居中

HTML部分:

css部分代码示例:

4. display: table-cell

HTML部分:

css部分代码示例:

总结

CSS3的transform和flex固然好用,但在项目的实际运用中必须考虑兼容问题,大量的hack代码可能会导致得不偿失。

某些浏览器仍需使用前缀写法:

display: -webkit-box;

display: -webkit-flex;

display: -ms-flexbox;

display: -moz-box;

display: -moz-flex;

display: flex;

浏览器对最新版本的flexbox 的支持情况如下:

Chrome 29+Firefox 28+Internet Explorer 11+Opera 17+Safari 6.1+ (prefixed with -webkit-)Android 4.4+iOS 7.1+ (prefixed with -webkit-)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值