block
宽高 padding margin都可设置独占一行inline
宽由文字决定,水平padding,margin可以设置高度,垂直padding,margin无法设置不独占一行inline-block
水平垂直padding margin都可以设置不独占一行和相邻行内元素(inline-block)在一行上,但是之间会有空白缝隙[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J7oKOoeP-1570017852099)(css.assets/line2.png)]
行高等于盒子高度,可以让一行文本垂直居中
text-,font-,line-这些元素开头的都可以继承,以及color属性
table{ border-collapse:collapse; } collapse 单词是合并的意思
border-collapse:collapse; 表示相邻边框合并在一起
相邻两个盒子都有margin,取两者中的较大者
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SWVX01OU-1570017852100)(css.assets/margin塌陷1.png)]
对于两个嵌套关系的块元素,如果父元素没有上内边距及边框,则父元素的上外边距会与子元素的上外边距发生合并,合并后的外边距为两者中的较大者,即使父元素的上外边距为0,也会发生合并。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3Gvflt7R-1570017852101)(css.assets/margin塌陷2.png)]
可以为父元素定义1像素的上边框或上内边距, 可以使用rgba,透明度100%可以为父元素添加overflow:hidden子盒子会占满父盒子的空间
如果一个盒子没有给定宽度/高度(从父盒子继承),padding不会撑大盒子
两个半径决定一个椭圆
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mGmy4vtO-1570017852102)(css.assets/radius.jpg)]
border-radius: 150px 0;
border-radius: 50%;
box-shadow
能让盒子浮起来,但是对文字不生效.
<div style="clear:both"></div>
overflow为 hidden|auto|scroll BFC后面讲解
.clearfix:after {content: ""; display: block; height: 0; clear: both; visibility: hidden; } .clearfix:before,.clearfix:after { content:""; display:table; /* 这句话可以出发BFC BFC可以清除浮动,BFC我们后面讲 */ } .clearfix:after { clear:both; }静态定位唯一的用处: 就是 取消定位。 position: static;
相对定位的盒子仍在标准流中,它后面的盒子仍以标准流方式对待它。(相对定位不脱标)
普通的盒子是左右margin 改为 auto就可, 但是对于绝对定位就无效了
定位的盒子也可以水平或者垂直居中,有一个算法
首先left 50% 父盒子的一半大小然后走自己外边距负的一半值就可以了 margin-left只认浏览器,(不认父元素)
绝对定位和固定定位的元素,最后都自动转换成行内块.
在CSS中,要想调整重叠定位元素的堆叠顺序,可以对定位元素应用z-index层叠等级属性,其取值可为正整数、负整数和0。
z-index: 2;
z-index的默认属性值是0,越大离用户越近如果取值相同,html中后面覆盖前面的只针对定位生效定位比浮动高一层
最佳实践是置零
<input type="text" style="outline: 0;"/>
防止默认testarea 的拖拽能力
<textarea style="resize: none;"></textarea>想实现...特性必须三个一起使用
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;中间宽度随意变动
实际上就是三个box, 两头和中间,中间 repeat-x
声明
@font-face { font-family: 'icomoon'; src: url('fonts/icomoon.eot?7kkyc2'); src: url('fonts/icomoon.eot?7kkyc2#iefix') format('embedded-opentype'), url('fonts/icomoon.ttf?7kkyc2') format('truetype'), url('fonts/icomoon.woff?7kkyc2') format('woff'), url('fonts/icomoon.svg?7kkyc2#icomoon') format('svg'); font-weight: normal; font-style: normal; }加字体
span { font-family: "icomoon"; }加结构
span::before { content: "\e900"; } 或者 <span></span>div:first-letter
div::after
background-image 背景图片可以写多个.用逗号分隔,后面的会被前面的覆盖,所以background-color 要写在最后(被覆盖)
url(test1.jpg) no-repeat scroll 10px 20px/70px 90px,url(test1.jpg) no-repeat scroll 10px 20px/110px 130px c #aaa;transition: width 0.6s ease 0s, height 0.3s ease 1s;
一旦元素的css样式变化了,浏览器会自动地根据样式属性值的变化,自行执行过渡动画, 浏览器默认执行.
移动,旋转和缩放,倾斜
transform: translate(100px, -50%); // 自己高度的一半 transform: translateX(100px); transform: translateY(100px); transform: scale(0.8, 1); //宽度变为了原来的 80% 高度不变 transform: scale(1, 0.8); //宽度变为了原来的 80% 高度不变 transform: scale(0.8); //宽高都是 0.8 transform: rotate(360deg); transform-origin: 10px 10px;transform: rotate(45deg) // 改变元素原点到x 为10 y 为10,然后进行顺时旋转45度 */ transform:skew(30deg,0deg);BFC 有宽度/高度/外边距margin/内边距padding/边框 border的元素满足BFC
block/table/list-item
float属性不为none
position为absolute或fixed
display为inline-block, table-cell, table-caption, flex, inline-flex
overflow不为visible。
BFC和BFC之间是干净的.
清浮动
只要把父元素设为BFC就可以清理子元素的浮动了,最常见的用法就是在父元素上设置overflow: hidden样式
解决外边距合并问题
属于同一个BFC的两个相邻盒子的margin会发生重叠,那么我们创建不属于同一个BFC,就不会发生margin重叠了
BFC和浮动不叠加.
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1KAN2JFA-1570017852103)(css.assets/搜狗截图20190915190010.jpg)]
vertical-align: middle; + margin-top: 10px; 可以移动图片,否则图片文字会一起移动
span { display: inline-block; vertical-align: middle; width: 10px; height: 10px; background-color: pink; /* margin-top: 10px;*/ } <div> <span></span> 文字 </div>pink; /* margin-top: 10px;*/ }
<div> <span></span> 文字 </div> ### 实现盒子的垂直和水平居中 div { position: absolute; width: 200px; height: 200px; background-color: pink; top: 50%; left: 50%; transform: translate(-50%, -50%); /*translate 如果x -50% 跟父亲没关系,是走自己盒子宽度的一半*/ /*translate 如果y -50% 跟父亲没关系,是走自己盒子高度的一半*/ }