:::info 层叠样式表:描述HTML文本样式的语言。
c这里仅记录一下常用样式的一些用法和说明。 :::


0.兼容

image.png

@import和link的区别

link:html方式,能定义Rss和rel链接属性等,页面加载时同步加载,所有浏览器都支持,不存在兼容性问题
import:CSS方式,只能用于CSS,,能在CSS中引入,引用必须放在所有样式之前,页面加载完成后才加载,css2.0出现不支持IE5以下

1.背景:background

  1. /*写法:常用复合写法*/
  2. background:#ff9900 url('') no-repeat center/50%
  3. /*写法:多张图片复合写法*/
  4. background: url(flower.gif) right bottom no-repeat, url(paper.gif) left top repeat;
  5. /*写法:同时多张背景图:以逗号分隔*/
  6. background-image: url(img_flwr.gif), url(paper.gif);
  7. background-position: right bottom, left top;
  8. background-repeat: no-repeat, repeat;
  9. opacity: 0.3;/*透明*/
  10. /*说明:复合写法参数顺序及说明*/
  11. background:
  12. [background-color] /*背景颜色,none(没有颜色)|transparent(透明)|色值*/
  13. [background-image] /*背景图片*/
  14. [background-repeat] /*是否重复*/
  15. [background-attachment] /*背景图固定或跟随滚动,默认:scroll(跟随)|fixed(不跟随)*/
  16. [background-position] / /*背景图位置:固定值、百分比、字母属性*/
  17. [background-size] /*背景图大小:auto|固定值|百分比|cover(平铺:图片会被裁剪,不变形)|contain:(缩放最大尺寸:图片缩放为最大尺寸,不被裁剪或变形)*/
  18. [background-origin] /*背景图片开始位置:默认:padding-box(从padding结束开始)|border-box(从边框结束开始)|centent-box(从内容开始)*/
  19. [background-clip]; /*背景的绘制位置:默认:padding-box(从border之内开始)|border-box(包含border开始)|centent-box(从padding结束开始)*/
  20. /*写法:背景渐变*/
  21. background-image:linear-gradient(90deg, red, yellow): /*线性渐变:(角度方向,颜色1,颜色2)*/
  22. background-image: repeating-linear-gradient(90deg,red, yellow 10%); /*线性重复渐变:(角度,颜色1, 颜色2 大小占比)*/
  23. background-image:radial-gradient(circle, red, yellow): /*径向渐变:(默认ellipse(椭圆) |circle(圆) 颜色1,颜色2)*/
  24. background-image:repeating-radial-gradient(,red, yellow 10%); /*径向重复渐变:(颜色1 ,颜色2 大小占比)*/

2.文本:text

  1. /*写法:超出文本显示省略号*/
  2. overflow : hidden;
  3. text-overflow: ellipsis;
  4. display: -webkit-box;
  5. -webkit-line-clamp: 2; /*几行:不规范的css3属性,所以找不到*/
  6. -webkit-box-orient: vertical; /*不规范的css3属性,所以找不到*/
  7. /*写法:文本修饰:扩展写法:红色波浪或虚上下中划线*/
  8. text-decorationunderline overline line-through wavy/dotted red
  9. /*说明:常用属性说明*/
  10. {text-align:} /*水平对齐方式:默认:left(左)|right(右)|justify(两侧)justify要结合text-align-last: justify使用*/
  11. {vertical-align:} /*垂直对其方式:默认:top(上)|moblie(中)|bottom(下)|text-top(父元素字体顶端)|text-bottom(父元素字体底端)*/
  12. {line-height:} /*行高*/
  13. {direction:} /*文字方向:默认:ltl(左)|rtl(右) */
  14. {letter-spacing:} /*字符间隔:字符之间的间距*/
  15. {word-spacing:} /*字间隔:文字中间空格的大小*/
  16. {text-indent:} /*段落缩进:数值*/
  17. {text-shadow:} /*文字投影:X Y 偏移量 颜色*/
  18. {white-space:} /*空白处理:默认:normal(忽略空白)|nowrap(不换行):*/
  19. {word-wrap:} /*强制换行:默认:normal|break-word(字母数字也强制换行)*/
  20. {word-break:} /*强制换行:默认:normal|break-word(允许单词换行)|break-all(必须在标点符号处换行)*/
  21. {text-overflow:} /*文字溢出显示方式:默认:clip(裁剪)|ellipsis(省略号)*/
  22. {text-transform:} /*英文处理:默认:none(无)|capitalize(首字母大写)|uppercase(全部大写)|lowercase(全部小写)*/
  23. {text-decoration:} /*文本修饰:默认:none(无)|underline(下划线)|overline(上划线)|line-through(删除线)*/

