CSS的居中布局总结

这次给大家带来CSS的居中布局总结,CSS居中布局的注意事项有哪些,下面就是实战案例,一起来看一下。

先来说几种简单的、人畜无害的居中方法

1. 把margin设为auto

具体来说就是把要居中的元素的margin-left和margin-right都设为auto,此方法只能进行水平的居中,且对浮动元素或绝对定位元素无效。

2、使用 text-align:center

这个没什么好说的,只能对图片,按钮,文字等行内元素(display为inline或inline-block等)进行水平居中。但要说明的是在IE6、7这两个奇葩的浏览器中,它是能对任何元素进行水平居中的。

3、使用line-height让单行的文字垂直居中

把文字的line-height设为文字父容器的高度,适用于只有一行文字的情况。

4、使用表格

如果你使用的是表格的话,那完全不用为各种居中问题而烦恼了,只要用到 td(也可能会用到 th)元素的 align=”center” 以及 valign=”middle” 这两个属性就可以完美的处理它里面内容的水平和垂直居中问题了,而且表格默认的就会对它里面的内容进行垂直居中。如果想在css中控制表格内容的居中,垂直居中可以使用 vertical-align:middle,至于水平居中,貌似css中是没有相对应的属性的,但是在IE6、7中我们可以使用text-align:center来对表格里的元素进行水平居中,IE8+以及谷歌、火狐等浏览器的text-align:center只对行内元素起作用,对块状元素无效。

CSS的居中布局总结

CSS的居中布局总结

在ie6、7中可以通过css的text-algin来控制表格内容的水平方向的对齐,无论内容是行内元素还是块状元素都有效。

CSS的居中布局总结

但在ie8+以及chrome、firefox等浏览器中的text-align:center对块状元素无效,只能用表格自有的align属性。

5、使用display:table-cell来居中

对于那些不是表格的元素,我们可以通过display:table-cell 来把它模拟成一个表格单元格,这样就可以利用表格那很方便的居中特性了。例如:

CSS的居中布局总结

CSS的居中布局总结

但是,这种方法只能在IE8+、谷歌、火狐等浏览器上使用,IE6、IE7都无效。

 那面所说的都是很基础的方法,自然不能称之为奇淫巧计,下面就来说一些需要使用一些技巧的居中方法。

6、使用绝对定位来进行居中

此法只适用于那些我们已经知道它们的宽度或高度的元素。

绝对定位进行居中的原理是通过把这个绝对定位元素的left或top的属性设为50%,这个时候元素并不是居中的,而是比居中的位置向右或向左偏了这个元素宽度或高度的一半的距离,所以需要使用一个负的margin-left或margin-top的值来把它拉回到居中的位置,这个负的margin值就取元素宽度或高度的一半。

CSS的居中布局总结

运行效果:

CSS的居中布局总结

如果只想实现一个方向的居中,则可以只使用left , margin-left 来实现水平居中,使用top , margin-top来实现垂直居中。

7、另一种使用绝对定位来居中的方法

此法同样只适用于那些我们已经知道它们的宽度或高度的元素,并且遗憾的是它只支持IE9+,谷歌,火狐等符合w3c标准的现代浏览器。

下面用一段代码来了解这种方法:

CSS的居中布局总结

运行效果:

CSS的居中布局总结

这里如果不定义元素的宽和高的话,那么他的宽就会由left,right的值来决定,高会由top,bottom的值来决定,所以必须要设置元素的高和宽。同时如果改变left,right , top , bottom的值还能让元素向某个方向偏移,大家可以自己去尝试。

 8、使用浮动配合相对定位来进行水平居中

此方法也是关于浮动元素怎么水平居中的解决方法,并且我们不需要知道需要居中的元素的宽度。

浮动居中的原理是:把浮动元素相对定位到父元素宽度50%的地方,但这个时候元素还不是居中的,而是比居中的那个位置多出了自身一半的宽度,这时就需要他里面的子元素再用一个相对定位,把那多出的自身一半的宽度拉回来,而因为相对定位正是相对于自身来定位的,所以自身一半的宽度只要把left 或 right 设为50%就可以得到了,因而不用知道自身的实际宽度是多少。

这种使用浮动配合相对定位来居中的方法,优点是不用知道要居中的元素的宽度,即使这个宽度是不断变化的也行;缺点是需要一个多余的元素来包裹要居中的元素。

看下代码:

CSS的居中布局总结

运行效果:

CSS的居中布局总结

9、利用font-size来实现垂直居中

如果父元素高度是已知的,要把它里面的子元素进行水平垂直居中,则可以使用这种方法,且子元素的宽度或高度都不必知道。

该方法只对IE6和IE7有效。

