块级元素和行内元素分别有哪些?动手测试并列出4条以上的特性区别
- 块级元素(block-level)有div、h1、h3、h4、h5、h6、hr、form、ul、ol、pre、table、li、dt、tr、td、th
- 行内元素(inline-level)有em、strong、span、a、img、select、textarea、code、script、button、input
- 区别:
- 块级元素占据屏幕一整行,行内元素只占据其宽度部分。因此多个行内元素可以在同一行显示,而块级元素只能一行显示一个
- 块级元素中的table虽然没有占满一整行,但一行中只能放置一个table而不能放置其他元素
- 块级元素可以包含块级元素和行内元素;行内元素只能包含行内元素和文本,不能包含块级元素
- 宽和高的设置只对块级元素生效而不对行内元素生效,当对一个块级元素设置宽高并没有占据屏幕的一整行时,该块级元素所处的那一行仍然只能是它自己占据,无法放置其他元素
什么是 CSS 继承? 哪些属性能继承,哪些不能?
CSS的继承是指被包在内部的标签将拥有外部标签的样式性质
不可继承的: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。
小结:
CSS继承特性主要是指文本方面的继承,而关于与盒模型相关的不带继承。比如font-size: 12px;会继承,而margin-left:10px;则不会继承。
如何让块级元素水平居中?如何让行内元素水平居中?
- 对于块级元素,设置margin: 0 auto
.box{
margin-left: auto;
margin-right: auto;
}
需要强调的是,块级元素原本是撑满整个屏幕的宽度的,没有居中概念,需要设置它的宽度值,使它不撑满整个屏幕的宽度,然后再利用auto居中
- 对于行内元素,若其display为block,可以通过设置其margin值为auto以达到行内元素居中的效果;text-align是用于设置块级元素中的行内元素的一个属性,将其定义为center,就可以达到居中效果
<style>
.box{
text-align: center;
}
</style>
<div class="box">
</div>
用 CSS 实现一个三角形
- html中代码:
<!DOCUMENT html>
<html>
<body>
<div class = "tri"></div>
</body>
</html>
- css中 代码:
.tri{
width: 0px;
height: 0px;
border-top: 30px solid red;
border-bottom: 30px solid transparent;
border-left: 30px solid transparent;
border-right: 30px solid transparent;
}
单行文本溢出加 ...如何实现?
.card > h3{
white-space: nowrap;/*设置超出其容器范围的文本为非折行显示*/
overflow: hidden;/*设置超出其容器范围的文本为隐藏*/
text-overflow: ellipsis;/*将超出其容器范围的文本用...表示*/
}
px, em, rem 有什么区别
PX是像素,用PX设置字体大小时,比较稳定和精确。但是这种方法存在一个问题,当用户在浏览器中浏览我们制作的Web页面时,如果改变了浏览器的缩放,这时会使用我们的Web页面布局被打破。这样对于那些关心自己网站可用性的用户来说,就是一个大问题了。因此,这时就提出了使用“em”来定义Web页面的字体。
EM就是根据基准来缩放字体的大小。EM实质是一个相对值,而非具体的数值。这种技术需要一个参考点,一般都是以的“font-size”为基准。
EM是相对于其父元素来设置字体大小的,这样就会存在一个问题,进行任何元素设置,都有可能需要知道他父元素的大小。而Rem是相对于根元素html,这样就意味着,我们只需要在根元素确定一个参考值。
解释下面代码的作用?为什么要加引号? 字体里\5b8b\4f53代表什么?
body{
font: 12px/1.5 tahoma,arial,'Hiragino Sans GB','\5b8b\4f53',sans-serif;
}/*body内的字体大小是12像素,字体是1.5倍高度,字体的类型
优先权由tahoma开始从左至右一直到sans-serif逐次降低*/
- 有些字体类型的名称是由两个单词组成的,用引号引起来表示是一个字体,不加引号浏览器解析时会误认为是两种字体类型
- 在css中设置字体时,直接写字体中文或英文名称浏览器都能识别,直接写中文的情况下编码(GB2312、utf-8等)不匹配时会产生乱码,保险的方式是将字体名称用Unicode来表示。所以字体里
\5b8b\4f53
这种写法是font-family的写法,它代表的是中文字体“黑体”的Unicode码