mission-9

Q1.text-align: center的作用是什么,作用在什么元素上?能让什么元素水平居中

能让在块级父容器中让行内元素或类行内元素(比如文本和链接)水平居中
这种方法还可以让 inline/inline-block/inline-table/inline/flex等类型的元素实现居中。

mission-9_第1张图片
text-align: center

Q2.IE 盒模型和W3C盒模型有什么区别?

盒模型在初学css的时候就会接触到,其实很容易理解,这里也不多废话,但是实际上在布局的时候还是会出现很多问题。对于盒模型的认识不能只停留在知道一个盒模型由哪些部分构成,也要更多的了解如何在不同情况下利用盒模型的特点进行布局。 这里讨论一下两种不同的盒模型: W3C盒模型和IE盒模型。 其实IE的盒模型问题只会出现在IE5.5及其更早的版本中,因为在IE6及更新的版本在标准兼容模式下使用的是W3C的盒模型标准,但事实上不仅IE5.5,连IE6的使用率也很少了,这里对他们进行讨论只是为了更深刻的理解盒模型。 对于两种模型这里有一张图:
mission-9_第2张图片
W3C盒模型和IE盒模型

可以看到IE的盒模型与W3C盒模型的区别在与width的计算,这说明什么问题呢?我们在设置样式的时候经常会用到margin和padding还有width,对于下面html文件:
















不管是不是IE,浏览器下显示的效果都是:

mission-9_第3张图片

可以看到 Container正好将两个box包装起来。
但加入给container添加一个padding如下:
.container{ width: 200px; background-color: #f00; overflow: hidden; padding: 10px;}

则其在非IE下的样式为:
mission-9_第4张图片
W3C

但在IE下为:
mission-9_第5张图片
IE

IE中的box换行了,这就是因为IE中的width是包括了padding的,而W3C也就是我们平常使用的盒模型不包括,不管padding加多少内容区域的宽度不会改变,这也十分合理。 避免触发IE盒模型的方法是使用声明,告诉IE采用W3C盒子模型即可。

Q3:*{ box-sizing: border-box;}的作用是什么?

box-sizing 属性允许您以特定的方式定义匹配某个区域的特定元素。
例如,假如您需要并排放置两个带边框的框,可通过将 box-sizing 设置为 "border-box"。这可令浏览器呈现出带有指定宽度和高度的框,并把边框和内边距放入框中。
border-box 为元素设定的宽度和高度决定了元素的边框盒。
就是说,为元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。
通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。

Q4:line-height: 2和line-height: 200%有什么区别?

line-height: 2 :设为元素本身字体大小的2倍

line-height: 200% : 设为其父元素字体大小的2倍

mission-9_第6张图片
line-height: 2
mission-9_第7张图片
line-height: 200%

可见对于父元素2者效果相同,而对于子元素来说line-height:2:行间距是字体大小的2倍,line-height:200%:行间距是父元素大小的2倍。

Q5:inline-block有什么特性?如何去除缝隙?高度不一样的inline-block元素如何顶端对齐?

inlin-block的特性有以下几点:
1.inline-block元素可以设置宽高和上下左右的padding和margin。
2.inline-block元素并排排列
3.inline-block元素默认宽高为内容宽高

第一种,将inline-block元素的html代码前的空白符全部删除,如:


mission-9_第8张图片
第一种

第二种,使用负margin,这样做有个缺点是如果父容器宽高等于inline-block元素的宽高,inline-block元素会超出父容器,如:


mission-9_第9张图片
第二种

第三种,将inline-block元素的父元素的font-size设为0,再重新给inline-block元素设置font-size。如:

mission-9_第10张图片
第三种

第四种,给inline-block元素设置浮动,使用这种方法要记得清除浮动。如:

mission-9_第11张图片
第四种

高度不一样的inlin-block元素通过设置vertical-align:top;样式来让顶端对齐,如:

mission-9_第12张图片
顶部对齐

Q6:CSS sprite 是什么?

CSS Sprites简介

CSSSprites在国内很多人叫css精灵,是一种网页图片应用处理方式。它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不会像以前那样一幅一幅地慢慢显示出来了。
加速的关键,不是降低质量,而是减少个数。传统切图讲究精细,图片规格越小越好,重量越小越好,其实规格大小无所谓,计算机统一都按byte计算。客户端每显示一张图片都会向服务器发送请求。所以,图片越多请求次数越多,造成延迟的可能性也就越大。

CSS Sprites原理

CSS Sprites其实就是把网页中一些背景图片整合到一张图片文件中,再利用CSS的“background-image”,“background- repeat”,“background-position”的组合进行背景定位,background-position可以用数字精确的定位出背景图片的位置。

CSS Sprites优点

1.利用CSS Sprites能很好地减少网页的http请求,从而大大的提高页面的性能,这也是CSS Sprites最大的优点,也是其被广泛传播和应用的主要原因;
2.CSS Sprites能减少图片的字节,曾经比较过多次3张图片合并成1张图片的字节总是小于这3张图片的字节总和。
3.解决了网页设计师在图片命名上的困扰,只需对一张集合的图片上命名就可以了,不需要对每一个小元素进行命名,从而提高了网页的制作效率。
4.更换风格方便,只需要在一张或少张图片上修改图片的颜色或样式,整个网页的风格就可以改变。维护起来更加方便。

Q7:让一个元素"看不见"有几种方式?有什么区别?

mission-9_第13张图片
4种不同方法

由图可见:display:none和设置height,width等盒模型属性为0的办法都是不占空间;而opacity:0和visibility:hidden这两种是元素占空间的。

设置height,width等盒模型属性为0
这是我总结的一种比较奇葩的技巧,简单说就是将元素的margin,border,padding,height和width等影响元素盒模型的属性设置成0,如果元素内有子元素或内容,还应该设置其overflow:hidden来隐藏其子元素,这算是一种奇技淫巧。
这种方式既不实用,也可能存在着着一些问题。但平时我们用到的一些页面效果可能就是采用这种方式来完成的,比如jquery的slideUp动画,它就是设置元素的overflow:hidden后,接着通过定时器,不断地设置元素的height,margin-top,margin-bottom,border-top,border-bottom,padding-top,padding-bottom为0,从而达到slideUp的效果。

代码:
http://js.jirengu.com/fizaf/1/edit?html,css,output
http://js.jirengu.com/hujinakuzu/1/edit?html,css,output

你可能感兴趣的:(mission-9)