块级元素和行内元素分别有哪些?动手测试并列出4条以上的特性区别。
常见的块级元素和行内元素:
- 块级元素:h/p/div/hr/form/ui/ol/li/dl/dt/dd/pre/table/tr/td/th
- 行内元素:em/strong/span/a/br/img/buttom/input/label/select/textarea/code/script
块级元素和行内元素的特性:
- 块级元素会占用一整行,其他块级元素会被挤下到另一行,而行内元素之间可以在同一行存在
- 块级元素可以设计长宽,而行内元素无法设置长宽
- 行内元素设置margin和padding时只有左右有效,上下无效
- 块级元素可以包含行内元素和块级元素,行内元素只能包含行内元素和文本
什么是 CSS 继承? 哪些属性能继承,哪些不能?
继承:继承是依赖于父子关系的一种机制。对于某个样式应用于某个父元素时,子元素如果不做特别的限制,子元素会继承父元素的一些样式
-
无继承性的属性
1、display:规定元素应该生成的框的类型
2、文本属性:
vertical-align:垂直文本对齐
text-decoration:规定添加到文本的装饰
text-shadow:文本阴影效果
white-space:空白符的处理
unicode-bidi:设置文本的方向
3、盒子模型的属性:width、height、margin 、margin-top、margin-right、margin-bottom、margin-left、border、border-style、border-top-style、border-right-style、border-bottom-style、border-left-style、border-width、border-top-width、border-right-right、border-bottom-width、border-left-width、border-color、border-top-color、border-right-color、border-bottom-color、border-left-color、border-top、border-right、border-bottom、border-left、padding、padding-top、padding-right、padding-bottom、padding-left
4、背景属性:background、background-color、background-image、background-repeat、background-position、background-attachment
5、定位属性:float、clear、position、top、right、bottom、left、min-width、min-height、max-width、max-height、overflow、clip、z-index
6、生成内容属性:content、counter-reset、counter-increment
7、轮廓样式属性:outline-style、outline-width、outline-color、outline
8、页面样式属性:size、page-break-before、page-break-after
9、声音样式属性:pause-before、pause-after、pause、cue-before、cue-after、cue、play-during
-
可以继承属性
1、字体系列属性
font:组合字体
font-family:规定元素的字体系列
font-weight:设置字体的粗细
font-size:设置字体的尺寸
font-style:定义字体的风格
font-variant:设置小型大写字母的字体显示文本,这意味着所有的小写字母均会被转换为大写,但是所有使用小型大写字体的字母与其余文本相比,其字体尺寸更小。
font-stretch:对当前的 font-family 进行伸缩变形。所有主流浏览器都不支持。
font-size-adjust:为某个元素规定一个 aspect 值,这样就可以保持首选字体的 x-height。
2、文本系列属性
text-indent:文本缩进
text-align:文本水平对齐
line-height:行高
word-spacing:增加或减少单词间的空白(即字间隔)
letter-spacing:增加或减少字符间的空白(字符间距)
text-transform:控制文本大小写
direction:规定文本的书写方向
color:文本颜色
3、元素可见性:visibility
4、表格布局属性:caption-side、border-collapse、border-spacing、empty-cells、table-layout
5、列表布局属性:list-style-type、list-style-image、list-style-position、list-style
6、生成内容属性:quotes
7、光标属性:cursor
8、页面样式属性:page、page-break-inside、windows、orphans
9、声音样式属性:speak、speak-punctuation、speak-numeral、speak-header、speech-rate、volume、voice-family、pitch、pitch-range、stress、richness、、azimuth、elevation
如何让块级元素水平居中?如何让行内元素水平居中?
- 块级元素水平居中:margin:0 auto;
- 行内元素水平居中:text-align:center;
用 CSS 实现一个三角形
<style> .a{ width: 0; height: 0 ; border-top:solid 20px red; border-left:solid 20px transparent; border-right:solid 20px transparent; border-bottom:solid 20px transparent; } </style> <body> <h1 class="a"></h1> </body>
- 把内容的宽高设为0,把border设宽同时把三个方向的border设为隐藏,这样就可以了
单行文本溢出加 ...如何实现?
需要三行标签,主要思路:阻止自动换行、对溢出的文本隐藏、对隐藏的文本用...表示
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
当遇到比如h标签时,h标签属性本身就不会换行时就不需要white-space:nowrap,当然直接加三行代码会更加方便,类似于清除浮动时直接写clear:both的感觉是一样的。
px, em, rem 有什么区别
- px是相对于浏览器的大小,也就是像素单位
- em是相对父容器宽高长度或者文字字体本身的倍数
- rem是相对于根节点body设置的字体倍数
解释下面代码的作用?为什么要加引号? 字体里\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字体类型由浏览器、计算机中的字体库搜寻优先选用前面的字体,如果找不到用后面字体替代,以此类推。
- 加引号的作用是为了区别每个字体的名称,方便浏览器识别字体名称防止识别错误产生乱码
- 字体里的\5b8b\4f53代表宋体,因为如果是国外的用户可能字体库中没有中文,会导致无法识别该字体名称,所以用通用的unicode编码表示。