该方法的要点是给父元素设一个合适的font-size的值,这个值的取值为该父元素的高度除以1.14得到的值,并且子元素必须 是一个inline或inline-block元素,需要加上vertical-align:middle属性。

至于为什么是除以1.14而不是其他的数,还真没有人知道,你只需要记住1.14这个数就行了。

CSS的居中布局总结

CSS的居中布局总结

在方法5中说过在IE8+、火狐谷歌等现在浏览器中可以用display:table-cell来进行居中,而这里的font-size的方法则适用于IE6和IE7,所以把这两种方法结合起来就能兼容所有浏览器了:

CSS的居中布局总结

CSS的居中布局总结CSS的居中布局总结

上面的例子中因为要居中的元素是一个块状元素,所以我们还需要把他变成行内元素,如果要居中的元素是图片等行内元素,则可以省略此步。

另外,如果 vertical-align:middle 是写在父元素中而不是子元素中,这样也是可以的,只不过计算font-size时使用的  1.14 这个 数值要变成大约 1.5 这个值。

相信看了本文案例你已经掌握了方法,更多精彩请关注创想鸟其它相关文章!

推荐阅读:

三种绝对定位元素的水平垂直居中的办法

瀑布流布局与无限加载图片相册效果

以上就是CSS的居中布局总结的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1609689.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 00:55:17
下一篇 2025年12月24日 00:55:49

