问答
1.块级元素和行内元素分别有哪些?动手测试并列出4条以上的特性区别
- 块级元素
<address> 定义地址
<caption> 定义表格标题
<div> 定义文档中的分区或节
<ol> 定义有序列表
<ul> 定义无序列表
<li> 标签定义列表项目
<dl> 定义列表
<dt> 定义列表中的标题
<dd>标签定义列表项目
<fieldset> 定义一个框架集
<form> 创建 HTML 表单
<h1~6> 定义标题
<hr> 创建一条水平线
<legend> 元素为 fieldset 元素定义标题
<noframes> 为那些不支持框架的浏览器显示文本,于 frameset 元素内部
<noscript> 定义在脚本未被执行时的替代内容
<p> 标签定义段落
<pre> 定义预格式化的文本
<table> 标签定义 HTML 表格
<tbody> 标签表格主体(正文)
<td> 表格中的标准单元格
<tfoot> 定义表格的页脚(脚注或表注)
<th> 定义表头单元格
<thead> 标签定义表格的表头
<tr> 定义表格中的行
- 行内元素
<a> 标签可定义锚
<abbr> 表示一个缩写形式
<acronym> 定义只取首字母缩写
<b> 字体加粗
<bdo> 可覆盖默认的文本方向
<big> 大号字体加粗
<br> 换行
<cite> 引用进行定义
<code> 定义计算机代码文本
<dfn> 定义一个定义项目
<em> 定义为强调的内容
<i> 斜体文本效果
<img> 向网页中嵌入一幅图像
<input> 输入框
<kbd> 定义键盘文本
<label> 标签为 input 元素定义标注(标记)
<q> 定义短的引用
<samp> 定义样本文本
<select> 创建单选或多选菜单
<small> 呈现小号字体效果
<span> 组合文档中的行内元素
<strong> 语气更强的强调的内容
<sub> 定义下标文本
<sup> 定义上标文本
<textarea> 多行的文本输入控件
<tt> 打字机或者等宽的文本效果
<var> 定义变量
- 区别特征
块级元素 | 行内元素 |
---|---|
总是在新行上开始 | 和其他元素在一行 |
宽度默认是容器的100% | 宽度就是它本身内容的宽度 |
四个方向的margin和padding都可与设置 | 只能设置左右margin和padding |
可以容纳其他块级元素和行内元素 | 只能容纳行内元素 |
- 补充
块级元素对应display:block,行内元素对应display:inline。可以通过修改元素的display属性来切换行内元素和块级元素。
补充说明一个属性:display:inline-block;可以让元素具有块级元素和行内元素的特性:既可以设置长宽,可以让padding和margin生效,又可以和其他行内元素并排。是一个很实用的属性
2. 什么是 CSS 继承? 哪些属性能继承,哪些不能?
CSS样式表继承指的是,特定的CSS属性向下传递到子孙元素
- 文本相关属性可以继承
font-family, font-size, font-style,
font-variant, font-weight, font, letter-spacing,
line-height, text-align, text-indent,
text-transform,word-spacing
- 列表相关属性可以继承
list-style-image, list-style-position,
list-style-type, list-style
- 颜色属性可以被继承
color
- 其他可以被继承属性
azimuth, border-collapse, border-spacing,
caption-side, cursor, direction, elevation,
empty-cells, orphans, pitch-range,
pitch, quotes, richness, speak-header,
speaknumeral,speak-punctuation,
speak, speechrate,stress,visibility,
voice-family, volume, whitespace,widows
3. 如何让块级元素水平居中?如何让行内元素水平居中?
块级元素剧中
margin-left: auto; margin-right: auto;
行内元素居中
text-align: center;
4. 用 CSS 实现一个三角形
基本思想是设置一个元素的高和宽为0,通过控制四个方向不同的边的厚度和透明度来绘制三角形
一个简单的例子,绘制如下三角形
div{
width: 0;
heigh: 0;
border-bottom: 100px solid red;
border-right: 100px solid transparent;
border-left: 100px solid transparent;
border-top: 100px solid transparent;
}
5. 单行文本溢出加 ...如何实现?
p{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
6. px, em, rem 有什么区别
- px:
- px像素(Pixel)。相对长度单位。像素px是相对于显示器屏幕分辨率而言的。
- IE无法调整那些使用px作为单位的字体大小;
- 国外的大部分网站能够调整的原因在于其使用了em或rem作为字体单位;
- Firefox能够调整px和em,rem,但是96%以上的中国网民使用IE浏览器(或内核)。
- **em: **
- em是相对长度单位。相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。
- em的值并不是固定的;
- em会继承父级元素的字体大小。
- rem:
- rem是CSS3新增的一个相对单位(root em,根em)
- 和em区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。
- 通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。
7. 解释下面代码的作用?为什么要加引号? 字体里\5b8b\4f53代表什么?
body{
font: 12px/1.5 tahoma,arial,'Hiragino Sans GB','\5b8b\4f53',sans-serif;
}
- body里文本的大小为12px,行高为1.5倍大小,字体按从左到右顺序显示一种电脑或浏览器中存在的tahoma,arial,'Hiragino Sans GB','\5b8b\4f53',sans-serif;
- 'Hiragino Sans GB' 加引号的作用是字体名中存在空格,加引号防止被误认为两种字体。
- \5b8b\4f53 (黑体)是字体名的Unicode码表示方式,防止字体名编码不匹配产生乱码导致无法识别