admin 管理员组

文章数量: 1184232


2024年2月23日发(作者:用lu分解法求解方程组例题)

在说到这个问题的时候,也许有人会问CSS中不是有vertical-align属性来设置垂直居中的吗?即使是某些浏览器不支持我只需做少许的CSS Hack技术就可以啊!所以在这里我还要啰嗦两句,CSS中的确是有vertical-align属性,但是它只对(X)HTML元素中拥有valign特性的元素才生效,例如表格元素中的、、等,而像

这样的元素是没有valign特性的,因此使用vertical-align对它们不起作用。

CSS网页布局DIV水平居中的各种方法

一、单行垂直居中

如果一个容器中只有一行文字,对它实现居中相对比较简单,我们只需要设置它的实际高度height和所在行的高度line-height相等即可。如:

提供的代码片段:

div {

height:25px;

line-height:25px;

overflow:hidden;

}

这段代码很简单,后面使用overflow:hidden的设置是为了防止内容超出容器或者产生自动换行,这样就达不到垂直居中效果了。

提供的代码片段:

"/TR/xhtml1/DTD/">

单行文字实现垂直居中

现在我们要使这段文字垂直居中显示!

不过在Internet Explorer 6及以下版本中,这和方法不支持对图片设置垂直居中。

二、多行未知高度文字的垂直居中

如果一段内容,它的高度是可变的那么我们就可以使用上一节讲到的实现水平居中时使用到的最后一种方法,就是设定Padding,使上下的padding值相同即可。同样的,这也是一种“看起来”的垂直居中方式,它只不过是使文字把

完全填充的一种方式而已。可以使用类似下面的代码:

提供的代码片段:

div {

padding:25px;

}

这种方法的优点就是它可以在任何浏览器上运行,并且代码很简单,只不过这种方法应用的前提就是容器的高度必须是可伸缩的。

提供的代码片段:

"/TR/xhtml1/DTD/">

多行文字实现垂直居中

现在我们要使这段文字垂直居中显示!    

div {

padding:25px;

border:1px solid #FF0099;

background-color:#FFCCFF;

}

三、多行文本固定高度的居中

在本文的一开始,我们已经说过CSS中的vertical-align属性只会对拥有valign特性的(X)HTML标签起作用,但是在CSS中还有一个display属性能够模拟

,所以我们可以使用这个属性来让
模拟
就可以使用vertical-align了。注意,display:table和display:table-cell的使用方法,前者必须设置在父元素上,后者必须设置在子元素上,因此我们要为需要定位的文本再增加一个
元素:

提供的代码片段:

div#wrap {

height:400px;

display:table;

}

div#content {

vertical-align:middle;

display:table-cell;

border:1px solid #FF0099;

background-color:#FFCCFF;

width:760px;

}

提供的代码片段:

"/TR/xhtml1/DTD/">

多行文字实现垂直居中

现在我们要使这段文字垂直居中显示!     

div#wrap {

height:400px;

display:table;

}

div#content {

vertical-align:middle;

display:table-cell;

border:1px solid #FF0099;

background-color:#FFCCFF;

width:760px;

}

这个方法应该是很理想了,但是不幸的是Internet Explorer 6 并不能正确地理解display:table和display:table-cell,因此这种方法在Internet Explorer 6及以下的版本中是无效的。嗯,这让人很郁闷!不过我们还其它的办法。

四、在Internet Explorer中的解决方案

在Internet Explorer 6及以下版本中,在高度的计算上存在着缺陷的。在Internet Explorer

6中对父元素进行定位后,如果再对子元素进行百分比计算时,计算的基础似乎是有继承性的(如果定位的数值是绝对数值没有这个问题,但是使用百分比计算的基础将不再是该元素的高度,而从父元素继承来的定位高度)。例如,我们有下面这样一个(X)HTML代码段:

提供的代码片段:

如果我们对subwrap进行了绝对定位,那么content也会继承了这个属性,虽然它不会在页面中马上显示出来,但是如果再对content进行相对定位的时候,你使用的100%分比将不再是content原有的高度。例如,我们设定了subwrap的position为40%,我们如果想使content

的上边缘和wrap重合的话就必须设置top:-80%;那么,如果我们设定subwrap的top:50%的话,我们必须使用100%才能使content回到原来的位置上去,但是如果我们把content也设置50%呢?那么它就正好垂直居中了。所以我们可以使用这中方法来实现Internet Explorer

6中的垂直居中:

提供的代码片段:

div#wrap {

border:1px solid #FF0099;

background-color:#FFCCFF;

width:760px;

height:400px;

position:relative;

}

div#subwrap {

