整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

CSS垂直居中,你会多少种写法?

CSS垂直居中,你会多少种写法?

SS控制居中是前端开发中非常常用的布局技能,本文列出几种CSS控制元素居中的几种方法。

谈及HTML元素居中展示,涉及到水平居中和垂直居中,以及水平垂直居中。由于HTML文档流是水平方向的,所以水平方向上的布局控制比垂直方向要简单很多,居中也是如此。不过(水平)垂直居中还是有很多种写法,至少一只手是数不过来了,本文列出几种,并进行简单比较。

一、水平居中

使用CSS控制水平居中很简单:

  • 块级元素 设置width,并设置margin auto
  • 内联元素 父元素设置text-align center
  • HTML代码如下:
<div class="container">
 <div class="content">
 水平居中哦
 </div>
</div>

1. 块级元素水平居中

.container {
 height: 300px;
 width: 300px;
 border: 1px solid red;
}
.content {
 width: 10rem;
 border: 1px solid green;
 margin: 0 auto;
}

效果:

2. 内联元素水平居中

.container {
 height: 300px;
 width: 300px;
 border: 1px solid red;
 text-align: center;
}
.content {
 display: inline-block;
 border: 1px solid green;
}

效果:

代码很简单,而且没什么兼容性问题,所以通常也不需要用别的复杂方式来实现水平居中效果。

二、水平垂直居中

使用CSS控制垂直居中(或者水平垂直居中)就不像控制垂直居中那么方便,这里主要罗列几种。

1. flex布局

flex布局出现以后,垂直居中就很方便了,直接设置父元素:

display flex
align-items center

如果同时要水平居中,则同时设置:

justify-content center

需要注意的是IE10+才支持,webkit前缀浏览器设置flex属性需要加webkit。

.container {
 width: 300px;
 height: 300px;
 border: 1px solid red;
 display: -webkit-flex;
 display: flex; // 关键属性
 align-items: center; // 垂直居中
 justify-content: center // 水平居中
}
.content {
 border: 1px solid green;
}

2. margin+ position:absolute布局

position: absolute布局的元素,通过设置top/bottom, left/right这两对属性,可以让元素在垂直方向和水平方向分别具有了自适应的特性。就像div在水平方向的默认表现一样!

上文中对于块级元素的水平居中,我们设置宽度然后配合以margin可以实现水平居中。而对于设置了top/bottom,left/right的absolute定位元素,我们设置宽高再配合margin就可以达到水平垂直居中:

.container {
 width: 300px;
 height: 300px;
 position: relative;
 border: 1px solid red;
}
.content {
 position: absolute;
 left: 0;
 right: 0;
 top: 0;
 bottom: 0;
 width: 200px;
 height: 100px;
 margin: auto;
 border: 1px solid green;
}

效果:

兼容性很好,IE8以上支持。

3. transform + absolute

absolute定位元素的left、top属性是子元素的左边界、上边界相对父元素进行定位;transform是CSS3中非常强大的一个属性,可以接收多个属性值,包括旋转、缩放、平移等多种功能。这里使用二者配合,先将子元素左上定点定位到父元素中心点,再使用transform将子元素中心点移动到父元素的中心点即可:

.container {
 width: 300px;
 height: 300px;
 position: relative;
 border: 1px solid red;
}
.content {
 position: absolute;
 left: 50%;
 top: 50%;
 transform: translate(-50%, -50%); 
 border: 1px solid green;
}

效果:

这个方法有个小缺陷,就是translate函数的参数,最后的计算值不能为小数,否则有的浏览器渲染出来效果会模糊,所以使用本方法的话最好设置一下宽高为偶数。

4. absolute+margin负值

与上一种方法很类似,上一种方法是使用transform将元素向左上平移,本方法则是使用margin负值的方式将元素拉向左上角。

代码:

.container {
 width: 300px;
 height: 300px;
 position: relative;
 border: 1px solid red;
}
.content {
 position: absolute;
 left: 50%;
 top: 50%;
 width: 200px;
 height: 100px;
 margin-top: -50px;
 margin-left: -100px;
 border: 1px solid green;
}

效果:

5. absolute + calc

从上两种方法可以看到,absolute设置了left和top再通过平移或者margin将元素重新定位回去。如果我们直接可以计算出正确的left和top值,岂不是一次到位?calc函数正有此功能,当然我们需要知道子元素的宽高:

