CSS实现DIV的水平与垂直居中

2023-11-12

使用CSS样式实现DIV的水平与垂直居中。

1、使用<div>标签的 align 属性实现水平居中

HTML中的 <div> 标签的 align 属性用于规定 div 元素中的内容的水平对齐方式。所有浏览器都支持 align 属性。

语法:

<div align="value">

属性值:

描述
left 左对齐内容。
right 右对齐内容。
center 居中对齐内容。
justify 对行进行伸展,这样每行都可以有相等的长度(就像在报纸和杂志中)。

示例:使用<div>标签的align属性实现页面内容水平居中。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录</title>
</head>
<body>
<div align="center">
    请输入登录信息
    <form method="post" name="form1">
        <table>
            <tr>
                <td>用户:</td>
                <td><input name="user" style="width:200px" type="text"/></td>
            </tr>
            <tr>
                <td>密码:</td>
                <td><input name="password" style="width:200px" type="password"/></td>
            </tr>
            <!-- 以下是提交、取消按钮 -->
            <tr>
                <td>
                    <input type="submit" value="登录"/>
                </td>
                <td>
                    <input type="reset" value="取消"/>
                </td>
            </tr>
        </table>
    </form>
</div>
</body>
</html>

执行结果:

注意:该方法虽然简单,但是存在兼容性问题,在 HTML 4.01 中,不赞成使用 div 元素的 align 属性;在 XHTML 1.0 Strict DTD 中,不支持 div 元素的 align 属性。请使用 CSS 代替。

 

2、使用CSS中 vertical-align 属性

2.1 CSS中 vertical-align 属性的介绍

定义:

vertical-align 属性设置元素的垂直对齐方式。所有浏览器都支持 vertical-align 属性。

说明:

该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐。允许指定负长度值和百分比值。这会使元素降低而不是升高。在表单元格中,这个属性会设置单元格框中的单元格内容的对齐方式。

示例:垂直对齐一幅图像。

img { vertical-align:text-top; }

可能的值:

描述
baseline 默认。元素放置在父元素的基线上。
sub 垂直对齐文本的下标。
super 垂直对齐文本的上标。
top 把元素的顶端与行中最高元素的顶端对齐。
text-top 把元素的顶端与父元素字体的顶端对齐。
middle 把此元素放置在父元素的中部。
bottom 把元素的顶端与行中最低的元素的顶端对齐。
text-bottom 把元素的底端与父元素字体的底端对齐。
length  
%  使用 "line-height" 属性的百分比值来排列此元素。允许使用负值。
inherit 规定应该从父元素继承 vertical-align 属性的值。

注意:任何的版本的 Internet Explorer (包括 IE8)都不支持属性值 "inherit"。

2.2 CSS中 text-align 属性的介绍

定义:

text-align 属性规定元素中的文本的水平对齐方式。

该属性通过指定行框与哪个点对齐,从而设置块级元素内文本的水平对齐方式。通过允许用户代理调整行内容中字母和字之间的间隔,可以支持值 justify;不同用户代理可能会得到不同的结果。

可能的值:

描述
left 把文本排列到左边。默认值:由浏览器决定。
right 把文本排列到右边。
center 把文本排列到中间。
justify 实现两端对齐文本效果。
inherit 规定应该从父元素继承 text-align 属性的值。

注意:任何的版本的 Internet Explorer (包括 IE8)都不支持属性值 "inherit"。

2.3 使用 vertical-align 属性实现DIV的水平与垂直居中

步骤:

(1)父div外层配置一个div,同时设置为表格元素 (display: table),宽度为100%。

(2)父div配置为表格单元格元素 (display: table-cell)。

(3)父div配置居中属性(vertical-align: middle),使子div上下居中。

(4)子div通过margin配置左右居中(margin-left:auto; margin-right:auto)。

示例:使用 vertical-align 属性实现DIV的水平与垂直居中。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>使用 vertical-align 属性实现DIV的水平与垂直居中</title>

    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        .warp {
            display: table;
            width: 100%;
        }

        .father {
            display: table-cell;
            vertical-align: middle;
        }

        .son {
            margin: auto;
        }
    </style>
