1.块级元素和行内元素分别有哪些?动手测试并列出4条以上的特性区别
HTML将元素分类方式分为行内元素、块状元素和行内块状元素三种。首先需要说明的是,这三者是可以互相转换的,使用display属性能够将三者任意转换:
1.display:inline;转换为行内元素。
2.display:block;转换为块状元素。
3.display:inline-block;转换为行内块状元素。
块级元素:
div、p、h1~h6、ul、ol、dl、li、dd、table、hr、blockquote、address、table、menu、pre,HTML5新增的header、section、aside、footer等
行内元素:
span、img、a、lable、input、abbr(缩写)、em(强调)、big、cite(引用)、i(斜体)、q(短引用)、textarea、select、small、sub、sup,strong、u(下划线)、button(默认display:inline-block)
区别:
1.块级可以包含块级和行内,行内只能包含文本和行内
2.块级占据一整行空间,行内占据自身宽度空间,所以多个行内元素可以并排排列
3.宽高的差异:宽高只对块级元素设置生效,即可以设置width和height属性。对行内元素设置无效。table元素浏览器默认的display属性为table。
4.内外边距的差异:对于块级元素,可以设置margin,padding。
对于行内元素,padding的4个方向都有效,margin只有水平方向有效。对于padding会撑开边框和背景色,但本身高度不会因此发生变化。
块级行内元素
可以设置宽高,padding、margin都有效的行内元素就是块级行内元素,textarea,img,input,select,button均为块级行内元素。
2.什么是 CSS 继承? 哪些属性能继承,哪些不能?
能继承的属性:color, font,
不能继承的属性:display ,border, margin, padding
3.如何让块级元素水平居中?如何让行内元素水平居中?
对于块级元素,左右margin设置为auto即可,一般我们习惯设置为 margin: 0 auto 可达到水平居中目的。
.box {
/* margin: 0 auto; 实际上是下面两个起作用 */
margin-left: auto;
margin-right: auto;
}
对于行内元素,使用text-align:center;可达到居中目的
<style>
.box{
text-align: center;
}
</style>
<div class="box">
![](http://upload-images.jianshu.io/upload_images/6555104-ed111772ed795902.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
</div>
4.用 CSS 实现一个三角形
.t0{
height:0px;
width:0px;
border-top:solid 20px transparent;
border-left:solid 20px green;
border-right:solid 20px transparent;
border-bottom:solid 20px transparent;
}
5.单行文本溢出加 ...如何实现?
.card > h3{
white-space: nowrap; /*white-space处理空白字符or换行,nowrap表示不换航 */
overflow: hidden;/*溢出之后就隐藏*/
text-overflow: ellipsis;/*文本溢出之后就变为三个点*/
}
6.px, em, rem 有什么区别
px:固定单位
em: 相对单位,相对于父元素字体大小
rem: 相对单位,相对于根元素(html)字体大小font
7.解释下面代码的作用?为什么要加引号? 字体里\5b8b\4f53代表什么?
body{
font: 12px/1.5 tahoma,arial,'Hiragino Sans GB','\5b8b\4f53',sans-serif;
}
- 作用:该段代码设置了body的font样式,字体大小为12px,行高是字体1.5倍的像素值,后面则是第一到第五字体的选用,如果用户浏览第一字体没有,则查询第二字体有没有,以此类推,如果都没有则采用系统默认字体;
- 加引号原因:因为中间有空格,不加引号会被识别成两个元素。
- 字体里\5b8b\4f53代表:数字符号表示的字体的Unicode码。