.container {
 width: 300px;
 height: 300px;
 border: 1px solid red;
 text-align: center;
 position: relative;
}
.content {
 position: absolute;
 border: 1px solid green;
 width: 200px;
 height: 100px;
 left: calc(50% - 100px);
 top: calc(50% - 50px);
}

效果:

6. line-height + vertical-align

vertical-align是一个作用于内联元素的属性。内联元素的特性是会和其它内联元素或者文字在同一行显示,但是默认情况下是与父元素“基线对齐”的。这里的的基线指的是父元素每一行中的一个垂直位置,是英文x下边缘所在的水平, 通过设置vertical-align为middle可以将内联元素的中部对齐父元素的中部(基线+字母x的一半高度)。所以可以利用这一点,将父元素的行高设置为其自身高度,然后将子元素与父元素中线对齐,即可实现垂直居中。

代码:

.container {
 width: 300px;
 height: 300px;
 border: 1px solid red;
 line-height: 300px;
 text-align: center;
}
.content {
 display: inline-block;
 line-height: 1.5;
 border: 1px solid green;
 vertical-align: middle;
}

效果:

以上几种方法各有不同的适用条件,因此也有不同的优缺点,下表对各种方法进行了比较:

方法条件兼容性flex布局无IE10+margin + absolute知道子元素宽高IE8+transform + absolute无,子元素宽高应为偶数IE10+absolute + margin负值知道子元素宽高absolute + calc知道子元素宽高IE9+line-height + vertical-align知道父元素宽高

CSS中同一种表现效果往往有多种不同的实现方法,要刻意地尝试多种写法,避免熟悉了一两种方法就止步不前,这样才能对各种情况得心应手

天是刘小爱自学Java的第76天。

感谢你的观看,谢谢你。

话不多说,继续html的学习:

昨天学习了最基础的文本标签及属性,除此之外还有很多其它标签,今天逐一学习。

一、链接标签(a标签)

a标签有一个必不可少的属性:href。href也就是超链接的意思。

下面编写代码,其中我每行之间用了两个换行符(<br/><br/>),为了使页面看起来相对而言更加美观些。

①href="#"

作用是跳转本页面。

②href="对应网页链接地址"

作用是跳转到对应网页。

③href="本地主页"

这个呢是我自己电脑里面的一个html文件,自己可以访问,但是别人就没法访问了。

②中的是只要网址能打开,所有人都能访问。

④href="mailto:对应邮箱地址"

作用是用本地的邮箱客户端,给填写的邮箱发送邮件。

⑤target="_self"

self,自身的意思,作用就是在当前页面中打开填入的网页链接。

⑥target="_blank"

blank,空白的意思,作用就是在新窗口中打开填入的网页链接。

⑦title="刘小爱的博客"

title,又是标题,这里的作用是:当我们将鼠标放在当前链接上的时候会出现一个标题提示。

代码编写完毕,做一个测试:

其中有个小常识:

左键直接点击,会在当前页面中打开对应链接。

Ctrl+左键点击,会在新的页面中打开对应链接。

二、图片标签和列表标签

1图片标签

image,图像的意思,简写为img,图片标签也就是用img来表示。

①src="图片地址"

如果是本地图片,写出图片所在的路径即可。

如果是网络图片,写出其对应的链接即可。

其中width为宽度,height为高度,如果只设置其中一项,高度和宽度是等比例缩放的。

当然也可以宽度高度同时设置不同的值。

②alt="图片丢失了啦"

如果图片丢失了,就会显示alt里面的内容。

③title="我是刘小爱"

同a标签一样,当鼠标放在该图片上时,会显示title里的内容。

2列表标签

list,即列表的意思,其中又分为有序列表和无序列表。

有序列表:ordered list,简写就是ol。

①type="1"

数字排序,这也是默认的有序排序规则,所以可以省略不写。

②type="a"

使用小写字母排序,详情见上图。

③type="A"

使用大写字母排序,详情见上图。

④type="Ⅰ"

使用罗马字母排序,详情见上图。

⑤type="i"

使用字母i来排序,详情见上图。

无序列表:unordered list,简写就是 ul。

①type="disc"

disc,唱片、圆盘的意思,这是无序列表的默认属性,所以可以省略不写。

②type="circle"

circle,圆形的意思。

③type="square"

square,正方形的意思。

三、表格标签

