搜索
首页web前端css教程关于css水平居中的分析

水平居中是常用的几种布局方式之一。主要分为行内元素的居中,块元素的居中。块元素的居中还分为固定宽度的居中,不定宽度的居中。行内元素的居中,使用text-align:center就可以实现,已知宽度的块元素的居中,使用绝对定位以及设置

margin为宽的一半的负值就可以实现。但是不定宽度的居中比起上面两种更常用,也更复杂,我们常常需要在分页的页码展示等地方用到不定宽居中,使用起来更方便,下面来研究下常用的几种块元素的水平居中。

1.标签嵌套偏移

实现原理:

联想到固定宽度的居中的实现:先偏移到屏幕中央,在设置其margin方向偏移宽的一半。那么能不能想到一种方法,借用这种思路,先偏移50%到屏幕的右半部分,然后在反方向偏移回来?实现起来比较困难的点是不知道这个宽度是多少。又想到只要让其父宽度和子宽度相等,然后用百分数就可以解决。那么怎么让其父宽度和字宽度一样呢?巧借float具有的包裹性:父元素如果漂浮了,并且没有设置宽高,那么将尽量包裹子元素。

实现代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>不定宽度水平居中</title>
    <style>
        body{  
            background-color: #e5da31;  
        }  
        .container{  
            position: absolute;   /*脱离文档流,其宽度将由子元素的宽度决定*/  
            left:50%;  
        }  
        .content{  
            position: absolute;  
            left:-50%;  
            background-color: #2ecc71;  
        }  
    </style>
</head>
<body>
<p class="container">
    <p class="content">标签嵌套</p>
</p>
</body>
</html>

实现效果:

关于css水平居中的分析

优点与缺点:

缺点很明显,需要自己写和文档内容无关的标签,多打了那么几行代码兼容性良好,在ie6+浏览器上查看没有问题


2.flex-box布局


实现原理:


先定义一个flex容器,然后设置其内容对齐方式为中间对齐

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>不定宽度水平居中</title>
    <style>
        body {  
            background-color: #e5da31;  
        }  
        .container {  
            display: flex;  /*定义一个flex容器*/  
            justify-content: center;  /*定义容器的空间没有被全部占用时,内容的对其方式*/  
        }  
        .content{  
            background-color: #2ecc71;  
        }  
    </style>
</head>
<body>
<p class="container">
    <p class="content">标签嵌套</p>
</p>
</body>
</html>

实现效果:

关于css水平居中的分析


优缺点分析:

实现起来最简单,但是呢,因为flex的兼容性不好,当要兼容低阶浏览器时慎重使用。


3.内联布局


实现原理:

text-align:center可以让行内元素水平居中,如果改变块元素为行内元素,在使用text-align就可以实现水平居中。

实现代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>不定宽度水平居中</title>
    <style>
        body{  
            background-color: #e5da31;  
        }  
        .container{  
          text-align:center;  
        }  
        .content{  
        display: inline;  
            background-color: #2ecc71;  
        }  
    </style>
</head>
<body>
<p class="container">
    <p class="content">标签嵌套</p>
</p>
</body>
</html>

实现效果:

关于css水平居中的分析 

优缺点分析:

用本来是修饰文字对齐方式的text-align来实现水平居中总感觉有点别扭,这块外面的container也先多余,但是为了不影响body内其他元素的局部,暂且如此。另外兼容性不错,在ie6+可以正常显示。

以上就是小编为大家带来的关于css水平居中的小小探讨全部内容了,希望大家多多支持PHP中文网~


以上是关于css水平居中的分析的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
揭开屏幕读取器的神秘面纱:可访问的表格和最佳实践揭开屏幕读取器的神秘面纱:可访问的表格和最佳实践Mar 08, 2025 am 09:45 AM

这是我们在形式可访问性上进行的小型系列中的第三篇文章。如果您错过了第二篇文章,请查看“以:focus-visible的管理用户焦点”。在

将框阴影添加到WordPress块和元素将框阴影添加到WordPress块和元素Mar 09, 2025 pm 12:53 PM

CSS盒子阴影和轮廓属性获得了主题。让我们查看一些在真实主题中起作用的示例,以及我们必须将这些样式应用于WordPress块和元素的选项。

使用GraphQL缓存使用GraphQL缓存Mar 19, 2025 am 09:36 AM

如果您最近开始使用GraphQL或审查了其优点和缺点,那么您毫无疑问听到了诸如“ GraphQl不支持缓存”或

使您的第一个自定义苗条过渡使您的第一个自定义苗条过渡Mar 15, 2025 am 11:08 AM

Svelte Transition API提供了一种使组件输入或离开文档(包括自定义Svelte Transitions)时动画组件的方法。

优雅且酷的自定义CSS卷轴:展示柜优雅且酷的自定义CSS卷轴:展示柜Mar 10, 2025 am 11:37 AM

在本文中,我们将深入研究滚动条。我知道,这听起来并不魅力,但请相信我,一个精心设计的页面是齐头并进的

展示,不要说展示,不要说Mar 16, 2025 am 11:49 AM

您花多少时间为网站设计内容演示文稿?当您撰写新的博客文章或创建新页面时,您是在考虑

使用Redwood.js和Fauna构建以太坊应用使用Redwood.js和Fauna构建以太坊应用Mar 28, 2025 am 09:18 AM

随着最近比特币价格超过20k美元的攀升,最近打破了3万美元,我认为值得深入研究创建以太坊

NPM命令是什么?NPM命令是什么?Mar 15, 2025 am 11:36 AM

NPM命令为您运行各种任务,无论是一次性或连续运行的过程,例如启动服务器或编译代码。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具