</head>
<body>
<div class="warp">
    <div class="father" style="width: 100%; height: 500px; border: 1px solid rebeccapurple;">
        <div class="son" style="width: 300px; height: 100px; border: 1px solid rebeccapurple;">
            <h3 style="text-align: center">请输入登录信息</h3>
            <form method="post" name="form1">
                <table>
                    <tr>
                        <td>用户:</td>
                        <td><input name="user" style="width:200px" type="text"/></td>
                    </tr>
                    <tr>
                        <td>密码:</td>
                        <td><input name="password" style="width:200px" type="password"/></td>
                    </tr>
                    <!-- 以下是提交、取消按钮 -->
                    <tr>
                        <td>
                            <input type="submit" value="登录"/>
                        </td>
                        <td>
                            <input type="reset" value="取消"/>
                        </td>
                    </tr>
                </table>
            </form>
        </div>
    </div>
</div>
</body>
</html>

 

3、绝对定位

3.1 CSS中 position 属性的介绍

定义:

position 属性规定元素的定位类型。

这个属性定义建立元素布局所用的定位机制。任何元素都可以定位,不过绝对或固定元素会生成一个块级框,而不论该元素本身是什么类型。相对定位元素会相对于它在正常流中的默认位置偏移。

可能的值:

描述
absolute

生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。

元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

fixed

生成绝对定位的元素,相对于浏览器窗口进行定位。

元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

relative

生成相对定位的元素,相对于其正常位置进行定位。

因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。

static 默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。
inherit 规定应该从父元素继承 position 属性的值。

示例:定位 h2 元素。

h2 {
  position:absolute;
  left:100px;
  top:150px;
}

3.2 绝对定位(方式一)

利用定位属性(top、left、right、bottom)百分比的模式。若为100%,则代表偏移的长度为父div的高度(宽度)的100%。

步骤:

(1)父div标记下定位(position:relative|absolute|fixed)。

(2)子div绝对定位(position:absolute)。

(3)子div上下居中:top:50%;margin-top:-h/2 或是 bottom:50%;margin-bottom:-h/2。

(4)子div左右居中: left:50%;margin-left:-w/2 或是 right:50%;margin-right:-w/2。

示例:使用绝对定位(方式一)实现DIV的水平与垂直居中。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>使用绝对定位(方式一)实现DIV的水平与垂直居中</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        .father {
            position: relative;
        }

        .son {
            position: absolute;
            bottom: 50%;
            margin-bottom: -80px;
            left: 50%;
            margin-left: -150px;
        }
    </style>
</head>
<body>

<div class="father" style="width: 100%; height: 500px; border: 1px solid rebeccapurple;">
    <div class="son" style="width: 300px; height: 160px; border: 1px solid rebeccapurple;">
        <h3 style="text-align: center">请输入注册信息</h3>
        <form method="post" name="form1">
            <table>
                <tr>
                    <td>用户:</td>
                    <td><input style="width:200px" type="text"/></td>
                </tr>
                <tr>
                    <td>密码:</td>
                    <td><input style="width:200px" type="password"/></td>
                </tr>
                <tr>
                    <td>昵称:</td>
                    <td><input style="width:200px" type="text"/></td>
                </tr>
                <tr>
                    <td>性别:</td>
                    <td><input style="width:200px" type="text"/></td>
                </tr>
                <!-- 以下是提交、取消按钮 -->
                <tr>
                    <td>
                        <input type="submit" value="提交"/>
                    </td>
                    <td>
                        <input type="reset" value="取消"/>
                    </td>
                </tr>
            </table>
        </form>
    </div>
</div>
</body>

3.3 绝对定位(方式二)

定位属性top和bottom(或是left和right)值分别设置为0,但子div有固定高度(宽度),并不能达到上下(左右)间距为0,此时给子div设置margin:auto会使它居中显示。

步骤:

父div标记下定位(position:relative|absolute|fixed|sticky)。

子div绝对定位(position:absolute)。

子div上下居中:top:0;bottom:0;margin-top:auto;margin-bottom:auto。

子div左右居中:left:0;right:0;margin-left:auto;margin-right:auto。