相关推荐

  • Css3的之形状总结

    这次给大家带来Css3的之形状总结,使用Css3形状的注意事项有哪些,下面就是实战案例,一起来看一下。 一、自适应椭圆  border-radius特性: 可以单独指定水平和垂直半径,并且值可以是百分比,用/(斜杠)分隔这两个值即可(可以实现自适应宽度椭圆)。 还可以单独指定四个角度不同的水平和垂直…

    2025年12月24日 好文分享
    000
  • 在CSS边界线消失如何处理

    这次给大家带来在CSS边界线消失如何处理,处理在CSS边界线消失的注意事项有哪些,下面就是实战案例,一起来看一下。 先来看看下图,经常会在一些导航栏中见到,要求每行中最后一列的右边框消失,如何在所有浏览器中最便捷优雅的实现? 如果是不需要兼容 IE8- ,那么使用 CSS3 新增的选择器无疑是一种好…

    2025年12月24日
    000
  • CSS3的blur白边怎么去除

    这次给大家带来CSS3的blur白边怎么去除,去除CSS3的blur白边注意事项有哪些,下面就是实战案例,一起来看一下。 做一个登录页,全屏背景图毛玻璃效果,实现方法如下: HTML:                   var w = window.innerWidth || document.d…

    2025年12月24日 好文分享
    000
  • CSS3的box-sizing属性图文教程

    这次给大家带来CSS3的box-sizing属性图文教程,使用CSS3的box-sizing属性注意事项有哪些,下面就是实战案例,一起来看一下。 简介 box-sizing属性包括content-box(default),border-box,padding-box。      1、content-…

    2025年12月24日
    000
  • css中的float的图文详解

    这次给大家带来css中的float的图文详解,float的图文详解的注意事项有哪些,下面就是实战案例,一起来看一下。 float与margin 两个相邻的浮动元素,当第一个浮动元素(不论是左浮动还是右浮动)的宽度为100%时,第二个浮动元素会被挤到下面,通过添加负margin-right值(绝对值最…

    2025年12月24日
    000
  • CSS3的webkit-tap-highlight-color属性如何使用

    这次给大家带来CSS3的webkit-tap-highlight-color属性如何使用,使用CSS3的webkit-tap-highlight-color的注意事项有哪些,下面就是实战案例,一起来看一下。 -webkit-tap-highlight-color 这个属性只用于iOS (iPhone…

    好文分享 2025年12月24日
    000
  • CSS3做出响应式、可配置的抽奖转盘

    这次给大家带来CSS3做出响应式、可配置的抽奖转盘,CSS3做出响应式、可配置的抽奖转盘的注意事项有哪些,下面就是实战案例,一起来看一下。 源于前段时候微信小程序最初火爆公测时段,把以前用 Canvas 实现的大转盘抽奖移植成微信小程序,无奈当时小程序对 Canvas 支持不够完善,只好降低用 CS…

    2025年12月24日
    000
  • CSS3实现扇形动画菜单流程详解

    这次给大家带来CSS3实现扇形动画菜单流程详解,CSS3实现扇形动画菜单的注意事项有哪些,下面就是实战案例,一起来看一下。 原文章请点击这里 简化版完整实例 CSS3扇形动画菜单*{padding: 0; margin: 0;}body{background:#b1b1b1;margin:0px;p…

    2025年12月24日
    000
  • 动态加载css详解

    这次给大家带来动态加载css详解,动态加载css的注意事项有哪些,下面就是实战案例,一起来看一下。 一、方法引用来源和应用 此动态加载css方法 loadCss,剥离自Sea.js,并做了进一步的优化(优化代码后续会进行分析)。 因为公司项目需要用到懒加载来提高网站加载速度,所以将非首屏渲染必需的c…

    好文分享 2025年12月24日
    000
  • css3+js实现3D行星运转

    这次给大家带来css3+js实现3D行星运转,css3+js实现3D行星运转的注意事项有哪些,下面就是实战案例,一起来看一下。 HTML部分 这里用前三个类为x、y、z的p来画的每一个星球的x、y、z轴,然后这些星球之间是可以嵌套的,就是像上面的代码一样,里面的星球是外面星球的卫星。 css部分 .…

    2025年12月24日
    000
  • HTML5+CSS3加载进度条与下载进度条实现

    这次给大家带来HTML5+CSS3加载进度条与下载进度条实现,HTML5+CSS3加载进度条与下载进度条实现的注意事项有哪些,下面就是实战案例,一起来看一下。 效果图: 1、html结构: 0%  简单分析下: p.loadBar代表整个进度条 p.loadBar p 设置了圆角表框 ,p.load…

    2025年12月24日
    000
  • CSS3制作粉红色登录界面

    这次给大家带来CSS3制作粉红色登录界面,CSS3制作粉红色登录界面的注意事项有哪些,下面就是实战案例,一起来看一下。 心血来潮,想学学 material design 的设计风格,就尝试完成了一个登录页面制作. 这是整体效果. 感觉还不错吧,结尾会附上代码 在编写的过程中,没有使用任何图片或者字体…

    2025年12月24日 好文分享
    000
  • css3视觉特效的实现

    这次给大家带来css3视觉特效的实现,实现css3视觉特效的注意事项有哪些,下面就是实战案例,一起来看一下。 一、单侧阴影 1、box-shadow属性的应用,格式:h-shadow v-shadow blur spread color inset属性取值介绍 h-sahdow:水平阴影的位置,允许…

    2025年12月24日 好文分享
    000
  • CSS实现书签图案的效果

    这次给大家带来css实现书签图案的效果,css实现书签图案的注意事项有哪些,下面就是实战案例,一起来看一下。 示例代码如下: border制作书签(图形) .p2:before { /*做一个书签效果*/ position: absolute; /*必须*/ top: 50px; left: 20p…

    好文分享 2025年12月24日
    000
  • CSS实现3d半透明立方体

    这次给大家带来CSS实现3d半透明立方体,CSS实现3d半透明立方体的注意事项有哪些,下面就是实战案例,一起来看一下。 效果图如下: 示例代码: new document //css部分html{font-size:62.5%;}img{width:300px;height:300px;} #sta…

    2025年12月24日
    000
  • css3实现动画自行车效果

    这次给大家带来css3实现动画自行车效果,css3实现动画自行车效果的注意事项有哪些,下面就是实战案例,一起来看一下。 首先来看看实现的效果图(静态): 实例源码: 自行车 * { margin: 0; padding: 0 } ol, ul { list-style: none/*去掉圆点或数字*…

    2025年12月24日
    000
  • CSS画出红色爱心

    这次给大家带来CSS画出红色爱心,CSS画出红色爱心的注意事项有哪些,下面就是实战案例,一起来看一下。 第一步: 先画一个正方形。如图: css画桃心 .heart-body { width: 500px; margin: 100px auto; position: relative; } .hea…

    2025年12月24日 好文分享
    000
  • css3的新属性box-sizing详解

    这次给大家带来css3的新属性box-sizing详解,css3属性box-sizing的注意事项有哪些,下面就是实战案例,一起来看一下。 在了解box-sizing之前,让我们来稍稍回顾一下盒子模型,模型分为:标准盒模型+IE盒模型。那这有什么区别呢?见图所示: 从上图可以看到标准 w3c 盒子模…

    2025年12月24日 好文分享
    000
  • CSS3实现鼠标悬停时边框旋转特效

    这次给大家带来CSS3实现鼠标悬停时边框旋转特效,CSS3实现鼠标悬停时边框旋转特效的注意事项有哪些,下面就是实战案例,一起来看一下。 纯CSS3实现的鼠标悬停时边框旋转的效果: 实现代码如下,代码中注释已经比较详细,就不再多说了: Document body { width: 40rem; hei…

    2025年12月24日
    000
  • css样式中的border-image使用详解

    这次给大家带来css样式中的border-image使用详解,使用css样式中border-image的注意事项有哪些,下面就是实战案例,一起来看一下。 border-image-source 属性设置边框的图片的路径[none | ] p { border: 20px solid #000; bo…

    好文分享 2025年12月24日
    000

发表回复

登录后才能评论
关注微信