IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> CSS居中对齐的各种方式 -> 正文阅读

[JavaScript知识库]CSS居中对齐的各种方式

????????在调CSS样式的时候,居中对齐是一种很常见的需求,我们可能会苦恼怎么实现才会更好,这就有必要了解CSS实现居中对齐的各种方式了,居中对齐就有水平居中和垂直居中。

水平居中

????????水平居中首先要区分居中的对象是行内元素还是块级元素。行内元素直接用text-align:center设置就可以了,十分简单。

????????块级元素的实现方式就比较多了,可以使用margin:0 auto设置外边距自适应来实现水平居中。如果是通过绝对定位absolute的元素可以使用left:50%+margin-left负值(宽度/2)来实现,缺点就是需要知道子元素的宽度,不能满足某些子元素宽度不确定的情况,但我们可以通过在外部包裹一层元素来解决这个问题。

<style>
 ? ? ? ?.box {
 ? ? ? ? ? ?position: relative;
 ? ? ? ? ? ?width: 200px;
 ? ? ? ? ? ?height: 200px;
 ? ? ? ? ? ?background-color: lightgreen;
 ? ? ? ? ? ?border: 2px solid black;
 ? ? ?  }
?
 ? ? ? ?.out {
 ? ? ? ? ? ?position: absolute;
 ? ? ? ? ? ?left: 50%;
 ? ? ? ? ? ?top: 50%;
 ? ? ?  }
?
 ? ? ? ?.in {
 ? ? ? ? ? ?height: 100px;
 ? ? ? ? ? ?width: 100px;
 ? ? ? ? ? ?background-color: pink;
 ? ? ? ? ? ?margin-left: -50%;
 ? ? ? ? ? ?margin-top: -50%;
 ? ? ?  }
 ? ?</style>
 ? ?
 ? ?<div class="box">
 ? ? ? ?<div class="out">
 ? ? ? ? ? ?<div class="in">测试内容</div> ? ?
 ? ? ? ?</div> ? ?
 ? ?</div>

????????效果下所示,通过在子元素外部包裹一层div,来代替子元素的绝对定位,外部div通过子元素的宽高自适应,来作用于子元素的margin-left的百分比,从而达到水平居中对齐的目的。

? ? ? ? 还有一种方式不需要知道子元素的宽度也是能够让绝对定位的元素居中,甚至不需要包裹div,我们需要设置绝对定位的left和right都为0,然后设置margin:0 auto就可以了。

????????当然,现在最流行的flex布局可以通过justify-content:center十分简单的实现,随着浏览器的发展,flex的兼容性已经很好了,flex对我们前端开发人员来讲十分重要,不管是面试还是工作中都需要,如果还不熟的同学建议赶紧学。

垂直居中

? ? ? ? 垂直居中同样需要区分行内元素和块级元素,行内元素设置inline-height等于height就可以简单实现,这个是个很常见的技巧。

? ? ? ? 块级元素可以通过绝对定位absolute,设置top:50%加margin负值(高度/2),就如同水平居中那样,也可以通过transform(-50%,-50%)来设置,但transform作为CSS3的新特性,兼容性对于一些老版本的浏览器还不是很友好,具体使用还是要根据项目而定。像水平居中那样,垂直居中也能通过包裹div或者设置top、bottom为0+margin:auto 0来实现垂直居中。

? ? ? ? 当然,万能的flex设置align-items:center也是能轻松解决垂直居中的,可见弹性布局的便利与简洁,这还不赶快去学。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-01-14 01:52:39  更:2022-01-14 01:54:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 12:56:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码