3.文字:font

  1. /*写法:自定义引用字体*/
  2. @font-face{
  3. font-family: myFirstFont;
  4. src: url(sansation_light.woff);
  5. }
  6. div{
  7. font-family:myFirstFont;
  8. }
  9. /*说明:常用属性*/
  10. {font-weight:} /*字体粗细: */
  11. {font-style:} /*字体样式:默认:normal(正常)|italic(斜体)*/
  12. {font-stretch:} /*文字拉伸:用得少,但是可能会有变态需求*/

4.边框和轮廓:border

  1. /*写法:复合写法*/
  2. border:10px dotted|dashed|solid red
  3. /*写法:边框图片复合写法*/
  4. border-image: url(border.png) 30 20 10 20 stretch;
  5. /*说明:复合写法参数说明*/
  6. border:
  7. [border-width]
  8. [border-style] /*边框样式:常用:solid(实线)|dotted(虚线)|dashed(点线)还有3D可以看文档*/
  9. [border-color]
  10. /*说明:复合写法参数说明*/
  11. border-image:
  12. [border-image-source] /*图片路径*/
  13. [border-image-slice] /*固定四个角之后:低于50%,就开始绘制四个边除了四个角的边框*/
  14. [border-image-width] /*图片宽度,一般不用管都是结合border-width使用*/
  15. [border-image-outset] /*框外部绘制的量:固定值|倍数:这个使用比较少*/
  16. [border-image-repeat] /*图像边界,否应重复(repeated)|拉伸(stretched)|铺满(rounded)*/
  17. /*说明:常用其他属性*/
  18. {border-radius:} /*圆角*/
  19. {box-shadow:} /*投影:X Y 偏移量 颜色*/
  20. {box-shadow:} /*投影:X Y 偏移量 颜色*/
  21. {outline:} /*轮廓就是边框外面的,属性差不多,可以理解成边框的边框,做个了解就好,*/