1基本介绍

table,表格的意思,这在学数据库时就接触过。

tr,tablerow的缩写,表示的是表格中的行。

td,tabledata的缩写,表示的是表格中的数据。

①单元格:cell:细胞的意思,在表格中就表示为一个单元格。

②表格外边框:border,边界的意思,用其可以设置外边框的粗细。

③单元格外间距:cellspacing,用其设定外间距。

④单元格内间距:cellpadding,用其设定内间距。

其中width表示表格的宽度,并且外间距一般都会设定为0,不然都不像是个表格的样子。

①caption标签

标题的意思,用以说明表格的标题,我这边还用了一个b标签将其给加粗了。

②th标签

table head的简写,也就是表格的表头,它是默认居中加粗的。

当然我们也可以根据align属性来设定排序位置(居左,居中,居右)。

此外,其中也可以使用thead、tbody、tfoot标签来划分表格。

  • thead表示表格的头部。
  • tbody表示表格的主体。
  • tfoot表示表格的脚部。

这个稍作了解即可,感觉使用这些标签和不使用这些标签对表格本身没有影响。

2表格快速模板设置

看到左上角那个黄灯后点击,选择Language Injection Settings,最后选择html即可。

这样设置后就可以使用表格快速创建模板了。

先输入table>tr*4>td*4,再加上Tab键,即可快速创建一个4*4的表格。

3合并单元格

①rowspan

合并行的意思,相同的列不同的行。

“2”的意思就是表示是跨两行,从第1行开始将第1行和第2行合并起来了。

既然如此,那么第2行总共也就只需要3列了,所以将其第2行第1列删除。

②colspan

合并列的意思,相同的行不同的列。

“3”的意思就是表示是跨3列,从第2列开始将第2列第3列和第4列合并起来了。

既然如此,那么第3行总共也就只需要2列了,所以将第3行中第3列第4列删除。

最后

谢谢你的观看。

如果可以的话,麻烦帮忙点个赞,谢谢你。

申请人成功拿到移民签,准备登陆加国开启美好新生活的时候,是不是除了兴奋之外,还会有一点小迷茫?第一次登陆加拿大,应该注意些什么呢?别急,小编将给你一一解答。

登陆之前事项

登陆期:一般为体检后一年,全家人都要在最晩登陆期之前登陆,且副申请人不得早于主申请人登陆(可以同时登陆或主申请人先登陆)。

新移民第一次登陆,需要重点关注的是登陆时间,并不是说拿到移民签证之后随时可以登陆。我们需要在移民签证到期之前完成登陆,而枫叶卡从办理到收取需要1-3个月,所以环球出国建议,申请人在移民签证到期前3个月登陆,可无缝切换枫叶卡。

移民证件:准备好全家人贴好签证的护照以及移民纸。

机票及行李:提前定机票会比较便宜,暑期和圣诞节是旺季,登陆应尽量避免这个时期

订票时请留意各航空公司对于行李的规定,不要超重。

现金及银行开户:每个人(包括小孩)可以携带不超过1万加元的现金,超过部分须申报。可以提前开好加拿大本地银行账户,并预先汇款至该账户,抵达后只需要到预约银行激活即可领取银行卡并使用。

加拿大的地址用以接收枫叶卡:可以是亲戚或朋友的地址,入境时需填写。

子女上学的报名文件:根据不同阶段提供相应阶段的文件。

驾照:国内驾照公证件可在登陆后使用三个月,之后须考本地或国际驾照。

物品清单:视长登或短登准备相应数量的物品,加拿大海关对新移民第一次带的所有物品入境是免税的。

禁止携芇:武器、烟花鞭炮、毒品、文物、珍稊动植物制品、肉、蔬菜、水果、鸡蛋及奶制品等入境。19岁以上的旅客每人可带1.5升酒(或1.14升白酒)、200支香烟(或50支雪茄)入境,超量将征收关税

特别注意:若登陆前您的婚姻或子女情况发生变化,请一定要提前告知移民局。


入境程序

不管我们选择哪个城市登陆,入境手续都大同小异。

第一步:飞机下机前,我们会收到一份“海关申报单”

第二步:拿到申报单之后,要去“护照检查处”。

流程如下:在新移民检查处出示护照和移民签证,然后接受工作人员的身份核实和一些细节询问,移民官员在移民纸上签字盖章,然后领取行李接受海关的检查后就可以离开了。(注意:移民纸是非常重要的文件,一定要妥善保管哦!)


