首页 > 编程知识 正文

htmlcss实例网页,html文字水平垂直居中

时间:2023-05-04 07:40:46 阅读:44542 作者:640

作为前端的设计者,对产品展示页面的设计不是很了解。 其中,产品图像布局是必然经历的一步,以水平中央和垂直中央最多。 虽然可能需要在水平方向上居中显示产品图像,但在CSS上实现这种展示也很困难。 我想很多前端的程序员都研究过或者搜索过这些方法。 许多站点使用table实现产品图像的垂直居中。 虽然实现起来也相当方便,但唯一的缺点是结构复杂。 现在,让我们来看看几种方法,而不是如何使用talbe方法实现产品图像的水平居中。

图像水平中心存在的问题

水平居中图像是指将图像定位在容器元素中。 容器是大于图像大小或指定了大小的容器。 此外,图像位于此容器的中间。 中央是指元素容器的中间。 图像显示为元素,而不是背景图像(background-image )。 如下图所示。

众所周知,如果img有明确的大小,并且图像大小都匹配,则实现水平、垂直、居中对齐非常简单。 我们只需按以下方式操作就能轻松解决问题。

将图像显示为块元素(display:block;

为图像指定明确的边距左值和边距顶值。 其中“边距-左”的值与“边距-左=”imbBoxWidth的一半相同,是图像所在容器的“宽度”(imbboxwidth )减去图像本身的宽度(imgWidth ) 只需将相应的宽度值替换为高度值,即【margin-top=(imgboxheight-imgheight )/2】。

上面的方法方便简单,但限制太大了。 例如,图像不同时,很难用上面的方法实现。 您可能会说您为照片大小的图像定义了类,并指定了不同的边距。 但是,在很多情况下,我们不能用这种方法解决图像水平居中的问题。 例如,如果有许多不同大小的图像,并且图像容器的单位和图像大小的单位不匹配,则无法计算图像和容器之间的边距是多少。 在这种情况下,解决图像的水平居中是相当困难的。 反过来说,如果有一种将不同大小的图像水平、垂直、居中的方法,那对我们将是多么有用和多么方便。

解决问题——将图像定位在水平和垂直中心

解决水平居中对齐相当简单。 如果图像是浮动的,并且“display:inline”,我们可以通过为图像设置“文本对齐3360中心”属性来平滑地解决水平居中对齐问题。

关于以垂直方向为中心的最佳解决方案,现代浏览器在图像容器中显示“dipslay:table-cell; 垂直对齐: middle”,该方法可以使图像平滑地垂直居中,但只能在现代浏览器中工作,在IE6-7中无法正常工作。 这样做不能实现吗? 请不要着急。 一起看看下面的几种方法吧。

1、在table-cell中加入display :在线

这个方法很棒。 他说,首先使用display-table和vertical-middle是现代浏览器实现图像垂直居中的最佳方法。 但是,IE6-7不支持display:table-cell。 其实没那么严重。 我们在IE6-7下给他另一种写法。 其实掌握原理在IE下实现也不难。 让我们先来看看这个观点:

首先,在图像的容器要素中输入“display:table-cell; 垂直对准:米; ”实现当前浏览器的垂直居中

在IE6-7中,创建与照片容器高度相同高度的线盒,在该线盒中也设置“垂直对齐: middle”是一种较好的方法。

下一个重要的是为IE6-7编写代码框。 IE6-7的底部显示支持“dipslay:inline-block”。 这样,在图像的容器中创建空元素(例如span ),并在span的“display :在线块”中创建空元素; height:100%; 垂直对准:米”。

创建线盒时必须小心。 在IE6-7中,中空的line-block元素的宽度为“0”。 这在IE6-7中无效。 在这种情况下,必须将span标记为“width:1px”。 在这种情况下,水平中心会产生1px的误差,但此错误可以接受。

最终的解决方案是使用带有display:table-cell和display :在线块的在线span。 当然,你需要为IE写特殊的代码。 接下来,我们来看看代码:

html标记

XML/html代码将内容复制到剪贴板

CSS代码

CSS代码将内容复制到剪贴板

. imgWrapli{

浮点:左;

border:solid1px#666;

margin:10px10px00;

列表样式: none;

border-collapse:collapse;

}

. imgWrap

a {

background:#ffaurl(images/gridBg.gif)repeatcenter;

width:219px;

height:219px;

display:table-cell;/*图片容器以表格的单元格形式显示*/

text-align:center;/* 实现水平居中 */

vertical-align:middle;/*实现垂直居中*/

}

.imgWrap a:hover {

background-color:#dfd;

}

.imgWrap img {

border:solid1px#66f;

vertical-align:middle;/*图片垂直居中*/

}

效果

2、空白标签实现图片的垂直居中

这种方法很有意思,也很有独特之处,兼容各浏览器,代码较第一种方法又简单很多,最主要的不要单独给IE写效果,而且易懂,下面一起看看这种方法吧。

HTML Markup

XML/HTML Code复制内容到剪贴板

CSS Code

CSS Code复制内容到剪贴板

.imgWrap li{

width:219px;

height:219px;

float:left;

border:solid1px#666;

margin:10px10px0 0;

list-style:none;

text-align:center;

font-size: 0;

}

.imgWrap a {

display:block;

height: 100%;

background:#ffaurl(images/gridBg.gif)repeatcenter;

}

.imgWrap a:hover {

background-color:green;

}

.imgWrap span {

display:inline-block;/*将行内元素改变为行内块元素显示*/

width:1px;/*实现IE下可读效果*/

height: 100%;/*使用元素高度和图片容器高度一样*/

vertical-align:middle;/*垂直对齐*/

}

.imgWrap img {

vertical-align:middle;

}

效果

3、display:table模拟表格实现图片垂直居中

接下来要说的这种方法是结构有点复杂,而且在IE6-7事要配合hack来产现。这个方法就是模拟表格的形式来实现图片垂直居中的效果。

表格大家都知道,他有行(table-row)单元格(table-cell),众所周知,表格单元格中“vertical-align: middle”能让元素垂直居中,那么下面这个实例就是利用这种原理来制作的,一起来看代码

HTML Markup

XML/HTML Code复制内容到剪贴板

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。