相关文章推荐
大鼻子的香烟  ·  pyqt ...·  4 月前    · 
空虚的小刀  ·  bind datatable to ...·  1 年前    · 

入门前端,首先接触到的技术就是html,css。首先说css布局这块,逻辑性的东西不多,或者根本就没有。难的是如何熟练运用css + html设置出漂亮的页面布局尤为重要。而如何实现一个div在页面中居中对齐,又是一个难啃指点。下面结合实例分享一些css技巧。

大家都知道居中布局分两种,水平居中布局和垂直居中布局。这两种技术在目前的web开发中很常见,时不时都会碰到。话说回来,水平居中布局大家都知道,但垂直居中对齐呢,难了吧。推荐如下几种垂直居中解决方案。

基于绝对定位解决方案

具体操作:为需要居中元素设置绝对定位 同时设置left,top : 50%,然后通过margin-top:0.5 * width,margin-bottom: 0.5 * height; 实列如下:
如下结构元素,水平垂直居中布局
html代码:

<div class="main"> <h1>hello</h1> <p>hello! want to be power man</p>

css代码:

margin:0; padding:0; .main{ left:50%; top: 50%; margin-top: 50px; //上左边距均设置元素尺寸一半 margin-left: 50px; margin: auto; width: 100px; height:100px; 当然这里还有种便捷写法,减少代码量。根据calc()函数的特点,可以计算属性值表达式,代替marin-top,margin-left .main{ left: calc(50% - 50px); top: calc(50% - 50px);//上左边距均设置元素尺寸一半 width: 100px; height:100px;

浏览器中渲染结果:perfect,完美实现居中
在这里插入图片描述
上面所说的方法,虽然能实现居中,但美中不足。需要设置元素的具体尺寸,才能实现。

方案二,内容自适应元素居中

这种方案任然基于定位,不需要设置元素尺寸,同样实现居中。

原理:这里为元素设置了决定对位,同事上边距,左边距均50%,这样的设置结果,直接导致元素main左上角相对于视口正中心放置。然后通过transfrom:translate(-50%,50%);上左边距均移动到自身尺寸的一半位置处,元素居中。

具体代码:

	.main{
		position: absolute;
		left: 50%;	
		top: 50%;
		transfrom: translate: (-50%, -50%);	

总结:
以上布局缺点确实能实现居中,并且还能不需要元素具体尺寸。但缺点也相继暴露出。利用了绝对定位,能完成效果,但是他是页面布局更加混乱,或者简直是火上浇油。杀敌一千,自损八百那种。

基于视口的解决方案

这里先普及一下:
1vw,1vh均为视口相关的单位。
1vw: 和视口的宽度相关。表示视口宽度的 1%(vw,vh —> v-width,v-height类似这样的解释)
1vh: 同理,是和高度相关的。表示视口高度的 1%

1vmin,1vmax:

当 view-width <view-height, 1vmin = 1vw, 否则,= 1vh
当 view-width > view-height, 1vmax = 1vh, 否则,= 1vh

他们实现布局的方案:

.main{
	width:50px;
	height:50px;
	margin:50vh auto 0;	//相对于视口高度的50%的上外边距
	transfrom: translateY(-50%);

这种布局方案使用场景不多,只适用相对视口进行居中的的场景,仅仅作为了解。

基于Flexbox方案;

利用flex弹性盒子垂直居中布局,为容器元素设置display:flex属性,同时还需要为居中元素设置margin:auto.

在body内的唯一子元素,居中解决如下;

body{
	display: flex;
	min-height:  100vh;	//必须否则不会出现垂直居中
	margin:0;	//必须,否者会出现撑出滚动条
.main{
	margin:auto;	//这里的auto,同时实现水平垂直居中
//其他场景
//容器元素
element-container{
	display:flex;
//需要居中元素
element-kid{
	margin:auto

总的来说,除了基于视口的垂直居中外,其他的解决方案,平常的开发中基本都会用到。基于flex的弹性布局方案,这里得提醒一下,弹性布局不仅仅是用来实现垂直居中,在其他网页整体排版,布局都会用到,可以说,使用这个布局解决方案,是尤为明智的选择。当然万物都不可十全十美,因为使用了css三的相关属性缘故,所以兼容性这块需要做处理。但是目前主流浏览器,chrome,safri,欧朋,Firefox已经得到良好支持,不要过度担心。

才疏学浅,内容解释不足之处,万望指正!

前言设计是带有主观色彩的,同样网页设计中的 css 一样让人摸不头脑。网上列举的实现方式一大把,或许在这里你都看到过,但既然来到这里我希望这篇能让你看有所收获,毕竟这也是前端面试的基础。实现方式1、text-align 方式text-align 是入门最常用的属性,根据字面意思是文本对齐用的。只需在父级标签上设置即可,虽然内部的子元素不管是块级元素 or 非块级元素都可以使用,但需注意块级元素会占... 一、text-align:center;) 这个属性在没有浮动的情况下,我们可以将块级元素转换为inline/inline-block,然后其父元素加上text-align:center;属性就可以将其居中。如果是行内元素(比如span、img、a等)直接在父元素上添加text-align:center;属性即可。 二、使用margin:0 auto;水平居中 前提:给元素设定了宽度和具有display:block;的块级元素。 让一个DIV水平居中,只要设置了DIV的宽度,然后使用margin:0 au 本篇文章主要介绍了如何去写关于html文字居中代码。希望对有需要的朋友有所帮助。程序猿的生活:前端10K面试准备,最完整面试真题分享(含答案)!​zhuanlan.zhihu.comhtml文字居中代码具体示例如下:<!DOCTYPE HTML> <html lang="en"> <title>html文字居中测试</title... Flexbox是CSS3中引入的一种弹性盒子布局模型,它提供了简单而强大的方式来实现元素的居中对齐。您可以根据具体的需求和兼容性考虑选择其中的一种方法来实现您的网页布局。本文将介绍几种常用的方法,以实现HTML/CSS中的页面垂直居中效果。元素的高度设置为100%,这是为了让页面占据整个视口的高度。元素的高度设置为100%,并将它们的定位设置为相对定位。元素的高度设置为100%,并将它们的显示属性设置为表格布局。另一种方法是使用表格布局来实现页面的垂直居中。,我们将内容区域的左上角定位在父元素的中心点。 相信大家在面试的时候也会经常碰到css实现元素居中的方法,下面我介绍6种方法给大家,欢迎大家评论区交流。给定两个元素,这两个元素是父子级关系并且两个元素的大小都是不确定的,那么这时候如何让子级在父级中上下左右都居中?(暂且设定父级比子级要大一些)。 如何使用html+css实现元素的水平与垂直居中效果,这也是我们网页在编码制作中会经常用到的问题。1)单行文本的居中主要实现css代码:水平居中:text-align:center;垂直居中:line-height:XXpx; /*line-height与元素的height的值一致*/我们先来看这样一个例子,加入我们这里有一个div,宽度和高度为300px,背景颜色为黑色,然后在div中有一行简短...   以上为自我鼓励,哈哈。。。   -------------------------------------------------   相信没有真正是尝试过的人应该都和我一样,觉得居中很简单啊,不是有个margin: auto嘛,如果你真正尝试过,你就知道,垂直居中真的不想你想象中那么简单。   在日常设计网页过程中,我们可以根据text-alig... 原标题:HTML实现常见居中布局一、水平居中水平居中的页面布局中最为常见的一种布局形式,多出现于标题,以及内容区域的组织形式,下面介绍四种实现水平居中的方法(注:下面各个实例中实现的是child元素的对齐操作,child元素的父容器是parent元素) 使用inline-block 和 text-align实现 .parent{text-align: center;} .child{display...