目录
CSS3新增特性
盒模型
CSS选择器和优先级
CSS可继承属性和不可继承属性
dislpay的属性和作用
隐藏元素的方式
单行、多行文本溢出
有了使用过Sass、Less 吗?他们的区别是什么?
link和@import的区别
常见的CSS单位
px、em、rem的区别
两栏布局
三栏布局
水平垂直居中
flex布局理解
flex: 1和flex:auto表示什么
grid布局
对BFC的理解,如何创建BFC
什么是margin重叠,如何解决
position 常用属性 默认值是什么
实现一个三角形
画一条0.5px的线
如何解决1px
1、 transition 是用于定义元素属性变化时的过渡效果。它需要触发某个事件(如鼠标悬 停、点击等)来启动。简单来说, transition 只能在两个状态之间转换,并且需要一个触发 条件。
2、 animation 提供了更多的控制选项,它允许我们定义关键帧(keyframes),并且可以在 复数个状态之间进行变化。 animation 可以在页面加载时自动开始运行,不需要特定的触发 事件。
盒模型都是由四个部分组成的,分别是margin、border、padding和content。
标准盒模型和IE盒模型的区别在于设置width和height时,对应的范围不同。
通过修改元素的box-sizing属性来改变元素的盒模型
选择器
选择器 |
权重 |
id选择器 #id |
100 |
类选择器 .classname |
10 |
属性选择器 div[class="foo"] |
10 |
伪类选择器 div::last-child |
10 |
标签选择器 div |
1 |
伪元素选择器 div:after |
1 |
兄弟选择器 div+span |
0 |
子选择器 ui>li |
0 |
后代选择器 div span |
0 |
通配符选择器 |
0 |
优先级
比较优先级
采用相加的原则,如果分数一样,更加css的覆盖原则采用后者
可继承
不可继承
属性 |
作用 |
block |
块类型。默认宽度为父元素宽度,可设置宽高,换行显示。 |
inline |
行内元素类型。默认宽度为内容宽度,不可设置宽高,同行显示。 |
inline-block |
行内块级元素,默认宽度为内容宽度,可以设置宽高,同行显示 |
table |
块级表格 |
flex |
flex容器布局 |
none |
隐藏元素 |
inherit |
从父类继承display属性 |
单行
css
复制代码overflow: hidden; // 溢出隐藏
text-overflow: ellipsis; // 溢出用省略号显示
whtie-space: nowrap; //规定段落中的文本不进行换行
多行
CSS
复制代码overflow:hidden
text-overflow: ellipsis; // 溢出用省略号显示
display:-webkit-box; // 作为弹性伸缩盒子模型显示。
-webkit-box-orient:vertical; // 设置伸缩盒子的子元素排列方式:从上到下垂直排列
-webkit-line-clamp:3; // 显示的行数
他们都是 CSS 预处理器,是 CSS上的一种抽象层。他们是一种特殊的语法/语言编译成 CSS。 增加了 CSS代码的复用性,层级,mixin, 变量,循环, 函数等对编写以及开发UI组件都极为方便。 区别
CSS
复制代码.outer {
height: 100px;
}
.left {
float: left;
width: 200px;
background: tomato;
}
.right {
margin-left: 200px;
width: auto;
background: gold;
}
CSS
复制代码.left{
width: 100px;
height: 200px;
background: red;
float: left;
}
.right{
height: 300px;
background: blue;
overflow: hidden;
}
CSS
复制代码.outer {
display: flex;
height: 100px;
}
.left {
width: 200px;
background: tomato;
}
.right {
flex: 1;
background: gold;
}
CSS
复制代码.outer {
position: relative;
height: 100px;
}
.left {
position: absolute;
width: 200px;
height: 100px;
background: tomato;
}
.right {
margin-left: 200px;
background: gold;
}
CSS
复制代码.parent {
position: relative;
}
.child {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
}
CSS
复制代码.parent {
position: relative;
}
.child {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
}
CSS
复制代码.parent {
position: relative;
}
.child {
position: absolute;
top: 50%;
left: 50%;
margin-top: -50px; /* 自身 height 的一半 */
margin-left: -50px; /* 自身 width 的一半 */
}
CSS
复制代码.parent {
display: flex;
justify-content:center;
align-items:center;
}
flex布局是CSS3新增的一种布局方式,能够根据不同屏幕尺寸的变化来自适应大小。
常用的属性:
flex: 1是flex-grow、flex-shrink、flex-basis的缩写,默认值是0 1 auto。
Document
Document
header
sider
main
BFC是块级格式上下文(Block Formatting Context,BFC),是CSS布局的一个概念,在BFC布局里面的元素不受外面元素影响。
创建BFC条件
BFC作用:
两个块级元素分别设置上下margin时可能会导致边距合并为一个边距,合并到边距取最大的那个值。需要注意的是,浮动的元素和绝对定位这种脱离文档流的元素的外边距不会折叠。重叠只会出现在垂直方向。
计算规则
解决方案 对于重叠的情况,主要有两种:兄弟之间重叠(margin合并) 和 父子之间重叠(margin塌陷)
通过设置不同方向边框来实现
CSS
复制代码div {
width: 0;
height: 0;
border-top: 50px solid red;
border-right: 50px solid transparent;
border-left: 50px solid transparent;
}
CSS
复制代码transform: scale(0.5,0.5);
1px 问题指的是:在一些 Retina屏幕 的机型上,移动端页面的 1px 会变得很粗,呈现出不止 1px 的效果。原因很简单——CSS 中的 1px 并不能和移动设备上的 1px 划等号。