例子:使用绝对定位(方式二)实现DIV的水平与垂直居中。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>使用绝对定位(方式二)实现DIV的水平与垂直居中</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        .father {
            position: relative;
        }

        .son {
            position: absolute;
            top: 0;
            bottom: 0;
            left: 0;
            right: 0;
            margin: auto
        }
    </style>
</head>
<body>
<div class="father" style="width: 100%; height: 400px; border: 1px solid rebeccapurple;">
    <div class="son" style="width: 300px; height: 160px; border: 1px solid rebeccapurple;">
        <h3 style="text-align: center">请输入注册信息</h3>
        <form method="post" name="form1">
            <table>
                <tr>
                    <td>用户:</td>
                    <td><input style="width:200px" type="text"/></td>
                </tr>
                <tr>
                    <td>密码:</td>
                    <td><input style="width:200px" type="password"/></td>
                </tr>
                <tr>
                    <td>昵称:</td>
                    <td><input style="width:200px" type="text"/></td>
                </tr>
                <tr>
                    <td>性别:</td>
                    <td><input style="width:200px" type="text"/></td>
                </tr>
                <!-- 以下是提交、取消按钮 -->
                <tr>
                    <td>
                        <input type="submit" value="提交"/>
                    </td>
                    <td>
                        <input type="reset" value="取消"/>
                    </td>
                </tr>
            </table>
        </form>
    </div>
</div>
</body>
</html>

执行结果:

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSS实现DIV的水平与垂直居中 的相关文章

  • 如何在 Bootstrap 列中使用文本溢出?

    假设我有一行具有固定高度 并且我在其列中插入了一些文本 如果太长 我希望将其剪掉 并在行尾添加三个点 如下所示 我在用着文本溢出 省略号 我的行中有此属性 但无法使其工作 JsFiddle http jsfiddle net Alexnot
  • 跨浏览器:禁用输入字段的不同行为(文本可以/不能复制)

    我有一个被禁用的输入 html 字段 在某些浏览器 Chrome Edge Internet Explorer 和 Opera 中可以选择并复制文本 但至少在 Firefox 中这是不可能的 您可以通过在不同浏览器中执行以下代码来测试
  • 是否有针对 CSS 位置和可点击区域的 Android 浏览器错误的解决方法?

    当您有一些可点击的内容时 例如 a a
  • 使用滤镜将css3灰色图像转为蓝色?

    我正在尝试将灰色图像变为更蓝色的色调 真的不知道如何为此设置滤镜或是否可能 该图像只有一种颜色 cacaca 其余部分透明 我正在尝试使用相同的图像进行一些叠加 以便它仅突出显示那些彩色部分而不是透明区域 一直在尝试其中的一些 但没有取得多
  • 如何使用 javascript 或 jquery 生成 CSS 路径?

    关于如何生成元素的 CSS 路径有什么建议吗 CSS 路径是识别特定元素所需的 css 选择器的路径 例如 如果我的 html 是 div div class bar ul li 1 li li 2 li li span class sel
  • 禁用引导列上的滚动

    我正在尝试禁用引导列上的滚动 这是我的代码 div class container fluid h 100 div class row h 100 div class col 4 h 100 bg dark fixed div div cl
  • 使用 JavaScript 使链接保持活动状态并在单击时显示悬停效果

    I am struggling to make this work I d like to make it where if O F is clicked the hover state stays active if another li
  • 保持未知数量的 div 居中,每行最多 4 个

    我有一个简单的问题 但我自己无法解决 简而言之 有一个未知电话我必须在页面中放置的元素数量 最多 每行 4 个元素 但仍居中 此图片给您一个提示 我为了示例而设置它 详细 在上图中我涵盖了不同的场景 例如 如果总共有 5 个元素 则应使用第
  • 避免响应式页面的重复内容

    我目前正在做一个涉及响应式设计的项目 整个布局应该使用HTML和CSS来实现 我知道可以使用 java 脚本将内容从一个列布局移动到另一列布局 而无需复制内容 但是使用 HTML 和 CSS 是否可以实现相同的效果 以下面的例子为例 它会在
  • 当输入字段处于焦点时,占位符不会消失

    当用户选择字段时 表单上每个输入字段的占位符值应该消失 但事实并非如此 文档类型是 HTML5 http dailyspiro com index html http dailyspiro com index html
  • 如何更改文本选择背景颜色

    我的意思是 当您选择一些 HTML 文本时 背景中会有一种颜色告诉您选择了哪个文本 怎么可能通过CSS来改变它呢 我需要它是白色的 透明的 我已经看到这样做了 您可以使用某些 CSS 选择器来更改所选文本的 CSS 属性 我对此进行了测试
  • 输入文本中固定下划线

    我试图修复所有输入文本类型中的下划线 但没有成功 Example My code input width 100 background color fcfcfc border 0 padding 10px div class col lg
  • 如何将div对齐到页面底部,而不是屏幕底部

    我想将 div 与页面底部对齐 而不是与屏幕底部对齐 当我这样做时 contact block position absolute bottom 0 left 0 div 被放置在屏幕的底部区域 当我的页面很长时 我必须向下滚动 并且本应位
  • 单击时更改 CSS 属性

    我试图在单击另一个元素时更改一个元素的 CSS 我进行了很多搜索 但没有任何效果是完美的 目前我正在使用下面的代码 但它不起作用 谁能告诉我我错过了什么 div hello world div img src zoom png functi
  • 比例背景图像

    我想放大和缩小页面中的背景图像 我尝试过多种方法 但似乎没有一种方法能按照我想要的方式工作 我的页面的网址是http quaaoutlodge com drupal 7 14 http quaaoutlodge com drupal 7 1
  • 弯曲方向等高行:列

    我有一个带有两个弹性项目的弹性布局 显示为行 flex direction column 这些物品应该有一个最小高度 但它们应该保持其中一个物品生长所需的相同高度 看这个 JSFiddle https jsfiddle net 958vxh
  • 使用 CSS Flexbox 堆叠图像

    我正在学习使用CSSflexbox 和我想在左侧渲染一个大图像 并在彼此之上渲染两个小图像 我怎样才能使用CSS弹性盒 div class container img class image1 src alt null img class
  • HTML 覆盖高度覆盖整个可见页面

    我有一个使用 AJAX 加载一些内容的网页 我想在加载过程中显示带有加载指示器的覆盖层 以便用户无法与页面的大部分内容交互 除了顶部的菜单 我正在使用 jQuery 和jQuery BlockUI 插件 http malsup com jq
  • 我的 iPhone 6 获取 iPhone 5 媒体查询

    我不明白这里发生了什么事 我在 CSS 媒体查询中专门针对 iphone 5 media only screen and min device width 320px and max device width 568px some div
  • jQuery 覆盖默认验证错误消息显示(Css)弹出/工具提示等

    我试图用 div 而不是标签来覆盖默认的错误消息标签 我看过这个帖子 https stackoverflow com questions 309574 jquery validation how to not display errors

