CSS 水平垂直居中的方式

news/2024/11/24 5:03:09/

目录

在不知道子元素宽高的情况下,水平垂直居中的六种方式:

1、弹性盒子布局方式来实现(flex)。

 2、绝对定位 + transform

3、table标签

4、display:table-cell

5、display: grid

6、writing-mode 属性


在不知道子元素宽高的情况下,水平垂直居中的六种方式

在实际使用最好测试下最低版本是否支持对应的实现方式,尽量选各个浏览器支持比较好的,或者最常见的实现方式。

1、弹性盒子布局方式来实现(flex)。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>水平垂直居中</title>
</head>
<style>html,body {width: 100%;height: 100%;padding: 0;margin: 0;}.box {display: flex;align-items: center;justify-content: center;width: 100%;height: 100%;background: #00affc;}.box1 {background: pink;}
</style><body><div class="box"><div class="box1">中间盒子水平垂直居中了</div></div>
</body></html>

浏览器兼容性:

 2、绝对定位 + transform

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>水平垂直居中</title>
</head>
<style>html,body {width: 100%;height: 100%;padding: 0;margin: 0;}.box {width: 100%;height: 100%;background: #00affc;}.box1 {background: pink;transform: translate(-50%, -50%);position: absolute;top: 50%;left: 50%;}
</style><body><div class="box"><div class="box1">中间盒子水平垂直居中了</div></div>
</body></html>

浏览器兼容性:

 

3、table标签

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>水平垂直居中</title>
</head>
<style>html,body {width: 100%;height: 100%;padding: 0;margin: 0;}table {width: 100%;height: 100%;}.box {background: #00affc;}.box1 {text-align: center;}
</style><body><table><tbody><tr><td class="box"><div class="box1">中间盒子水平垂直居中了</div></td></tr></tbody></table>
</body></html>

兼容性:基本都支持,只是书写起来比较繁琐,多层嵌套。

4、display:table-cell

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>水平垂直居中</title>
</head>
<style>html,body {width: 100%;height: 100%;padding: 0;margin: 0;}.box {width: 300px;height: 300px;background: red;display: table-cell;text-align: center;vertical-align: middle;}.box1 {display: inline-block;}
</style><body><div class="box"><div class="box1">中间盒子水平垂直居中了</div></div>
</body></html>

浏览器兼容性:主流浏览器基本上都支持的。

5、display: grid

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>水平垂直居中</title>
</head>
<style>html,body,.box {width: 100%;height: 100%;}.box {display: grid;}.box1 {align-self: center;justify-self: center;}
</style><body><div class="box"><div class="box1">123123</div></div></body></html>

浏览器兼容性:最新主流浏览器基本上兼容,对于老版本浏览器可能会有兼容性问题。

6、writing-mode 属性

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>水平垂直居中</title>
</head>
<style>html,body,.content {width: 100%;height: 100%;}.content {writing-mode: vertical-lr;text-align: center;}.box {writing-mode: horizontal-tb;display: inline-block;text-align: center;width: 100%;}.box1 {display: inline-block;margin: auto;text-align: left;}
</style><body><div class="content"><div class="box"><div class="box1">123123</div></div></div></body></html>

浏览器兼容性问题:

 


http://www.ppmy.cn/news/159048.html

相关文章

高德地图 Pointer tag for 0x71885cf7d0 was truncated, see ‘https://source.android.com/devices/tech/debug/

记录这个神奇的bug 高德地图升级后莫名奔溃 解决方案 在清单文件中的application里加上android:allowNativeHeapPointerTagging"false"

记录学习二三事

学习二三事 VIM配置与使用 有效链接&#xff1a; Vim 配置入门—阮一峰 Vim入门级配置 Vim的终极配置方案&#xff0c;完美的写代码界面! ——.vimrc Vim插件管理Vim-plug vim插件管理器&#xff1a;Vundle的介绍及安装 遇到的问题&#xff1a; “.vimrc” E510: Can’t mak…

查看 OceanBase 执行计划

一、环境准备 1.下载benchmarksql wget -c https://jaist.dl.sourceforge.net/project/benchmarksql/benchmarksql-5.0.zip unzip benchmarksql-5.0.zip2.编辑配置文件 [admin10 run]$ cd /home/admin/benchmarksql-5.0/run [admin10 run]$ vi props.ob dboracle drivercom.…

CC00025.CloudOpenStack——|OpenStack组件.V01|——|Openstack-controller|启动一实例.V01|

一、实例创建(这也就是我们购买云主机的步骤) ### --- 实例创建(这也就是我们购买云主机的步骤)~~~ 创建秘钥对&#xff1a;提供一个密钥对的认证方式&#xff0c;是可选选项&#xff0c;也是可以自动识别的 ~~~ 启动一个实例&#xff1a;也就是启动一台虚拟机 ~~~ …

html中swiper组件的使用

静态的 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><!-- <link href"https://cdn.bootcdn.net/ajax/libs/Swiper/6.8.1/swiper-bundle.css" rel"stylesheet"> --><…

利用爬虫对《青春有你2》选手信息爬取

import json import re import requests import datetime from bs4 import BeautifulSoup import os#获取当天的日期,并进行格式化,用于后面文件命名&#xff0c;格式:20200420 today datetime.date.today().strftime(%Y%m%d) def crawl_wiki_data():"""爬取…

paddlepaddle(飞桨) python 教学 Day2-《青春有你2》选手信息爬取--解答

&#xff01;&#xff01;&#xff01;作业说明&#xff01;&#xff01;&#xff01; 1.请在下方提示位置&#xff0c;补充代码&#xff0c;完成《青春有你2》选手图片爬取&#xff0c;将爬取图片进行保存&#xff0c;保证代码正常运行 2.打印爬取的所有图片的绝对路径&…

百度AI入门课-day2作业

&#xff01;&#xff01;&#xff01;作业说明&#xff01;&#xff01;&#xff01; 1.请在下方提示位置&#xff0c;补充代码&#xff0c;完成《青春有你2》选手图片爬取&#xff0c;将爬取图片进行保存&#xff0c;保证代码正常运行 2.打印爬取的所有图片的绝对路径&…