当前位置: 首页 > news >正文

css实现居中的方法

水平居中

1. 行内设置text-align

给父元素设置text-align为center,一般用于实现文字水平居中

2. 给当前元素设置margin:0 auto

原理:块级独占一行,表现为在水平方向上占满整个父容器,当水平方向padding,border,width成定值时,margin左右为auto,默认margin左右平分剩余空间

<head><style>.content{width: 600px;height: 300px;border: 1px solid #000;}.box{width: 200px;height: 200px;background-color: darkcyan;margin: 0 auto;}</style>
</head>
<body><div class="content"><div class="box"></div></div>
</body>

但是当该元素设置了position为absolute时,需要加上left为0,right为0才能使margin:0 auto生效,让元素左右边界都紧贴其包含块的边缘。

.box{width: 200px;height: 200px;background-color: darkcyan;margin: 0 auto;left: 0;right: 0;position: absolute;
}

3. justify-content

父元素设置display为flex布局,justify-content为center,设置盒子在主轴的对齐方式为center

.content{width: 600px;height: 300px;border: 1px solid #000;display: flex;justify-content: center;
}

4. transform + position

父元素设置relative,子元素设置absolute,left为50%,距离左边偏移父元素50%,transform为translateX(-50%),向左平移自身宽度的50%

5. margin-left + position

与transform类似,只是margin-left为负的自身宽度的一半

当未知宽高时用transform,已知宽高可以用margin-left

垂直居中

1. 单行文本可以设置line-height

设置line-height与height相等

一般用于文字垂直居中

2. align-items

父元素设置flex,align-items为center,定义元素在侧轴对齐方式为center

3. transform + position

与水平居中一样,设置top:50%距离上边偏移父元素50%,transform为translateY(-50%)

4. margin-top + position

与水平居中一样,设置top:50%,margin-top:负的自身高度的一半

5. margin:0 auto

子元素设置absolute定位,top为0,bottom为0,margin设置auto

.box{width: 200px;height: 100px;background-color: darkcyan;position: absolute;margin: auto;top: 0;bottom: 0;
}

6. table-cell + vertical-align

给父元素设置display为table-cell,vertical-align为middle

整体居中

行内:text-align:center; line-height:height

块级:

1. flex

.content{width: 400px;height: 300px;border: 1px solid #000;display: flex;justify-content: center; /*水平居中*/align-items: center;  /*垂直居中*/
}

2. transform

.content{width: 400px;height: 300px;border: 1px solid #000;position: relative;
}
.box{width: 200px;height: 100px;background-color: darkcyan;position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%)
}

3. margin

.content{width: 400px;height: 300px;border: 1px solid #000;position: relative;
}
.box{width: 200px;height: 100px;background-color: darkcyan;position: absolute;top: 50%;left: 50%;margin-top: -50px;margin-left: -100px;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 悲观锁与乐观锁
  • 一个WebSocket的前端封装类
  • RocketMQ 消费方式
  • vue组件之间的数据共享
  • vite 使用飞行器仪表示例
  • IDEA 2024.3 EAP新特征早览!
  • C#基础(16)实践:学生成绩管理系统
  • 基于PHP+MySQL组合开发的在线客服源码系统 聊天记录实时保存 带完整的安装代码包以及搭建部署教程
  • 【JVM】垃圾回收机制|死亡对象的判断算法|垃圾回收算法
  • 学习笔记——RegNet:Designing Network Design Spaces
  • (k8s)kubernetes集群基于Containerd部署
  • 2024年开放式蓝牙耳机十大排名震撼揭晓!哪款开放式耳机是音质王者?
  • 从零开始学习Linux(13)---多线程
  • Flutter iOS混淆打包
  • python中ocr图片文字识别样例(一)
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • Create React App 使用
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • HomeBrew常规使用教程
  • Java程序员幽默爆笑锦集
  • js如何打印object对象
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • python大佬养成计划----difflib模块
  • ReactNativeweexDeviceOne对比
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 关于extract.autodesk.io的一些说明
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (152)时序收敛--->(02)时序收敛二
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (Java入门)学生管理系统
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (九)One-Wire总线-DS18B20
  • (七)Appdesigner-初步入门及常用组件的使用方法说明
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (原創) 物件導向與老子思想 (OO)
  • (转) 深度模型优化性能 调参
  • ****三次握手和四次挥手
  • ... 是什么 ?... 有什么用处?
  • .Net 4.0并行库实用性演练
  • .Net CF下精确的计时器
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .Net Core 生成管理员权限的应用程序
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .net6Api后台+uniapp导出Excel
  • .NET中两种OCR方式对比
  • .php文件都打不开,打不开php文件怎么办