1.text-align: center的作用是什么,作用在什么元素上?能让什么元素水平居中?
text-align 属性规定元素中的文本的水平对齐方式。
该属性通过指定行框与哪个点对齐,从而设置块级元素内文本的水平对齐方式。通过允许用户代理调整行内容中字母和字之间的间隔,可以支持值 justify;不同用户代理可能会得到不同的结果。
从上述引用表述可以看出,text-align的作用是规定元素中文本的水平对齐方式。text-align的取值不同,元素中文本的水平对齐方式不同。
- left 把文本排列到左边。默认值:由浏览器决定。
- right 把文本排列到右边。
- center 把文本排列到中间。
- justify 实现两端对齐文本效果。
- inherit 规定应该从父元素继承 text-align 属性的值。
简单测试一下:简单测试
通过测试可以看出,text-align:justify;效果并不是所想到的将 文本拉伸到两端对齐,而是一种紧密的排列方式。具体可参考以下引用:
最后一个水平对齐属性是 justify,它会带来自己的一些问题。
值 justify 可以使文本的两端都对齐。在两端对齐文本中,文本行的左右两端都放在父元素的内边界上。然后,调整单词和字母间的间隔,使各行的长度恰好相等。您也许已经注意到了,两端对齐文本在打印领域很常见。不过在 CSS 中,还需要多做些考虑。
要由用户代理(而不是 CSS)来确定两端对齐文本如何拉伸,以填满父元素左右边界之间的空间。例如,有些浏览器可能只在单词之间增加额外的空间,而另外一些浏览器可能会平均分布字母间的额外空间(不过 CSS 规范特别指出,如果 letter-spacing 属性指定为一个长度值,“用户代理不能进一步增加或减少字符间的空间”)。还有一些用户代理可能会减少某些行的空间,使文本挤得更紧密。所有这些做法都会影响元素的外观,甚至改变其高度,这取决于用户代理的对齐选择影响了多少文本行。
CSS 也没有指定应当如何处理连字符(注1)。大多数两端对齐文本都使用连字符将长单词分开放在两行上,从而缩小单词之间的间隔,改善文本行的外观。不过,由于 CSS 没有定义连字符行为,用户代理不太可能自动加连字符。因此,在 CSS 中,两端对齐文本看上去没有打印出来好看,特别是元素可能太窄,以至于每行只能放下几个单词。当然,使用窄设计元素是可以的,不过要当心相应的缺点。
- text-align实际是作用在块级元素上,使得块级元素内的行内元素居中。
2.IE 盒模型和W3C盒模型有什么区别?
-
IE盒模型
-
W3C盒模型
由上两张图可以看出IE盒模型与W3C盒模型的差异在width的定义上,IE盒模型的width指的是boder的宽度+padding的宽度+content的宽度,而W3C的盒模型的width指的是width的宽度。
3.*{ box-sizing: border-box;}的作用是什么?
box-sizing属性用来设置或检索对象的盒模型组成模式,可以取content-box和border-box.
content-box: padding和border不被包含在定义的width和height之内。对象的实际宽度等于设置的width值和border、padding之和,即 ( Element width = width + border + padding )
此属性表现为标准模式下的盒模型(即W3C盒模型)。border-box: padding和border被包含在定义的width和height之内。对象的实际宽度就等于设置的width值,即使定义有border和padding也不会改变对象的实际宽度,即 ( Element width = width )
此属性表现为怪异模式下的盒模型(即IE盒模型)。
*{box-sizing:border-box}
即预设所有元素采用IE盒模型的模式。
4.line-height: 2和line-height: 200%有什么区别?
- line-height:2; 是将该元素行高(即字体底端到顶端距离)设置为自身行高的2倍;
- line-height:200%;是将该元素行高设置为其父元素高度的两倍;
5.inline-block有什么特性?如何去除缝隙?高度不一样的inline-block元素如何顶端对齐?
display:inline-block:是将元素转化为内联块元素,所谓内联块元素即是指该元素
(1)可以水平排列;
(2)可以当做一个块元素来进行设置。如何去除缝隙可以参考
相关讨论
简单来说就是将父元素的字体大小设置为零,这样就能去除间隙,之后再在该元素中将正常字体设置回来。高度不一样的一样的inline-block元素如何顶端对齐
可以采用vertical-align:top;的方式来进行设置:
简单测试一下
根据测试结果来看,顶端对齐效果应该是指两inline-block元素的文本顶线对齐。-
简单引伸一下:关于line-height的几个概念性的东西
line-height翻译为中文即为行高,line-height实际指的是两行文字间基线之间的垂直距离。所谓“基线”是英语中的一个概念,
基线的定义
6.CSS sprite 是什么?
叫css精灵,是一种网页图片应用处理方式。将不同的图片/图标合并到一张图片上。这样可以减少网络请求次数,提高网页加载性能。
7.让一个元素"看不见"有几种方式?有什么区别?
display:none;
将元素设置为display:none后,元素在页面上将彻底消失,元素本来占有的空间就会被其他元素占有,也就是说它会导致浏览器的重排和重绘。
visibility:hidden
和display:none的区别在于,元素在页面消失后,其占据的空间依旧会保留着,所以它只会导致浏览器重绘而不会重排。适用于那些元素隐藏后不希望页面布局会发生变化的场景。
opacity:0
这种方法和visibility:hidden的一个共同点是元素隐藏后依旧占据着空间,但我们都知道,设置透明度为0后,元素只是隐身了,它依旧存在页面中。
background-color:rgba(0,0,0,0.2);设置背景色透明