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

【HTML元素居中】元素水平垂直居中的常用方法

HTML元素居中

    • 元素居中
      • 常用水平垂直居中
      • 行内元素居中
      • 块级元素居中
      • margin

元素居中

常用水平垂直居中

行元素、块元素都可以使用。

  1. flex + center
  .parent {display: flex;align-items: center;justify-content: center;}.child {width: 100px;height: 100px;border: 1px solid red;}
  <div class="parent"><div class="child"></div></div>

parent有多个child时, 会以所有child宽高之和来居中显示到parent元素上

  1. flex + margin
  .parent {display: flex;}.child {border: 1px solid red;}
  <div class="parent"><div class="child"></div></div>

parent有多个child时, 子元素会平均分配父节点的宽高

  1. position: absolute; transform
    父元素高度必须设置,或者父元素高度由其他子元素撑开. 不然会出现父元素高度塌陷
.parent {height: 300px;position: relative;border:1px solid red;
}.child {width: 35px;height: 35px;border-radius: 50%;border: 1px solid red;position: absolute;left: 50%;top: 50%;transform: translate(-50%);
}
<div class="parent"><div class="child"></div>
</div>

parent有多个child时, 设置定位absolute的元素会居中显示,其他元素从父元素开始的位置按照从上到下、从左到右的顺序依次排列

  1. grid place-item: center
  .parent {height: 300px;display: grid;place-items: center;border: 1px solid red;}.child {width: 35px;height: 35px;border-radius: 50%;border: 1px solid red;}
  <div class="parent"><div class="child"></div></div>

parent有多个child时, 子元素水平居中,垂直方向上会平均分配父节点的高度

行内元素居中

  • 水平居中

    给父元素添加 text-align: center, 且子元素可继承text-align属性

  • 垂直居中

    给父元素添加 display: table-cell; vertical-align: middle;

    文本垂直居中:
    给居中元素添加 height: 30px;line-height: 30px

  • 水平垂直居中
    table-cell + vertical-align + text-align

      .parent {width: 300px;height: 300px;border: 1px solid red;display: table-cell;vertical-align: middle;text-align: center;}.child {display: inline-block;width: 35px;height: 35px;border-radius: 50%;border: 1px solid red;}
    
    <div class="parent"><span class="child"></span>
    </div>
    

块级元素居中

  • 水平居中

    1. margin: 0 auto

    2. margin-left: calc(50% - width/2px)
      子元素width需固定

    .parent {height: 300px;border: 1px solid red;
    }
    /* margin + auto */
    .child-1 {width: 35px;height: 35px;border-radius: 50%;border: 1px solid red;margin: 10px auto;
    }
    /* margin-left + calc */
    .child-2 {width: 420px;height: 35px;margin-left: calc(50% - 210px);border: 1px solid red;
    }
    
    <div class="parent"><div class="child-1"></div><div class="child-2"></div>
    </div>
    
  • 水平垂直居中
    position: absolute; left; top; bottom; right; margin: auto
    子元素宽高固定。

    .parent {height: 300px;border: 1px solid red;position: relative;
    }.child {width: 35px;height: 35px;border-radius: 50%;border: 1px solid red;position: absolute;top: 0;left: 0;right: 0;bottom: 0;margin: auto;
    }
    
    <div class="parent"><div class="child"></div>
    </div>
    

margin

当元素脱离默认文档流时(浮动,绝对定位,固定定位),margin失效

inline-blockinline设置margin:0 auto 时是没用的

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • ‌内网穿透技术‌总结
  • Python知识点:使用Cython进行Python性能优化
  • VSCode 离线安装中文语言包
  • 基于springboot+vue超市管理系统
  • Sharding-Jdbc+Mybatis+SpringBoot的分库分表实现
  • Vue学习记录之六(组件实战及BEM框架了解)
  • STM32巡回研讨会总结(2024)
  • [000-01-008].第05节:OpenFeign特性-重试机制
  • LeetCode题练习与总结: 数字 1 的个数--233
  • Resnet50网络——口腔癌病变识别
  • 在HTML中添加视频
  • Dell PowerEdge 网络恢复笔记
  • 胤娲科技:谷歌DeepMind祭出蛋白质设计新AI——癌症治疗迎来曙光
  • Thymeleaf
  • 网安面试题1
  • HTTP 简介
  • IOS评论框不贴底(ios12新bug)
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • java 多线程基础, 我觉得还是有必要看看的
  • Python爬虫--- 1.3 BS4库的解析器
  • vue.js框架原理浅析
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • Webpack 4 学习01(基础配置)
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 和 || 运算
  • 如何利用MongoDB打造TOP榜小程序
  • 使用 Docker 部署 Spring Boot项目
  • 小程序开发中的那些坑
  • #100天计划# 2013年9月29日
  • (1) caustics\
  • (2015)JS ES6 必知的十个 特性
  • (floyd+补集) poj 3275
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (二)linux使用docker容器运行mysql
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (十三)Flink SQL
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (转)visual stdio 书签功能介绍
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • *1 计算机基础和操作系统基础及几大协议
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET delegate 委托 、 Event 事件
  • .net 生成二级域名
  • .net 验证控件和javaScript的冲突问题
  • // an array of int
  • /bin/rm: 参数列表过长"的解决办法
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • ::什么意思
  • ??在JSP中,java和JavaScript如何交互?
  • @Query中countQuery的介绍
  • [ C++ ] 继承
  • [ Linux 长征路第二篇] 基本指令head,tail,date,cal,find,grep,zip,tar,bc,unname