1、对语义化的理解
2、html5新增的元素
css题目
1、盒子模型
所有HTML元素可以看作盒子,CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。
盒子的宽度和高度的计算方式由box-sizing属性控制
标准盒子模型:content-box(默认值)盒子的宽度 = width + padding + border + margin
IE盒子模型:border-box,宽高包括content和padding还有border,内容的宽度由width - (padding + border ) 才可以得到
2、BFC
BFC块级格式化上下文,是一个独立的渲染区域,让处于 BFC 内部的元素与外部的元素相互隔离,使内外元素的定位不会相互影响。计算BFC的高度时,浮动元素也参与计算
触发条件:
.container{
display: flex;
}
.left{
width: 150px;
height: 600px;
background-color: black;
}
.right{
flex: 1;
background-color: brown;
height: 600px;
三栏布局:
.container{
display: flex;
}
.left{
width: 150px;
height: 600px;
background-color: black;
}
.main{
flex:1;
background-color: brown;
height: 600px;
}
.right{
width: 150px;
height: 600px;
background-color: black;
4、css实现三角形、扇形
三角形:
.box{
width:0px;
height:0px;
border: 50px solid transparent;
border-left:50px solid #ef4848;
}
扇形:
原理其实和三角形一模一样,只是盒子为圆形
.box{
width:0px;
height:0px;
border: 50px solid transparent;
border-left:50px solid #ef4848;
border-radius: 50%;
}
5、css选择器权重
function refreshRem() {
var docEl = doc.documentElement;
var width = docEl.getBoundingClientRect().width;
var rem = width / 10;
docEl.style.fontSize = rem + 'px';
flexible.rem = win.rem = rem;
}
win.addEventListener('resize', refreshRem);
2)使用第三方插件pxtorem、px2rem等结合rem,将px转化为rem
7、css布局有哪些
flex布局:
Flex 意为"弹性布局",用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为 Flex 布局。
flex-direction、flex-wrap、flex-flow、justify-content、align-items、align-content
Grid 布局:
网格是最强大的 CSS 布局方案,它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局。可以说是flex布局的升级版。
Grid 布局与 Flex 布局有一定的相似性,都可以指定容器内部多个项目的位置。但是,它们也存在重大区别。Flex 布局是轴线布局,只能指定"项目"针对轴线的位置,可以看作是一维布局。Grid 布局则是将容器划分成"行"和"列",产生单元格,然后指定"项目所在"的单元格,可以看作是二维布局。Grid 布局远比 Flex 布局强大。
Table 布局:
table布局在如今已经很少使用,原因是:table布局比其它html标记占更多的字节,会阻挡浏览器渲染引擎的渲染顺序,会影响其内部的某些布局属性的生效。
标签与js的对应:
table { display: table }
tr { display: table-row }
thead { display: table-header-group }
tbody { display: table-row-group }
tfoot { display: table-footer-group }
col { display: table-column }
colgroup { display: table-column-group }
td, th { display: table-cell }
caption { display: table-caption }
8、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
表格元素可继承:border-collapse
9、伪类、伪元素
伪类的分类:状态伪类和结构性伪类
常见的状态伪类主要包括:
常见的结构性伪类包括:
10、CSS3的新特性大致分为以下六大类
.line::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 200%;
height: 1px;
background: #b3b4b8;
transform: scale(0.5);
transform-origin: 0 0; // 该属性允许改变被转换元素的位置, 默认值为50% 50% 0
}
该方案的优点在于,针对老项目使用缩放的形式可以快速实现 1px 的效果。
老项目修改代价过大,只适用于新项目。(还是有点不理解,需要回过头再复习一次)
最后一次探究1px
12、px、em、rem的区别
px(像素,相对于显示器屏幕分辨率而言)
em(相对当前元素内文本的字体尺寸,会继承父元素大小)
rem (相对HTML根元素,最常用的单位)
13、清除浮动
清除浮动主要是为了解决子元素浮动父元素高度会塌陷为零的问题。
1)、给父元素content添加一个伪类
.content::after {
content: " ";
display: block;
clear: both;
}
这个方法比较清晰,也提高了易读性。推荐这个。
2)、
给父元素添加一个夯余元素
缺点:添加了一个无关元素,代码阅读受影响,不符合语义化
3)、父元素也添加浮动
.content {
background-color: black;
width: 100%;
float: left;
}
缺点:虽然可以解决问题,但是后面要添加有不需要浮动的子元素,则影响其显示。
4)、给父元素添加overflow: hidden;
.content {
background-color: black;
border: 2px solid red;
overflow: hidden;
}
缺点:一旦包含非浮动的子元素,则会影响其显示。
14、link和@import的区别