交集选择器: E.选择器名{}表示给指定的元素定义一个专用选择器eg:nav li.ml-300{xxxxxxxx}
a:link:默认的链接样式 a:visited:访问后的样式 a:hover:鼠标悬停样式(非a标签也可使用hover) a:active:鼠标按下的颜色 cursor:pointer:鼠标变为手型提示用户可点击
文本:css中设置对应块元素height==line-heigth时,在此块元素中的单行文本垂直居中。
文本:text-align(设置块级元素内文本的水平对齐方式):center,文本在块级元素中,水平居中显示。
块级元素:margin:0 auto;(左右auto水平居中)
比如导航nav放在header里面,nav设置宽度100%里面放一个ul, ul是块级元素,设置宽度60%,就可以让它margin 0 auto 水平居中 ul里面li也是块级元素,li包含的a是行内元素, 就可以给li加text-align让行内元素a水平居中,让li里面的a行内元素垂直居中就加height和line-height
那让ul在nav垂直对齐呢? 就按照博客内容对ul设置position absolute left 50% top 50% margin上左为自身宽度*0.5 nav 为relative
居中方法总结
padding:内边距,border之内。 margin:外边距,border之外。 outline:会渲染出边框的效果,且盒模型计算不会计算outline。 box-shadow:x y 模糊值 阴影长度 颜色 inset(内阴影可选) x,y为0时,四周都有阴影效果。
总宽度:width+(padding+border+margin)*2 总高度:height+(padding+border+margin)*2
display:none隐藏元素
display:block显示元素,转换为块级元素(可设置宽和高,独占一行)对margin左右有效,上下无效,对padding上下左右都有效,但会撑大空间。
display:inline内联元素(不能设置宽和高,不会独占一行)
display:inline-block转换为内联的块级元素(可设置宽和高,不会独占一行)对margin、padding上下左右都有效。
关于块级元素,行内元素,行内块级元素详情 display:table-cell表格单元格,具有td的表格属性
导航栏子菜单踩坑
清除浮动不用overflow:hidden否则子菜单不可见。选择显示子菜单时,空格后代选择器,>为儿子选择器 ,+为兄弟选择器。在子菜单中将a设置为块内元素更改高度,外部自适应,否则鼠标移动上去会抖动。子菜单宽度自适应父级,给li固定宽度。当子元素的margin-top,padding-top留白,作用于父元素外面时,在父元素上,设置overflow:hiidden。在一个页面中,尽量减少定位布局 一般布局都是自然文档流,浮动布局,盒子模型最后才选择定位布局
多个元素重叠在一个盒子中,可以使用定位。
注:脱离文档流?参照谁?
position:relative;相对定位更改层次。 top,right,left,bottom设置偏移位置。 z-index:1;数值越大越在上层
原理:以元素自己原来的坐标为参考坐标,进行位置偏移,元素原来的空间还在,其他元素不会移动上去替代它。
注:原来空间还在,父级用overflow:hidden,溢出隐藏
绝对定位原理:绝对定位的当前元素脱离了原始文档流,变成了内联元素,故例如一个p绝对定位要让文字水平居中则先设置width:100%,再设置text-align:center。
绝对定位元素参照离它最近的已定位的父级元素进行定位。如果没有在父级线上找到已定位的元素,最后一定是由html根元素(浏览器边框)进行定位。
定位后,它原来的位置就被回收了,不会被保留,后面的html元素就会占据它原来的位置。
如何把一个未定位的元素转换为已定位的元素? 设置position:relative,但不设置偏移量即可。
绝对定位做法:父元素相对定位,子元素绝对定位。
position:fixed;直接参照html根元素进行定位 定位后原来的位置不被保留,后面的元素会占据它的位置。 原理:定位后脱离文档流,成为内联元素,宽度变为元素内容的宽度。
position:static:取消定位的效果,或者叫没有定位。
css2属性选择器、伪类:它主要是匹配html的标签和标签属性的值,一般用于表单元素的时候比较多。
选择器参考手册
跳转锚点:
三种显示隐藏元素的区别: visiblility:hidden | visible opacity:0 前两种不脱离文档流 | 1 (同时区别一下opacity和rgba) display:none 脱离文档流再隐藏 | block
自定义字体图标
css3是css第三版是一个标准,新增了动画,过滤,转换、新的选择器等。
注意:移入时:hover添加transition,移出时也要添加transition。
transition: property duration timing-function delay;
所有css有变化的都参与过渡,无延迟 transition:all 1s
transition-property 指定CSS属性的name
transition-duration transition效果需要指定多少秒或毫秒才能完成
transition-timing-function 指定transition效果的转速曲线。(linear、ease-in-out)
transition-delay 定义transition效果开始的时候
定义动画规则:
@keyframs 动画规则的名字{ from{} to{} 或0%{} 100%{} }给目标元素添加动画属性:animation:动画规则的名字 播放时间 播放速度 延迟时间 播放次数 逆向播放 运行或暂停,例:animation:fei 1s ease-in-out 1s infinite alternate running;
移动:transform:translate(100px,100px) :水平移动:translateX 垂直移动:translateY 旋转:transform:rotate(180deg,180deg):X轴:rotateX、Y轴:rotateY 缩放:transform:scale(1.5,1.5)——缩写为一个参数:ransform:scale(1.5):宽度:scaleX、高度:scaleY 兼容性: 倾斜旋转:transform:skew:skewX、skewY 了解浏览器内核名,浏览器如何工作渲染原理。