5.对元素的常用操作

  1. {padding:} /*内边距:上下左右*/
  2. {margin:} /*外边距:上下左右:值可以是auto*/
  3. {overflow:} /*溢出控制滚动条:默认:visible(溢出)|hidden(溢出隐藏)|scoll(出现滚动条)|auto(如果出现裁剪才出现滚动条)*/
  4. {box-sizing:} /*元素总高度计算:默认:content-box(边框、内边距都不算)|border-box(边框、内边距都算)*/
  5. {box-shadow:} /*投影:X Y 偏移量 颜色*/
  6. /*写法:卡片投影*/
  7. box-shadow:} 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
  8. /*写法:float浮动复合写法*/
  9. {float:} /*left(左)|right(右)|none(无)*/
  10. {clear:} /*both:清除浮动*/
  11. /*写法:position定位写法*/
  12. {position:} /*relative(绝对定位)|absolute(相对)|fixed(相对窗口)|sticky(粘性定位)*/
  13. {topleftrightbottom:} /*上下左右边距*/
  14. {z-index:} /*层级*/
  15. /*写法:用户自定义元素宽高*/
  16. {resize:} /*默认:none(无法调整)|both(用户自定义调整宽高)|horizontal(只能宽度)|vertical(只能高度)*/
  17. /*写法:元素设置和隐藏*/
  18. {display:} /*none(隐藏不占位置)|block(以块元素展示)|inline(以内联元素展示)|inline-block(两者之间显示)|table(以表格形式展示)*/
  19. {visibility:} /*hidden(隐藏但位置还在):元素设置和隐藏*/
  20. /*写法:css定义一个变量*/
  21. {--bg:#FFFFFF}
  22. {color:var(--bg)} /*定义一个变量:--名称:值;调用一个变量var(--名称)*/
  23. /*写法:content获取一个属性值并且输出出来*/
  24. {div:after(content:("attr(属性)"))}

6.组合选择符

  1. div.class /*包含class的div*/
  2. div .class /*div里所有的class*/
  3. div>.class /*div的下一级的class*/
  4. div+.class /*div相连兄弟元素的下一个的class*///
  5. div~.class /*div的兄弟元素的所有class*/


7.伪元素和属性选择器

  1. :root /*根目录*/
  2. a:link /*没有访问的链接*/
  3. a:visited /*访问过的链接*/
  4. a:active /*鼠标点击的链接*/
  5. a:hover /*鼠标悬浮的链接*/
  6. div:not(p) /*div里除了p意外的元素*/
  7. p:first-letter /*p里面的第一个字母*/
  8. p:first-line /*p里面的第一行*/
  9. p:first-child /*第一个p元素*/
  10. p:before /*p元素之前:里面必须有content*/
  11. p:after /*p元素之后:里面必须有content*/
  12. p:lang(it) /*元素lang属性为it的元素*/
  13. p:nth-child(2) /*第二个P元素odd(奇数)|even(偶数)|公式3n+1(三个一循环从第一个开始)*/
  14. p:nth-last-child(2) /*倒数第二个P元素*/
  15. input:valid /*有效值的input元素*/
  16. input:invalid /*无效值的input元素*/
  17. input:focus /*具有焦点的input元素*/
  18. p[属性=值] /*属性值的P元素*/
  19. p[属性~=值] /*属性包含值的P元素,必须独立单词*/
  20. p[属性|=值] /*属性以值开头的P元素,必须是唯一单词或者-分割*/
  21. p[属性^=值] /*属性以值开头的P元素,几个字母也行*/
  22. p[属性$=值] /*属性以值结尾的P元素,几个字母也行*/
  23. p~ul /*同一个父元素内,p元素后面所有的兄弟ul*/
  24. p+ul /*同一个父元素内,p元素后第一个兄弟ul*/
  25. p>ul /*P元素里第一级所有的ul元素*/
  26. p,ul /*p元素和ul元素*/

8.多媒体查询

  1. /*写法:屏幕480px像素以内显示,以外显示用min-width*/
  2. @media screen and (max-width: 480px) {
  3. body {
  4. background-color: lightgreen;
  5. }
  6. }
  7. /*写法:屏幕960到1199像素显示*/
  8. @media screen and (min-width: 960px) and (max-width: 1199px) {
  9. #page{ width: 960px; }#content,.div1{width: 650px;}#secondary{width:250px}select{max-width:200px}
  10. }
  11. /*写法:520到699及1151以上显示*/
  12. @media screen and (max-width: 699px) and (min-width: 520px), (min-width: 1151px) {
  13. ul li a {
  14. padding-left: 30px;
  15. background: url(email-icon.png) left center no-repeat;
  16. }
  17. }

**以上是初学必须掌握**

**以下不会用别说会CSS3**

1.计数器

  1. /*写法:计数器*/
  2. counter-reset:名字 /*创建重置一个计数器:起个名字*/
  3. :before{
  4. counter-increment:名字; /*使用计数器*/
  5. content:counter(名字) /*输出计数*/
  6. }

2.2D转换

  1. /*写法:复合写法,这个不大常用,直接用下面单条属性就行*/
  2. transform:matrix(0.866,0.5,-0.5,0.866,0,0);
  3. /*说明:参数说明*/
  4. transform:
  5. [translate()] /*根据XY轴位移:(X数值,Y数值)*/
  6. [rotate()] /*旋转:(角度)*/
  7. [scale()] /*根据XY轴缩放:(X倍数,Y倍数)*/
  8. [skew()] /*根据XY轴倾斜:(X角度,Y角度)*/
  9. /*兼容写法*/
  10. -ms-transform: rotate(30deg); /* IE 9 */
  11. -webkit-transform: rotate(30deg); /* Safari and Chrome */
  12. /*这里就是常用简单用法,对动画特效比较钟爱建议去好好看看文档*/

3.3D转换

  1. /*写法:复合写法,这个不大常用,直接用下面单条属性就行*/
  2. transform:matrix(0.866,0.5,-0.5,0.866,0,0);
  3. /*说明:参数说明*/
  4. transform:
  5. [rotateX()] /*根据X轴旋转:(角度)*/
  6. [rotateY()] /*根据Y轴旋转:(角度)*/
  7. /*兼容写法*/
  8. transform: rotateY(130deg);
  9. -webkit-transform: rotateY(130deg); /* Safari 与 Chrome */
  10. /*这里就是常用简单用法,对动画特效比较钟爱建议去好好看看文档*/

4.过渡

  1. /*写法:复合写法,这个不大常用,直接用下面单条属性就行*/
  2. transition:all 2s ease 1s| width 2s ease 1s, height 2s ease 1s, transform 2s ease 1s;
  3. /*说明:参数说明*/
  4. transition:
  5. [transition-property] /*对应属性:css属性懒得挨个写直接all*/
  6. [transition-duration] /*完成时间*/
  7. [transition-timing-function] /*转速曲线:linear(匀速)|ease(先慢后快)|cubic-bezier(n,n,n,n)(自己定义),*/
  8. [transition-delay] /*开始时间*/
  9. /*兼容写法*/
  10. -webkit-transition: width 2s; /* Safari */

5.动画

  1. /*写法*/
  2. /*1.起名字然后写上开始效果和结束效果*/
  3. @keyframes myfirst{
  4. from {background: red;}
  5. to {background: yellow;}
  6. /*也可以自己设置动画中间间隔*/
  7. 0% {background: red;}
  8. 25% {background: yellow;}
  9. 50% {background: blue;}
  10. 100% {background: green;}
  11. }
  12. /*2.调用动画效果*/
  13. div{
  14. animation-name: myfirst; /*效果名称*/
  15. animation-duration: 5s; /*持续时间*/
  16. animation-timing-function: linear; /*转速曲线:linear(匀速)|ease(先慢后快)|cubic-bezier(n,n,n,n)(自己定义),*/
  17. animation-delay: 2s; /*开始时间*/
  18. animation-iteration-count: infinite; /*播放次数:次数|infinite(无限次)*/
  19. animation-direction: alternate; /*是否交替播放:默认:normal(正常)|reverse(倒放)|alternate(奇数正、偶数倒)|alternate-reverse(反之)*/
  20. animation-play-state: running; /*指定动画是否暂停:默认:running(运行),paused(暂停)*/
  21. }
  22. /*兼容写法*/
  23. @keyframes myfirst
  24. {
  25. from {background: red;}
  26. to {background: yellow;}
  27. }
  28. @-webkit-keyframes myfirst /* Safari 与 Chrome */
  29. {
  30. from {background: red;}
  31. to {background: yellow;}
  32. }
  33. -webkit-animation: myfirst 5s; /* Safari 与 Chrome */

6.多列显示

  1. column /*指定元素应该被分割:列数|宽度 */
  2. column-width /*指定列的宽度就不用上面的列数了 */
  3. column-gap /*指定列与列之间的间隙 */
  4. column-rule /*间隔分割线:宽度 线条 颜色,所有 column-rule-* 属性的简写 */
  5. column-span /*指定元素要跨越多少列,可以是all整行 */

7.flex弹性布局

  1. /*写法:1.声明模块为弹性布局:注意内容为动态生成情况下,flex可能不生效*/
  2. display: -webkit-flex;
  3. display: flex;
  4. /*写法:2.其他说性说明*/
  5. /*在父级可以设置的属性*/
  6. flex-flow: <flex-direction> || <flex-wrap> /*复合写法*/
  7. flex-direction /*项目排列方向设置主轴:row(列展示) | row-reverse(倒列展示) | column(行展示) | column-reverse(倒行展示)*/
  8. flex-wrap /*是否换行:默认:nowrap(不换行) | wrap(换行) | wrap-reverse(换行倒序)*/
  9. justify-content /*主轴上对齐方式: 默认;flex-start(开始位置) | flex-end(结束位置) | center(中间位置) | space-between(两侧对齐) | space-around(等间隔排列);*/
  10. align-items /*辅轴对齐方式:默认flex-start(开始位置) | flex-end(结束位置) | center(中间位置) | baseline(内容对齐) | stretch(项目元素拉伸一般高);*/
  11. align-content /*同时设置两条轴线但是有一条不好用就都不好用:默认flex-start(开始位置) | flex-end(结束位置) | center(中间位置) | space-between(四周对齐) | stretch(四轴拉伸)|space-around(等间隔排列);*/
  12. /*在子元素可以设置的属性*/
  13. order /*排列:值越小越靠前排列*/
  14. align-self /*单个项目排列:默认auto(自动) | flex-start(开始) | flex-end(结束) | center(居中) | baseline(内容对齐) | stretch(拉伸);*/
  15. flex: none | [ <'flex-grow'> <'flex-shrink'> <'flex-basis'> ] /*复合写法:auto (1 1 auto) | none (0 0 auto)。*/
  16. flex-grow: /*放大比例*/
  17. flex-shrink /*缩小比例*/
  18. flex-basis: /*所占空间:类似width*/

8.网格化布局

  1. /*写法:1.声明模块为网格布局*/
  2. display:grid; /*设置容器:grid(块元素网格)|inline-grid(内联网格);*/
  3. /*写法:2.其他说性说明*/
  4. grid-template-columns: 100px 100px 100px; /*行宽度 */
  5. grid-template-rows: 100px 100px 100px; /*列宽度 */
  6. /*建议写法:auto(自己决定)|repeat(3, 33.33%)(三次每次都是33.33)|repeat(auto-fill, 100px)(每个大小100,随着父级宽度排列)|fr(倍数 :后者是前者的倍数)|minmax(100px, 1fr)(最大最小值);*/
  7. grid-gap: <grid-row-gap> <grid-column-gap> /*复合写法*/;
  8. grid-row-gap: 20px; /*列间隔*/
  9. grid-column-gap: 20px; /*行间隔*/
  10. /*写法:网格各个的名字*/
  11. grid-area: myArea;
  12. grid-template-areas: 'myArea myArea myArea myArea myArea';
  13. /*合并*/
  14. grid-column: 2 / span 3;
  15. grid-column-start: 1; /*行从第一条线开始*/
  16. grid-column-end: 3; /*行从第三条线开始*/
  17. grid-row-start: 1; /*列从第一条线开始*/
  18. grid-row-end: 3; /*列从第三条线开始*/
  19. grid-auto-flow: ; /*row(从行后列)|column(先列后行)|row dense|column dense*/
  20. place-content: <align-content> <justify-content>/*复合写法*/
  21. justify-content /*整个单元在容器位置 start | end | center | stretch | space-around | space-between | space-evenly;*/
  22. align-content: /*整个单元在容器位置 start | end | center | stretch | space-around | space-between | space-evenly;*/
  23. /*设置在单元上*/
  24. place-items: <align-items> <justify-items>; /*复合写法*/
  25. justify-items /*左中下:start | end | center | stretch;*/
  26. align-items /*上中下:start | end | center | stretch;*/
  27. /*设置在单个单元上*/
  28. place-self: <align-self> <justify-self>;
  29. justify-self: start | end | center | stretch;
  30. align-self: start | end | center | stretch;
  31. /*写法:传统12格布局*/
  32. grid-template-columns: repeat(12, 1fr);