position:absolute;

border:1px solid #000;

top:50%;

}

div#content {

border:1px solid #000;

position:relative;

top:-50%;

}

当然,这段代码只能在Internet Exlporer 6等计算存在问题的浏览器中才会有作用。(不过我不解,我查阅了很多文章,不知道是因为出处相同还是什么原因,似乎很多人都不愿意去解释Internet Exlporer 6中这个Bug的原理,我也只是了解了一点皮毛,还要再研究)

提供的代码片段:

"/TR/xhtml1/DTD/">

多行文字实现垂直居中

现在我们要使这段文字垂直居中显示!    

div#wrap {

border:1px solid #FF0099;

background-color:#FFCCFF;

width:760px;

height:500px;

position:relative;

}

div#subwrap {

position:absolute;

border:1px solid #000;

top:50%;

}

div#content {

border:1px solid #000;

position:relative;

top:-50%;

}

五、完美的解决方案

那么我们综合上面两种方法就可以得到一个完美的解决方案,不过这要用到CSS hack的知识。对于如果使用CSS Hack来区分浏览器,你可以参考这篇“简单CSS hack:区分IE6、IE7、IE8、Firefox、Opera”:

提供的代码片段:

div#wrap {

display:table;

border:1px solid #FF0099;

background-color:#FFCCFF;

width:760px;

height:400px;

_position:relative;

overflow:hidden;

}

div#subwrap {

vertical-align:middle;

display:table-cell;

_position:absolute;

_top:50%;

}

div#content {

_position:relative;

_top:-50%;

}

至此,一个完美的居中方案就产生了。

提供的代码片段:

"/TR/xhtml1/DTD/">

多行文字实现垂直居中

现在我们要使这段文字垂直居中显示!    

div#wrap {

border:1px solid #FF0099;

background-color:#FFCCFF;

width:760px;

height:500px;

position:relative;

}

div#subwrap {

position:absolute;

border:1px solid #000;

top:50%;

}

div#content {

border:1px solid #000;

position:relative;

top:-50%;

}

p.s. 垂直居中vertical-align的值是middle,而水平居中align的值是center,虽然同是居中但关键字不


本文标签: 居中 垂直 高度 文字 使用

更多相关文章

MuJoCo高手进阶:高效提升物理模拟性能的实战技巧

21天前

突破物理模拟极限:MuJoCo性能调优实战指南 物理模拟的速度与精度一直是机器人控制、强化学习等领域的核心挑战。当你需要训练1000个机械臂同时进行操作学习,或实时渲染复杂柔性物体碰撞时,MuJoCo的默认配置往往难以满足需求

跨时代融合:C#实现360加速球,跨越Adobe Flash Player的视觉边界

21天前

简介:通过C#编程语言开发的应用程序模拟了360安全卫士的“加速球”功能,涵盖系统资源监控、系统优化和清理等操作。本教程将详细介绍如何使用Windows Forms或WPF框架,创建自定义控件、实时数据更新、事件处理、系统优化方法、动

掌握这些技巧,让你的鼠标右键在Adobe Flash中心操作中飞速!

20天前

最近电脑装了些软件后,右键打开的速度变得非常慢,严重影响工作效率。网上找了些解决方案,装了“**右键清理工具”附带了一堆垃圾软件,360安全卫士也么有响应的小工具,终于找了一个从注册表解决的方法,mark下。 电脑鼠标右

轻松安装Autocad2014,详解功能与操作技巧,一文在手,不愁入门难

20天前

Autocad2014注册机是一款专为Autocad2014 设计软件提供注册的辅助软件。用户使用Autocad2014zcj可以将未经注册激活的Autocad2014软件成功注册并激活。这款软件操作简单,易于使用,拥有广泛的受众群体

轻松构建Perl程序:通过ActivePerl进行源代码编译

20天前

perl是解释型的语言,只要perl环境安装好,就可以直接解释代码执行,但有时想把perl代码编译成exe可执行程序,以脱离perl解释器独立执行,一般可以使用perl2exe和Perl Dev Kit,但是这两个工具要么不好找,要么

一次学会Linux时间设置:实用技巧与方法

19天前

在 Linux 系统中,可以通过不同的方法来设置系统时间,下面详细介绍几种常见的方式。目录方法一:使用date命令手动设置时间 date命令是一个简单且常用的用于显示和设置系统时间的工具。

不知道密码,一样能卸载瑞星esm防病毒终端安全防护系统_终端防护中心卸载密码

17天前