随机推荐

  • Vue拖拽排序(el-table ajax返回数据)

  • Unity Bolt使用协程等待

    使用Unity bolt插件可以进行一些简单逻辑开发 本质上相当于把C 接口以图形化的方式进行调用 但是怎么使用协程进行等待呢 经过一些研究 可以使用继承WaitUnit的组件方式进行扩展 下面是具体的操作步骤 1 等待组件扩展 经过查找
  • 安装MMDetection

    文章目录 前言 MMDetection介绍 MMDetection 整体构建流程和思想 其他信息 参考博客 前言 记录安装MMDetection MMDetection介绍 MMDetection 整体构建流程和思想 这里引用知乎回答图片
  • 企业微信自建应用通过PHP进行收发消息

    我们在企业微信的使用中肯定会用到自建应用 自建应用使用最多的功能就是消息的推送 使用的场景也有很多 例如 在公司内网的程序 可以监控员工在什么时候进行了敏感操作 比如某管理员删除了帐号或者其他内容 可以在进行操作时候推送一条消息到自建应用上
  • 基于GPU的三维体素化

    详情请看我的个人博客的体素化Voxelization 基于GPU的三维体素化
  • Power BI区域可视化(中国、各省市、各区县)

    1 制作SVG地图元件 Axure 复制到 Axure 的全国 含省 市 区 SVG 地图元件 PNG TO SVG 从复制到 Axure 的全国 含省 市 区 SVG 地图元件上截图 另存为PNG PNG TO SVG 设置SVG pat
  • Linux运维面试精选题库(一)

    运维精选面试题 1 什么是数据库 DB DataBase 数据库 依照某种数据模型进行组织并存放到存储器的数据集合 DBMS DataBase Management System 数据库管理系统 用来操纵和管理数据库的大型服务 软件 DBS
  • 手把手教你使用USB的CDC+MSC复合设备(基于stm32f407)- 2

    接上文 手把手教你使用USB的CDC MSC复合设备 基于stm32f407 此文主要是记录一下usb枚举时抓取的一些数据以及usb msc涉及的部分scsi协议 USB MSC协议 主要包括usb协议 msc类协议 scsi协议 SDIO
  • Python序列化protobuf中的repeated数据

    基本数据类型 append追加数据即可 clientRequestBody ids append 1 clientRequestBody ids append 2 如果ids需要的数据类型是列表 用extend 方法即可 具体参见exten
  • 【网络编程】揭开套接字的神秘面纱

    文章目录 1 peach 简单理解TCP UDP协议 peach 2 peach 网络字节序 peach 3 peach socket编程接口 peach 3 1 apple socket 常见API apple 3 2 apple soc
  • 激光雷达处理简介

    目录 1 什么是激光雷达 2 什么是点云 3 激光雷达的类型 4 激光雷达技术的优势 5 激光雷达处理概述 6 激光雷达技术的应用 1 什么是激光雷达 激光雷达 即激光探测和测距 是一种三维激光扫描方法 激光雷达传感器提供有关环境的三维结构
  • 如何将PC电脑变成web服务器:将内网主机映射到外网实现远程访问

    如何将PC电脑变成web服务器 将内网主机映射到外网实现远程访问 我是艾西 今天跟大家分享内容还是比较多人问的一个问题 如何将PC电脑变成web服务器 内网主机作为web服务器 内容包括本地内网映射 多层内网映射解决方案 绕过电信80端口封
  • C++运算符重载(简单易懂)

    一 运算符重载 对已有的运算符进行重新定义 赋予另一种功能以适用不同的数据类型 1 加号运算符 重载 创建类 Person class Person public 1 成员函数重载 号 本质 Person p3 p1 operator p2
  • 结构体(struct)继承——[C++语言中]

    在C 语言中 struct对C语言中的strcut进行了扩充 已经不仅仅是一个包含不同数据类型的数据结构体了 在C 语言中 strcut可以包含成员函数 可以实现继承 可以实现多态 在C 语言中 结构体struct与类class的最本质区别
  • JavaScript设计模式(二)——简单工厂模式、抽象工厂模式、建造者模式

    个人简介 个人主页 前端杂货铺 学习方向 主攻前端方向 正逐渐往全干发展 个人状态 研发工程师 现效力于中国工业软件事业 人生格言 积跬步至千里 积小流成江海 推荐学习 前端面试宝典 Vue2 Vue3 Vue2 3项目实战 Node js
  • Git查看和编辑配置并设置默认编辑器为VSCode

    1 查看已有配置 使用命令 git config list show origin 查看已有的配置 file D Git etc gitconfig diff astextplain textconv astextplain file D
  • 如何剪辑视频?方法来了,零基础也能学会!

    视频怎么剪辑呀 刚刚用录屏软件录制了一段视频 但是录进去了很多不需要的画面 需要进行修改 可是不知道视频怎么剪辑 有没有人知道剪辑视频的方法 推荐一下 剪辑视频是一门重要的技能 无论是在日常生活中还是工作中 都需要用到 从个人Vlog到专业
  • 给我写一段nginx代码

    server listen 80 server name example com location root var www example index index html index htm
  • (Struts2学习篇)Struts2标签库(表单标签)

    一 jsp页面代码 index jsp
  • CSS实现DIV的水平与垂直居中

    使用CSS样式实现DIV的水平与垂直居中 1 使用 div 标签的 align 属性实现水平居中 HTML中的 div 标签的 align 属性用于规定 div 元素中的内容的水平对齐方式 所有浏览器都支持 align 属性 语法 div