块级元素和行内元素分别有哪些?动手测试并列出4条以上的特性区别
块级元素:
div h1 h2 h3 h4 h5 h6 p hr form ul dl ol pre table li dd dt tr td th
行内元素:
em strong span a br label code
inline-block元素:
input button select textarea
从元素本身的特点来讲,可以分为不可替换元素和替换元素
HTML 的大多数元素是不可替换元素,即其内容直接表现给用户端
替换元素就是浏览器根据元素的标签和属性,来决定元素的具体显示内容
例如浏览器会根据<img>
标签的src属性的值来读取图片信息并显示出来,而如果查看HTML代码,则看不到图片的实际内容;又例如根据<input>
标签的type属性来决定是显示输入框,还是单选按钮等。
HTML中的<img>、<input>、<textarea>、<select>、<object>都是替换元素。这些元素往往没有实际的内容,即是一个空元素
替换元素一般有内在尺寸,所以具有width和height,可以设定。例如你不指定img的width和height时,就按其内在尺寸显示,也就是图片被保存的时候的宽度和高度。
以下是测试:
-
块级元素可以包含文本,块级,行内元素,而行内元素只能包含文本和行内元素(a是例外,感觉可以包裹一切);
-
块级元素单独占据一整行,行内元素占据的位置只有自身文本宽度的空间;
- 块级元素可以设置宽高,行内元素设置宽高无效;
4.块级元素的padding,margin值设置有效,行内元素padding,margin上下的值设置无效,但左右有效;
这个图初看起来貌似padding有作用,然后我百度了一下,以下是解释;当我们使用内边距时,只有左右方向有效;当我们设置四个方向的内边距时,对于该行内元素,确实显示出效果,但是竖直方向的内边距只有效果,对其他元素无任何影响。因此,行内元素的padding-top,padding-bottom和margin-top,margin-bottom是真的是无效;不过要注意一点,对于竖直方向的内边距该行内元素的内容范围是增大了,不过只是表象,对周围元素无任何影响。
可以总结一下它们的特点:
- 块元素的特点:
a.总是在新行上开始;
b.高度、行高以及外边距和内边距都可控制;
c.宽度默认是它容器的100%,除非设定一个宽度;
d.他可以容纳内联元素和其他块元素。 - 内联元素的特点:
a.和其他元素都在同一行;
b.高,行高及外边距和内边距不可改变;
c.宽度就是它的文字和图片的宽度,不可改变;
d.内联元素只能容纳文本或者其他内联元素。
那么块级元素。内联元素可以相互转换吗?答案是肯定的。
以下是转换方法:
display
块元素默认display:block;行内非替换元素(a,span)默认为display:inline;行内替换元素(input)默认为display:inline-block;
- display:none;不显示该元素,也不会保留该元素原先占有的文档流位置。
- display:block;转换为块级元素。
- display:inline;转换为行内元素。
- display:inline-block;转换为行内块级元素。
float(inline-block化)
当把行内元素设置完float:left/right后,该行内元素的display属性会被赋予block值,且拥有浮动特性。行内元素去除了之间的莫名空白。
position(inline-block化)
当为行内元素进行定位时,position:absolute与position:fixed.都会使得原先的行内元素变为块级元素。
什么是 CSS 继承? 哪些属性能继承,哪些不能?
什么是CSS继承?
答:继承就是子元素继承了父元素的CSS样式的属性
什么属性能继承?
1.字体:family,size,weight,line-height
2.文本:letter-spacing,word-spacing,text-align, text-indent
3.列表:list-style-type
4.颜色:color,ps:a标签不能继承父元素的字体颜色,原因是a标签自己有默认字体颜色,会覆盖掉- 继承自父元素的字体颜色;
什么属性不能被继承?
1.display
2.float
3.padding和margin
4.背景相关,比如颜色图片等
以下是具体属性:
不可继承的:display、margin、border、padding、background、height、min-height、max-height、width、min-width、max-width、overflow、position、left、right、top、bottom、z-index、float、clear、table-layout、vertical-align、page-break-after、page-bread-before和unicode-bidi。
所有元素可继承:visibility和cursor。
内联元素可继承:letter-spacing、word-spacing、white-space、line-height、color、font、font-family、font-size、font-style、font-variant、font-weight、text-decoration、text-transform、direction。
块状元素可继承:text-indent和text-align。
列表元素可继承:list-style、list-style-type、list-style-position、list-style-image。
表格元素可继承:border-collapse
如何让块级元素水平居中?如何让行内元素水平居中?
行内元素居中:给父元素添加text-align:center
,此时父元素必须是块级元素
块状元素居中:给该元素加上margin: 0 auto
用 CSS 实现一个三角形
单行文本溢出加 ...如何实现?
如下代码:
white-space: nowrap;让该行不换行
overflow: hidden;隐藏多余的
text-overflow: ellipsis;变成...
px, em, rem 有什么区别
- px(pixel,像素):是一个虚拟长度单位,是计算机系统的数字化长度单位,如果px要换算成物理长度,需要制定精度DPI(Dots Per Inch,每英寸像素数),在扫描打印时一般都有DPI可选。Windows系统默认是96dpi,Apple系统默认是72dpi。
- em(相对长度单位,相对于当前对象内文本的字体尺寸):是一个相对长度单位,最初是指字母M的宽度,故名em。现指的是字符宽度的倍数,用类似百分比,如:0.8em,1.2em,2em等。通常1em=16px。
- rem(root em):是CSS3新增的一个相对单位,这个单位引起了广泛关注。这个单位与em有什么区别呢?区别在与使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。这个单位可谓集相对大小和绝对大小的优点与一身,通过它既可以做到只修改根元素就成比列的调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。目前,除了IE8及更早的版本以外,所有的浏览器均已支持rem。对于不支持它的浏览器,应对方法也很简单,就是多写一个绝对单位的声明。这些浏览器会忽略rem设定的字体大小。
解释下面代码的作用?为什么要加引号? 字体里\5b8b\4f53代表什么?
body{
font: 12px/1.5 tahoma,arial,'Hiragino Sans GB','\5b8b\4f53',sans-serif;
}
字体大小为12px
字体行高为1.5倍字体大小
字体可在tahoma,arial,'Hiragino Sans GB','\5b8b\4f53',sans-serif 这些字体中选择(若都不存在,则为浏览器默认字体)
当有空格或者Unicode码时,需要加引号
\5b8b\4f53是字体的Unicode码,表示黑体
实现以下5个效果
额外补充:
box-shadow: h-shadow v-shadow blur spread color inset;
对象选择器 {box-shadow:[投影方式] X轴偏移量 Y轴偏移量 阴影模糊半径 阴影扩展半径 阴影颜色}
阴影demo