:::info
层叠样式表:描述HTML文本样式的语言。
c这里仅记录一下常用样式的一些用法和说明。
:::
0.兼容
@import和link的区别
link:html方式,能定义Rss和rel链接属性等,页面加载时同步加载,所有浏览器都支持,不存在兼容性问题
import:CSS方式,只能用于CSS,,能在CSS中引入,引用必须放在所有样式之前,页面加载完成后才加载,css2.0出现不支持IE5以下
1.背景:background
/*写法:常用复合写法*/
background:#ff9900 url('') no-repeat center/50%
/*写法:多张图片复合写法*/
background: url(flower.gif) right bottom no-repeat, url(paper.gif) left top repeat;
/*写法:同时多张背景图:以逗号分隔*/
background-image: url(img_flwr.gif), url(paper.gif);
background-position: right bottom, left top;
background-repeat: no-repeat, repeat;
opacity: 0.3;/*透明*/
/*说明:复合写法参数顺序及说明*/
background:
[background-color] /*背景颜色,none(没有颜色)|transparent(透明)|色值*/
[background-image] /*背景图片*/
[background-repeat] /*是否重复*/
[background-attachment] /*背景图固定或跟随滚动,默认:scroll(跟随)|fixed(不跟随)*/
[background-position] / /*背景图位置:固定值、百分比、字母属性*/
[background-size] /*背景图大小:auto|固定值|百分比|cover(平铺:图片会被裁剪,不变形)|contain:(缩放最大尺寸:图片缩放为最大尺寸,不被裁剪或变形)*/
[background-origin] /*背景图片开始位置:默认:padding-box(从padding结束开始)|border-box(从边框结束开始)|centent-box(从内容开始)*/
[background-clip]; /*背景的绘制位置:默认:padding-box(从border之内开始)|border-box(包含border开始)|centent-box(从padding结束开始)*/
/*写法:背景渐变*/
background-image:linear-gradient(90deg, red, yellow): /*线性渐变:(角度方向,颜色1,颜色2)*/
background-image: repeating-linear-gradient(90deg,red, yellow 10%); /*线性重复渐变:(角度,颜色1, 颜色2 大小占比)*/
background-image:radial-gradient(circle, red, yellow): /*径向渐变:(默认ellipse(椭圆) |circle(圆) 颜色1,颜色2)*/
background-image:repeating-radial-gradient(,red, yellow 10%); /*径向重复渐变:(颜色1 ,颜色2 大小占比)*/
2.文本:text
/*写法:超出文本显示省略号*/
overflow : hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2; /*几行:不规范的css3属性,所以找不到*/
-webkit-box-orient: vertical; /*不规范的css3属性,所以找不到*/
/*写法:文本修饰:扩展写法:红色波浪或虚上下中划线*/
text-decoration:underline overline line-through wavy/dotted red
/*说明:常用属性说明*/
{text-align:} /*水平对齐方式:默认:left(左)|right(右)|justify(两侧)justify要结合text-align-last: justify使用*/
{vertical-align:} /*垂直对其方式:默认:top(上)|moblie(中)|bottom(下)|text-top(父元素字体顶端)|text-bottom(父元素字体底端)*/
{line-height:} /*行高*/
{direction:} /*文字方向:默认:ltl(左)|rtl(右) */
{letter-spacing:} /*字符间隔:字符之间的间距*/
{word-spacing:} /*字间隔:文字中间空格的大小*/
{text-indent:} /*段落缩进:数值*/
{text-shadow:} /*文字投影:X Y 偏移量 颜色*/
{white-space:} /*空白处理:默认:normal(忽略空白)|nowrap(不换行):*/
{word-wrap:} /*强制换行:默认:normal|break-word(字母数字也强制换行)*/
{word-break:} /*强制换行:默认:normal|break-word(允许单词换行)|break-all(必须在标点符号处换行)*/
{text-overflow:} /*文字溢出显示方式:默认:clip(裁剪)|ellipsis(省略号)*/
{text-transform:} /*英文处理:默认:none(无)|capitalize(首字母大写)|uppercase(全部大写)|lowercase(全部小写)*/
{text-decoration:} /*文本修饰:默认:none(无)|underline(下划线)|overline(上划线)|line-through(删除线)*/
3.文字:font
/*写法:自定义引用字体*/
@font-face{
font-family: myFirstFont;
src: url(sansation_light.woff);
}
div{
font-family:myFirstFont;
}
/*说明:常用属性*/
{font-weight:} /*字体粗细: */
{font-style:} /*字体样式:默认:normal(正常)|italic(斜体)*/
{font-stretch:} /*文字拉伸:用得少,但是可能会有变态需求*/
4.边框和轮廓:border
/*写法:复合写法*/
border:10px dotted|dashed|solid red
/*写法:边框图片复合写法*/
border-image: url(border.png) 30 20 10 20 stretch;
/*说明:复合写法参数说明*/
border:
[border-width]
[border-style] /*边框样式:常用:solid(实线)|dotted(虚线)|dashed(点线)还有3D可以看文档*/
[border-color]
/*说明:复合写法参数说明*/
border-image:
[border-image-source] /*图片路径*/
[border-image-slice] /*固定四个角之后:低于50%,就开始绘制四个边除了四个角的边框*/
[border-image-width] /*图片宽度,一般不用管都是结合border-width使用*/
[border-image-outset] /*框外部绘制的量:固定值|倍数:这个使用比较少*/
[border-image-repeat] /*图像边界,否应重复(repeated)|拉伸(stretched)|铺满(rounded)*/
/*说明:常用其他属性*/
{border-radius:} /*圆角*/
{box-shadow:} /*投影:X Y 偏移量 颜色*/
{box-shadow:} /*投影:X Y 偏移量 颜色*/
{outline:} /*轮廓就是边框外面的,属性差不多,可以理解成边框的边框,做个了解就好,*/
5.对元素的常用操作
{padding:} /*内边距:上下左右*/
{margin:} /*外边距:上下左右:值可以是auto*/
{overflow:} /*溢出控制滚动条:默认:visible(溢出)|hidden(溢出隐藏)|scoll(出现滚动条)|auto(如果出现裁剪才出现滚动条)*/
{box-sizing:} /*元素总高度计算:默认:content-box(边框、内边距都不算)|border-box(边框、内边距都算)*/
{box-shadow:} /*投影:X Y 偏移量 颜色*/
/*写法:卡片投影*/
box-shadow:} 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
/*写法:float浮动复合写法*/
{float:} /*left(左)|right(右)|none(无)*/
{clear:} /*both:清除浮动*/
/*写法:position定位写法*/
{position:} /*relative(绝对定位)|absolute(相对)|fixed(相对窗口)|sticky(粘性定位)*/
{top、left、right、bottom:} /*上下左右边距*/
{z-index:} /*层级*/
/*写法:用户自定义元素宽高*/
{resize:} /*默认:none(无法调整)|both(用户自定义调整宽高)|horizontal(只能宽度)|vertical(只能高度)*/
/*写法:元素设置和隐藏*/
{display:} /*none(隐藏不占位置)|block(以块元素展示)|inline(以内联元素展示)|inline-block(两者之间显示)|table(以表格形式展示)*/
{visibility:} /*hidden(隐藏但位置还在):元素设置和隐藏*/
/*写法:css定义一个变量*/
{--bg:#FFFFFF}
{color:var(--bg)} /*定义一个变量:--名称:值;调用一个变量var(--名称)*/
/*写法:content获取一个属性值并且输出出来*/
{div:after(content:("attr(属性)"))}
6.组合选择符
div.class /*包含class的div*/
div .class /*div里所有的class*/
div>.class /*div的下一级的class*/
div+.class /*div相连兄弟元素的下一个的class*///
div~.class /*div的兄弟元素的所有class*/
7.伪元素和属性选择器
:root /*根目录*/
a:link /*没有访问的链接*/
a:visited /*访问过的链接*/
a:active /*鼠标点击的链接*/
a:hover /*鼠标悬浮的链接*/
div:not(p) /*div里除了p意外的元素*/
p:first-letter /*p里面的第一个字母*/
p:first-line /*p里面的第一行*/
p:first-child /*第一个p元素*/
p:before /*p元素之前:里面必须有content*/
p:after /*p元素之后:里面必须有content*/
p:lang(it) /*元素lang属性为it的元素*/
p:nth-child(2) /*第二个P元素odd(奇数)|even(偶数)|公式3n+1(三个一循环从第一个开始)*/
p:nth-last-child(2) /*倒数第二个P元素*/
input:valid /*有效值的input元素*/
input:invalid /*无效值的input元素*/
input:focus /*具有焦点的input元素*/
p[属性=值] /*属性值的P元素*/
p[属性~=值] /*属性包含值的P元素,必须独立单词*/
p[属性|=值] /*属性以值开头的P元素,必须是唯一单词或者-分割*/
p[属性^=值] /*属性以值开头的P元素,几个字母也行*/
p[属性$=值] /*属性以值结尾的P元素,几个字母也行*/
p~ul /*同一个父元素内,p元素后面所有的兄弟ul*/
p+ul /*同一个父元素内,p元素后第一个兄弟ul*/
p>ul /*P元素里第一级所有的ul元素*/
p,ul /*p元素和ul元素*/
8.多媒体查询
/*写法:屏幕480px像素以内显示,以外显示用min-width*/
@media screen and (max-width: 480px) {
body {
background-color: lightgreen;
}
}
/*写法:屏幕960到1199像素显示*/
@media screen and (min-width: 960px) and (max-width: 1199px) {
#page{ width: 960px; }#content,.div1{width: 650px;}#secondary{width:250px}select{max-width:200px}
}
/*写法:520到699及1151以上显示*/
@media screen and (max-width: 699px) and (min-width: 520px), (min-width: 1151px) {
ul li a {
padding-left: 30px;
background: url(email-icon.png) left center no-repeat;
}
}
**以上是初学必须掌握**
**以下不会用别说会CSS3**
1.计数器
/*写法:计数器*/
counter-reset:名字 /*创建重置一个计数器:起个名字*/
:before{
counter-increment:名字; /*使用计数器*/
content:counter(名字) /*输出计数*/
}
2.2D转换
/*写法:复合写法,这个不大常用,直接用下面单条属性就行*/
transform:matrix(0.866,0.5,-0.5,0.866,0,0);
/*说明:参数说明*/
transform:
[translate()] /*根据XY轴位移:(X数值,Y数值)*/
[rotate()] /*旋转:(角度)*/
[scale()] /*根据XY轴缩放:(X倍数,Y倍数)*/
[skew()] /*根据XY轴倾斜:(X角度,Y角度)*/
/*兼容写法*/
-ms-transform: rotate(30deg); /* IE 9 */
-webkit-transform: rotate(30deg); /* Safari and Chrome */
/*这里就是常用简单用法,对动画特效比较钟爱建议去好好看看文档*/
3.3D转换
/*写法:复合写法,这个不大常用,直接用下面单条属性就行*/
transform:matrix(0.866,0.5,-0.5,0.866,0,0);
/*说明:参数说明*/
transform:
[rotateX()] /*根据X轴旋转:(角度)*/
[rotateY()] /*根据Y轴旋转:(角度)*/
/*兼容写法*/
transform: rotateY(130deg);
-webkit-transform: rotateY(130deg); /* Safari 与 Chrome */
/*这里就是常用简单用法,对动画特效比较钟爱建议去好好看看文档*/
4.过渡
/*写法:复合写法,这个不大常用,直接用下面单条属性就行*/
transition:all 2s ease 1s| width 2s ease 1s, height 2s ease 1s, transform 2s ease 1s;
/*说明:参数说明*/
transition:
[transition-property] /*对应属性:css属性懒得挨个写直接all*/
[transition-duration] /*完成时间*/
[transition-timing-function] /*转速曲线:linear(匀速)|ease(先慢后快)|cubic-bezier(n,n,n,n)(自己定义),*/
[transition-delay] /*开始时间*/
/*兼容写法*/
-webkit-transition: width 2s; /* Safari */
5.动画
/*写法*/
/*1.起名字然后写上开始效果和结束效果*/
@keyframes myfirst{
from {background: red;}
to {background: yellow;}
/*也可以自己设置动画中间间隔*/
0% {background: red;}
25% {background: yellow;}
50% {background: blue;}
100% {background: green;}
}
/*2.调用动画效果*/
div{
animation-name: myfirst; /*效果名称*/
animation-duration: 5s; /*持续时间*/
animation-timing-function: linear; /*转速曲线:linear(匀速)|ease(先慢后快)|cubic-bezier(n,n,n,n)(自己定义),*/
animation-delay: 2s; /*开始时间*/
animation-iteration-count: infinite; /*播放次数:次数|infinite(无限次)*/
animation-direction: alternate; /*是否交替播放:默认:normal(正常)|reverse(倒放)|alternate(奇数正、偶数倒)|alternate-reverse(反之)*/
animation-play-state: running; /*指定动画是否暂停:默认:running(运行),paused(暂停)*/
}
/*兼容写法*/
@keyframes myfirst
{
from {background: red;}
to {background: yellow;}
}
@-webkit-keyframes myfirst /* Safari 与 Chrome */
{
from {background: red;}
to {background: yellow;}
}
-webkit-animation: myfirst 5s; /* Safari 与 Chrome */
6.多列显示
column /*指定元素应该被分割:列数|宽度 */
column-width /*指定列的宽度就不用上面的列数了 */
column-gap /*指定列与列之间的间隙 */
column-rule /*间隔分割线:宽度 线条 颜色,所有 column-rule-* 属性的简写 */
column-span /*指定元素要跨越多少列,可以是all整行 */
7.flex弹性布局
/*写法:1.声明模块为弹性布局:注意内容为动态生成情况下,flex可能不生效*/
display: -webkit-flex;
display: flex;
/*写法:2.其他说性说明*/
/*在父级可以设置的属性*/
flex-flow: <flex-direction> || <flex-wrap> /*复合写法*/
flex-direction /*项目排列方向设置主轴:row(列展示) | row-reverse(倒列展示) | column(行展示) | column-reverse(倒行展示)*/
flex-wrap /*是否换行:默认:nowrap(不换行) | wrap(换行) | wrap-reverse(换行倒序)*/
justify-content /*主轴上对齐方式: 默认;flex-start(开始位置) | flex-end(结束位置) | center(中间位置) | space-between(两侧对齐) | space-around(等间隔排列);*/
align-items /*辅轴对齐方式:默认flex-start(开始位置) | flex-end(结束位置) | center(中间位置) | baseline(内容对齐) | stretch(项目元素拉伸一般高);*/
align-content /*同时设置两条轴线但是有一条不好用就都不好用:默认flex-start(开始位置) | flex-end(结束位置) | center(中间位置) | space-between(四周对齐) | stretch(四轴拉伸)|space-around(等间隔排列);*/
/*在子元素可以设置的属性*/
order: /*排列:值越小越靠前排列*/
align-self /*单个项目排列:默认auto(自动) | flex-start(开始) | flex-end(结束) | center(居中) | baseline(内容对齐) | stretch(拉伸);*/
flex: none | [ <'flex-grow'> <'flex-shrink'> <'flex-basis'> ] /*复合写法:auto (1 1 auto) | none (0 0 auto)。*/
flex-grow: /*放大比例*/
flex-shrink /*缩小比例*/
flex-basis: /*所占空间:类似width*/
8.网格化布局
/*写法:1.声明模块为网格布局*/
display:grid; /*设置容器:grid(块元素网格)|inline-grid(内联网格);*/
/*写法:2.其他说性说明*/
grid-template-columns: 100px 100px 100px; /*行宽度 */
grid-template-rows: 100px 100px 100px; /*列宽度 */
/*建议写法:auto(自己决定)|repeat(3, 33.33%)(三次每次都是33.33)|repeat(auto-fill, 100px)(每个大小100,随着父级宽度排列)|fr(倍数 :后者是前者的倍数)|minmax(100px, 1fr)(最大最小值);*/
grid-gap: <grid-row-gap> <grid-column-gap> /*复合写法*/;
grid-row-gap: 20px; /*列间隔*/
grid-column-gap: 20px; /*行间隔*/
/*写法:网格各个的名字*/
grid-area: myArea;
grid-template-areas: 'myArea myArea myArea myArea myArea';
/*合并*/
grid-column: 2 / span 3;
grid-column-start: 1; /*行从第一条线开始*/
grid-column-end: 3; /*行从第三条线开始*/
grid-row-start: 1; /*列从第一条线开始*/
grid-row-end: 3; /*列从第三条线开始*/
grid-auto-flow: ; /*row(从行后列)|column(先列后行)|row dense|column dense*/
place-content: <align-content> <justify-content>/*复合写法*/
justify-content /*整个单元在容器位置 start | end | center | stretch | space-around | space-between | space-evenly;*/
align-content: /*整个单元在容器位置 start | end | center | stretch | space-around | space-between | space-evenly;*/
/*设置在单元上*/
place-items: <align-items> <justify-items>; /*复合写法*/
justify-items /*左中下:start | end | center | stretch;*/
align-items /*上中下:start | end | center | stretch;*/
/*设置在单个单元上*/
place-self: <align-self> <justify-self>;
justify-self: start | end | center | stretch;
align-self: start | end | center | stretch;
/*写法:传统12格布局*/
grid-template-columns: repeat(12, 1fr);