离开单位后试图卸载瑞星的时候却发现还需要密码,真是烦死了。研究了几分钟后找到了完美卸载方法。 首先,让我们请出老流氓360安全卫士,下载好它,让右键菜单出现 使用 360强力删除这一选项。 之后

简单介绍WiFi模块ESP8266的使用方法及如何使用TCP协议连接巴法云物联网平台。_wifi connected wifi got ip

15天前

首先不要慌张,8266模块不像你想象的那么难,只要简单掌握一些AT指令还是很好操作的,下面步入正题。目录2、 1、模块及管脚介绍 ESP8266模块是深圳安信可公司基于ESP8266芯片研发,特

破解XP开机密码方法

15天前

如何破解XP开机密码当Windows XP登录密码丢失时,我们可以针对不同的情况采用不同的办法来解决: (1)如果在安装Windows XP时,Administrator密码设置为空。大家可以在系统引导的时候

使用Python在Word文档中插入和删除文本框_python-docx添加textbox

15天前

在当今自动化办公需求日益增长的背景下,通过编程手段动态管理Word文档中的文本框元素已成为提升工作效率的关键技术路径。文本框作为文档排版中灵活的内容容器,既能承载多模态信息(如文字、图像),又可实现独立于正文流的位置调整与样式定制,但

使用OpenCV在按下Enter键时截图并保存到指定文件夹_opencv按键保存图片

14天前

使用OpenCV在按下Enter键时截图并保存到指定文件夹 在这篇博客中,我们将介绍如何使用OpenCV库来实现一个简单的功能:在按下Enter键时从摄像头截图并保存到指定的文件夹中。这个功能可以用于各种应用,例如监控系统、视

企业IT运维实战:批量修改192.168.0.1密码的自动化方案

14天前

快速体验打开 输入框内输入如下内容: 开发一个企业级路由器密码批量修改工具,功能包括:1)从Excel导入路由器IP列表 2)多线程并发处理 3)支持不同品牌路由器的适配 4)生成修改报告 5)失败设备自

windows系统下快速删除海量小文件方法_windows快速删除大量文件

14天前

使用windows命令行工具(DOS指令)来处理。 1、使用del命令删除文件del只删除文件夹里的文件,文件夹不删。 del fsq dirname附del的参数 P 删除每一个文件之前提

CPU负载与CPU使用率之区别

14天前

01 简介存储、内存和 CPU(中央处理器)等系统资源不足会极大地影响应用程序的性能。因此,监控这些组件至关重要。 与磁盘和内存不同,监控 Linux 系统上的 CPU 使用率并不那么简单。在本文中,我

mysql 删除用户_mysql删除用户的命令是什么

14天前

要删除MySQL数据库中的用户,您可以按照以下步骤进行: 使用root用户或具有管理员权限的账号登录到MySQL数据库中。 使用root用户或具有管理员权限的账号登录到MySQL数据库中。

个人认为斐讯K2最好的固件以及斐讯K2 WIFI中继指南_斐讯k2固件

13天前

老家的斐讯K2正作为副路由继续使用,之前使用Padavan也就是老毛子固件进行无线中继桥接,模式多设置也比较繁琐,上次国庆回家设置好后这次过年回去就说坏了,具体我也没去查看是什么原因。在找新固件的途中发现了一款个人感觉日常正常使用最

Centos LVM磁盘合并方法_centos合并硬盘

11天前

Centos LVM磁盘合并方法 使用fdisk -l命令查看机器增加了2块物理磁盘,一块40G另一块50G 需要将这两块盘的空间合并在一起,而且还需要动态扩展即在不关机的情况下操作 使用pvcreate将两块

如何查看电脑刷新率_怎么看显卡支持的刷新率

10天前

Windows 系统 通过显示设置查看:右键点击桌面空白处,选择 “显示设置”。 在打开的窗口中,找到 “高级显示设置”。 点击 “显示适配器属性

免费畅游ChinaNet:坊巷WIFI应用指南

9天前

简介:坊巷WIFI是一款专为福建地区用户设计的软件,提供免费使用ChinaNet网络服务。软件基于WIFI技术,允许用户无线连接互联网。它覆盖全国范围,稳定高速,适合移动上网或公共场所使用。坊巷WIFI的安装程序坊巷WIFISetup

英雄联盟战斗力与隐藏分查询系统源码实战项目

9天前

简介:本项目是一个针对《英雄联盟》(LOL)的游戏数据分析工具,涵盖战斗力评估、隐藏分查询、皮肤信息展示及自动化数据获取功能。通过API接口或网络爬虫技术,系统可获取玩家表现数据并进行深度分析,帮助玩家了解自身真实水平与匹配机制。源码

发表评论

全部评论 0
暂无评论