欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CSS3知识笔记

程序员文章站 2022-05-11 09:06:39
...

CSS3知识

  • 选择器
    • a[class^="abc"]{xxx;}:以“abc”开头的任何字符串类名;
    • a[class$="abc"]{xxx;}:以“abc”结尾的任何字符串类名;
    • a[class*="abc"]{xxx;}:以包含"abc"的任何字符串类名;
    • [attribute]{xxxx}:代表包含attribute属性的元素设置样式;
    • [attribute=value]{xxx}:代表属性名为attribute,属性值为value的元素设置此样式;
  • 相邻兄弟选择器
    • 符号为“+”;
    • 适用场景:需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器。
    • 代码:input[type="text"]+span{xxx:xxx}
  • 自定义字体引入font-face
     @font-face {
         font-family: 'YourWebFontName';
         src: url('YourWebFontName.eot'); /* IE9 Compat Modes */
         src: url('YourWebFontName.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
                  url('YourWebFontName.woff') format('woff'), /* Modern Browsers */
                  url('YourWebFontName.ttf')  format('truetype'), /* Safari, Android, iOS */
                  url('YourWebFontName.svg#YourWebFontName') format('svg'); /* Legacy iOS */
       }
    
  • CSS3变形transform
    • transform:rotate():旋转;
    • transform:scale():缩放;
    • transform: skew():扭曲;
    • transform: translate():位移;
    • transform-origin:原点设置;
    • 注意:变形均对块状元素和内联块状元素有效,内联元素无效;
  • CSS3动画之过渡transition
    • transition-property: 过渡属性;
    • transition-duration: 过渡总时间;
    • transition-timing-function:过渡函数;
    • transition-delay:过渡延迟时间;
    • 过渡的设置步骤:
      1)设置过渡属性的初始值;
      2)设置改变属性值的事件;
      3)事件触发后设置的改变后新的值;
    • 注意:哪个元素设置过渡功效,就将transition添加到此元素中,与初始值设置在一起;
  • CSS3动画之运动animation
    • keyframes:关键帧,用于设置运动动画名称;
     @keyframes  around{
      0%{
         transform: translateX(0);
       }
      25%{
         transform: translate(180px,0);
       }
      50%{
         transform: translate(180px,180px);
       }
      75%{
         transform: translate(0,180px);
       }
      100%{
         transform: translateY(0);
       }
     }
    
    • animation-name:关键帧设置的运动名称;
    • animation-duration:运动总时间;
    • animation-timing-function:运动函数;在关键帧中设置的每个阶段的运动形式;
    • animation-delay:运动延迟时间;
    • animation-iteration-count: infinite|<number>:infinite(无限次);
    • animation-direction: normal/alternate(轮流);其中:alternate指的是,奇数次从0%-100%运动,偶数次从100%-0%运动;
    • animation-play-state: running(播放)/paused(暂停);暂停的时候停在原地,在播放时从停下的位置继续运动;
    • animation-fill-mode:none/forwards/backwards/both;
      • 作用:定义动画开始之前和动画结束之后的操作;
      • none:默认值;指的是:
        1)动画在开始时,从初始位置迅速到达第一帧的位置,即0%设置的位置;然后开始;需注意的是,在延迟时间之后发生,即延迟时间过后,迅速到达第一帧的位置,然后开始运动;
        2)动画结束后,迅速从最后一帧位置(即100%设置出),回到初始位置;
      • forwards:指动画开始时,从初始位置迅速到达第一帧的位置,然后开始经过延迟时间,然后开始运动;区别在于,在延迟时间之前就到达第一帧的位置;动画结束后同none;
      • backwards:指动画结束后,停留在最后一帧的位置;不会到原始位置;动画开始前同none;
      • both:指同时具有forwards和backwards两个效果;
  • CSS3多列布局-Columns
    • columns:<column-width>||<column-count>;简写:column:200px 5
      • column-width:主要用来定义多列中每列的宽度;
      • column-count:主要用来定义多列中的列数;
    • column-gap:normal/length:用来设置列与列之间的间距;
    • column-rule:<column-rule-width>|<column-rule-style>|<column-rule-color>:用来定义列与列之间的边框宽度、边框样式和边框颜色;类似于border;
    • column-span:none|all:用来定义一个分列元素中的子元素能跨列多少;
  • CSS3盒子模型
    • box-sizing:content-box|border-box|inherit
      • content-box:默认值;即设置的width/height设置的是内部内容宽高;
      • border-box:设置的width/height为盒子的总宽高,即内容的宽高+padding+border;即元素的可视尺寸;
      • inherit:使元素继承父元素的盒模型;
  • CSS3伸缩布局Flexbox布局
    • 定义:具有很大的功能,减少使用浮动或固定宽度+百分比来进行布局;
    • 创建一个flex容器,为此元素设置display属性值为flex;需注意的是在Safari浏览器中,需要添加前缀-webkit;
    • flex-direction:row/column/column-reverse/row-reverse;默认值row,用来定义沿主轴和侧轴方向排列;
    • justify-content:用来表示可伸缩项目在主轴方向上的对齐方式;取值:flex-start/flex-end/space-between,space-around;
    • align-items:用来表示可伸缩项目在侧轴方向上的对齐方式;取值:flex-start/flex-end/center/baseline/stretch;
  • 媒体查询 Media Queries
    • 使用方法:@media 媒体类型 and (媒体特性){ 选择器:{xxx:xxx} }
    • 注:如果没有明确指定媒体类型,那么默认为all;
    • 媒体特性取值:
      • max-width:指媒体类型小于或等于指定的宽度时,样式生效;
        • 代码:
         @media screen and (max-width) {
               .ads{
                 display: none;
          } 
        
      • min-width:指媒体类型大于或等于指定的宽度时,样式生效;
      • 多个特性同时使用,通过and将多个媒体特性连接起来;
        • 屏幕在600px-900px之间,使body背景色为红色;
         @media screen (min-width: 600px) and (max-width: 900px) {
              body{ 
                background-color: red;
              }    
           }
        
      • 设备屏幕的输出宽度Device Width
        • 定义:在智能设备上,例如iPhone,iPad等,可以根据屏幕设备的尺寸来设置相应的样式,同样对于屏幕设备同样可以使用"max/min"对应参数,如min-device-widthmax-device-width
        • 代码:指的是"iphone.css"样式适用于最大设备宽度为480px,比如说在iphone设备上显示,"max-device-width"指的是设备的实际分辨率,也就是指可视面积分辨率;
         <link rel="stylesheet" media="screen and (max-device-width:480px)" href="iphone.css" />
        
      • not关键词
        • 定义:用来排除某种指定的媒体类型;
        • 代码:表示除了打印设备和设备宽度小于等于1200px下的所有设置中生效;
         @media not print and (max-width: 1200px) {
            body{
                background-color: red;
             }
          }
        
      • only关键词:
        • 定义:用来排除不支持媒体查询的浏览器;很多时候用来对不支持Media Query但支持Media Type的设备隐藏样式表的;
        • 解读:1)支持媒体特性的设备,正常调用样式,此时就当only不存在;2)不支持媒体特性但又支持媒体类型的设备,不会读取样式;3)不支持Media Queries的浏览器,不论是否支持only,样式不会被采用;
         <link rel="stylesheet" media="only screen and (max-device-width:240px)" href="adn.css" />
        
      • 使用多条语句来将同一样式应用到不同的媒体类型和媒体特性中;
        • 代码:代表style.css样式应用到宽度小于或等于500px的手持设备上,或被用于屏幕宽度大于等于900px的设备上;
         <link rel="stylesheet" type="text/css" href="style.css" media="handheld and (max-width: 500px), screen and (min-width: 900px)" />
        
    • 兼容性:除了IE6-8浏览器不支持,其余浏览器都支持,无需添加前缀;
  • CSS3外轮廓属性
    • 特点:
      • 在页面中呈现的效果和边框border呈现的效果极其相似;
      • 与边框完全不同,外轮廓线不占据网页布局空间;
      • 外轮廓的内边缘紧贴边框的外边缘;
      • 只有元素获取到焦点或者被**时呈现;
    • 语法:outline: [outline-color] || [outline-style] || [outline-width] || [outline-offset] || inherit
    • 解读:
      • outline-color,outline-style,outline-width三个属性与border属性相同;
      • outline-offset:定义轮廓边框的偏移位置的数值;
        • 正值:表示轮廓边框向外偏离的像素值;
        • 负值:表示轮廓边框向内偏离的像素值;
        • 0:不偏移,指轮廓内边缘与边框外边缘重合;
  • CSS生成内容content属性
    • 伪类::afterbefore;伪元素:::before::after
    • content配合伪类生成内容,但这个属性对于img和input元素不起作用;
    • 语法:content: none || attr || url || string
      • attr("属性名"):插入标签身上属性名的属性值;
      • url():使用指定的绝对或相对地址插入一个外部资源;
      • string:字符串,可以是空字符串,常用于清除浮动;
    • 实例:通过伪类在a便签后,插入一段内容,内容值为a便签身上的title的属性值;
      • 代码:
       <!DOCTYPE html>
       <html lang="en">
       <head>
           <meta charset="UTF-8">
           <title>content</title>
           <style>
               a{
                   font-size: 24px;
                   color: red;
                   text-decoration: none;
               }
               a:after{
                   content: attr(title);
                   padding-left: 100px;
               }
           </style>
       </head>
       <body>
       <a href="#" title="这是插入的内容值">链接</a>
       </body>
       </html>
      
  • css3学习链接: css3入门教程