以上每个关卡的具体事宜:

在护照检查处:在这里要通知移民局的审核官员(IO)做我们的“入境登记”。移民局官员会检查移民的入境申报单和护照,以及签证,然后会指导移民前往“移民柜台”。

加拿大边境服务局(Canada Border Services Agency):这是一个很重要的地点,所有报关的物品都会在这里检查。需要带上三样证件:

1.所带物品清单

2.运输货物清单

3.货币申报单

前两份清单必须要准备两份,一份由CBSA(加拿大边境服务局)保留,第二份在检查完之后会退给我们,在运输货物的时候会被用到。

就算没有出国经验,也不用太担心,通常边境服务局里的所有的工作人员都非常友好,也乐于助人。在资料准备齐全,并且排队人数不多的情况下,上述流程花费时间约为40分钟到1个小时,在此期间还能完成行李领取等其他事情。

入境需要准备的资料清单如下:

1)每位家庭成员的加拿大移民签证和移民纸;

2)每位家庭成员的护照或旅行证;

3)两份携带入境的个人物品及其价值的明细表;

4) 两份即将要抵达入境的个人物品及其价值明细表;

5) 至少六个月的最低生活资金开销的资金证明,加拿大边境服务局可能会检查。

6) 办理枫叶卡需要的照片(办理枫叶卡时,加拿大移民局提供免费拍照的服务,但是建议最好每人准备2-3张照片作为备用哦!)

小贴士:准备的东西越齐全,给移民局官员留下的印象就越好,流程就更加顺畅。

关于航班的建议:

中国目前有15个城市可以直飞加拿大,包括:北京、上海、广州、成都、沈阳、昆明、厦门、郑州、南京、杭州、青岛、重庆、天津、深圳。

入境资金证明需要注意什么?

入境时携带1万加元或者以上的现金必须申报,但是并未限制你携带入境现金的金额。所携带的现金如果超过1万加元,就需要如实向加拿大政府申报,这是反洗钱目的,而不是真正的“限制”。

虽然资金没有上限但是需要证明来源合法。这里还需要格外小心的是,当边境工作人员询问“是否携带相当于1万加元或更多现金”,如果实际携带金额超过了1万加元但是回答是no,这种情况就不是没有申报,而是谎报。这会被认定为“欺诈”行为,是会被处罚的。

入境后注意事项

枫叶卡:即永久居民卡,登陆当天在机场办理,免费,需要加拿大地址,6周左右寄到,今后返回加拿大需要该卡。

SIN卡 Sociallnsurance number,社会保险卡又称工卡。到就近的SIN卡办理地址尽快办理。4-6周寄到,免费。有此卡才可工作,申请牛奶金。

医保卡,又名健康卡,今后免费就医就凭此卡。在温哥华不用亲临办理。可以填好申

表,连同移民纸和护照首页复印件一起寄出办理。3-4个月可以办好,期间若需要,可以购买临时医疗保险。

银行借记卡及信用卡。各大银行几乎都有中文专员及服务。2-3周寄到,尽量多使用信用卡,既可以累计信用记录,又可以享受刷卡免息期及回馈。记得及时还款(可以绑定信用卡和借记卡)。

驾照:登陆后三个月内可以使用中国驾照。美国和国际驾照可在加拿大使用,但保险费较贵。可请原居住国汽车保险公司开出的无肇事记录证明,办理保险时会有优惠。满2年的中国驾照可免除笔试后(即交规考试,可以选中文考)的八个月等待期,立即考G2.

通讯:可根据话费预算签订手机计划,手机基本白送,但白送的机型取决于话费量。固定电话连同宽带和电视节目,可以根据自己的需求签订计划,同一家公司办理。

子女入学:移民子女读书需要登陆纸和加拿大住址,只能在登陆后才能具体办理,这点不同于留学。在登陆期内,可以先了解相关学校及准备好报名材料。

年度报税(资产申报),每个纳税年度为12月31日,需要在4月底之前完成报税。

更多详细信息您可以通过以下网站查询:

加拿大联邦官网:

https://www.canada.ca/en/immigration-refugees-citizenship/services/new-immigrants/prepare-life-canada/border-entry.html

加拿大边境服务局:

https://www.cbsa-asfc.gc.ca/menu-eng.html