css与css3基础使用

shift+alt

1:padding

    padding 不会撑开盒子大小:不给他高度和宽度,他就不会撑开盒子大小

2:margin

  外边距可以让盒子水平居中,但必须满足两个条件

    1:盒子必须指定宽度(with)

    2:盒子左右的边距都设置为auto

3:行内元素,行内块元素水平居中

  给他们的父元素添加 text-align:center

4:外边距合并

  使用margin定义块级元素的垂直外边距时,可能出现外边距合并

  主要有两种情况

    1:相邻块级元素垂直外边距的合并

      当上下相邻的两个块级元素(星弟关系)相遇时,

      如果上面元素有下边距,下面元素有上边距,

      则他们之间的垂直距离不是margin-botom+matgin-top之和,

      取两者之间较大者吗,这种现象被称为相邻会计元素垂直外边距合并

      解决方案:尽量只给一个盒子添加margin值

    2:嵌套块级元素垂直外边距的塌陷

      对于两个嵌套关系(父子关系)的块级元素,父元素上有外边距,子元素也有外边距,此时父元素会塌陷较大的外边距值

      解决方案

      1:可以父元素定义上边框

      2:可以为父元素定义内边距

      3:可以为父元素添加overflow:hidden

5:清除内外边距

  * {

      margin:0;

      padding:0;

  }

6:opacity:这个属性可以设置不透明度,值从0.0(完全透明)到1(不透明),默认1

7:box-shadow  盒子阴影

    语法:box-shadow:h-shadow v-shadow blur spread color inset

    h-shadow  必需,水平阴影位置,允许负值

    v-shadow  必需,垂直阴影位置,允许负值

    blur      可选模距离(虚的还是湿的)

    spread    可选阴影尺寸

    color      可选阴影颜色

    inset      可选,将外部阴影(outset)改为内部阴影

    width() = a;

innerWidth() = a+padding;

outerWidth() = a+padding+border;

outerWidth(true) = a+padding+border+margin;

8:定位

  1:相对定位:相对定位是元素在移动位置的时候,相对于他原来位置来说

  语法:选择器 {position:relative}

  1.1:保留原来的位置,不脱标,他的最典型的应用就是给绝对定位当爹的

  2:绝对定位

      选择器 {position:absolute}

      2.1:相对于父元素来说,如果没有祖先元素,或者祖先元素没有定位,则以浏览器为标准(Document)

      2.2:如果祖先元素有定位(相对,绝对,固定),则以最近一级的定位元素为参考点移动位置

      2.3:绝对定位脱标

      2.4:固定定位随版心

      2.4.1:让固定定位的盒子left:50%,走到浏览器可视区(也可以看做版心)的一半位置

      2.4.2:让固定定位盒子margin-left版心宽度的一半距离,躲走版心宽度一般的位置

    3:粘性定位

    选择器 {position:sticky;

          top:10px

          }

        3.1:以浏览器的可视窗口为参照移动元素

        3.2:粘性定位占有原先位置

        3.3:必须添加top,left,right,bottom其中一个才有效

        3.4:行内元素添加绝对定位或者固定定位,可以直接设置高度和宽度

        3.5:块级元素添加绝对定位,或者固定定位,如果不给宽度或者高度,默认大小是内容大小·1

9:显示隐藏

    visibility  可见性

      visibility:visible  元素可视

      visibility:hidden  元素隐藏

      visibility 隐藏元素后,继续占有原来的位置 

    overflow  溢出

      overflow:auto    在需要的时候添加滚动条

      overflow:hidden  溢出部分隐藏

      overflow:scroll  总是添加滚动条

10:HTML5的新特性

    1.1:html5新增的语义化标签

      <header>    :头部标签

      <nav>      :导航标签

      <article>  :内容标签

      <section>  :定义文档的某个区域

      <aside>    :侧边栏标签

      <footer>    :尾部标签

  1.2:  多媒体标签

      音频:<auto>

      视频:<vido>

      <vido>  语法

      <vido src = "文件地址" controls = "controls"></vido>


      <video>常见属性

          autoplay  autoplay        视频自动播放(谷歌浏览器需要议案家muted来解决自动播放)

          controls  controls        显示播放控件

          width    plxels(像素)    设置播放器宽度

          height    plxels(像素)      高度

          loop      loop              循环播放

                      auto(预先加载)

          preload    none(不应加载视频) 规定是否预加载视频,有qutoplay就·忽略该视频

        、src        url              地址

          poster    imgurl            加载等待画面图片

          muted      muted            静音播放



      <vido width="320" height = "240" controls>

            <source  src = "文件名.mp4" type = "video/mp4">

              <source  src = "文件名.ogg" type = "video/ogg">

              您的浏览器不支持video标签

      </video>

11:html5 新增表单属性

  required        required        内容必须为空

  placholder      提示文本          表单提示信息

  autofocus        autofocus        自动聚焦

  autocompete      off/on          当用户在字段开始键入时,浏览器基于之前键入过的值,应显示出在字段中填写的选项

                                    默认已经打开,autocomplete = "on" 关闭autocomplete

12移动布局:

  meta视口标签

  <meta name = "viewport" content = "width=device-width, user-scalable=no,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0">

  属性

  width              宽度设置的是viewport宽度,可以设置device-width特殊值

  initial-scale      初始缩放比,大于0的数字

  maximum-scale      最大缩放比,大于0的数字

  minimum-scale      最小缩放比,大于0的数字

  user-scalable      用户是否可以缩放,yse或no(1或0)

css3 属性选择器

    E[att]            选择具有att属性的E元素

    E[att="val"]      选择具有att属性且值等于val的E元素

    E[att^="val"]      选择具有att属性且值以val开头的E元素

    E[att$="val"]      选择具有att属性的且值以val结尾E元素

    E[att*="val"]      选择具有att属性且值含有的E元素

  结构伪类选择器-选择地n个元素

  E:first-child      匹配父元素中的第一个子元素E

  E:last-child        匹配父元素中最后一个E元素

  E:nth-child(n)      匹配父元素中第n个子元素

  E:first-of-type      指定类型的第一个

  E:last-of-type        指定类型的最后一个

  E:nth-of-type      指定类型E的第n个

  区别:nth-child:会把所有的盒子都排序,执行的时候先看 :nth-child(1)之后回去看店面的div

        nth-of-type: 会把指定的盒子排列序号,执行的时候先看  div指定的元素 之后回去看 :nth-of-type(1)

  nth-child:对父元素所有的孩子进行排序选择,先找到第n个孩子,然后再去看是否匹配

    nth-of-type:对父元素指定的子元素进行排序选择,先去匹配E再根据E找第N个孩子

  nth-child(n):

    1:n可以是数字,关键字,和公式

    2:n如果是数字,就是选择第n个子元素,里面的数字是从1开始

    3:n可以是关键字:even偶数,odd奇数

    4:n可以是公式:常见的公式如下(如果n是公式,则从0开始计算,但是第00各元素或者超出了元素的个数就会被忽略)

        2n      偶数

        2n+1    奇数

        5n      5,10,15....

        n+5    从第5个开始(包含第五个)到最后

        -n+5    前5个(包含第5个).... 

14:微元素选择器

  伪元素选择器可以帮助我们利用css创建新标签元素,而不是HTML标签,从而简化HTM结构


    ::before      在元素内部的前面插入内容

    ::after        在元素内部的后面插入内容

  语法:element::before{}

        1:before和after必须有content属性

        2:before在父元素前面创建元素,after在父元素后面插入

        3:伪元素选择器和标签选择器一样,权重为1

        4:行内元素,不能设置宽高

        div::before{

          content:'我'

        }

15:字体图标

    1:轻量级:一个字体图标比一系列图像要小,一旦字体加载了,图标就会马上渲染出来,减少服务器请求

    2:灵活性:本质是文字,可以随意改变颜色,产生阴影,透明效果,旋转

    3:兼容性:几乎支持所有的浏览器

    4:不能替代精灵图技术

16:"三角的做法

  1:设置一个盒子,宽和高都设置成0

  2:四条边加上边框,例如做一个向下的三角,那么其余三边背景颜色设置成透明,然后单独给border-top-color设置颜色

17:vertical-align属性

    css的vertical-align属性经常用于设置图片活着1表单(行内块)和文字垂直对齐

    官方解释:用于设置一个元素的垂直对齐方式,但是只针对行内元素,和行内块元素

    语法:vertical-align:baseline|top|middle|bottom

    baseline    默认,元素放在父元素的基线上

    top          把元素的顶端与行内最高元素的顶端对齐

    middle      把此元素放置在父元素的中部

    bottom      把元素的顶端与行中最低的元素的顶端对齐

18:单行文本益处,省略号显示

  1:先强制一行内显示文本

    white-space:nowrap;(默认normal自动换行)

  2:超出部分隐藏

      overflow:hidden


  3:文字用省略号代替超出部分

    text-overflow:ellipsis

19:多行文字益处,省略号显示


  1: overflow:hidden;

  2:text-overflow:ellipsis

  3:弹性伸缩盒子模型显示

    display:-webkit-box;

  4:限制在一个块元素显示的文本的行数

  -webkit-line-clamp:2

  5:设置或检索伸缩盒子对象的子元素的排列方式

  -webkit-box-orient:vertical;

1:css3盒子模型

css3中可以通过box-sizing来指定盒模型,有两个值:1:context-box,border-box,这样我们计算盒子大小的方式就发生了改变

可以·分为两种情况

box-sizing:content-box  盒子大小为 width + padding + border(以前默认的)

box-sizing:border-box  盒子大小为width

如果盒子模型我们改变为box-sizing:border-box,那么padding和border就不会撑大盒子(前提padding和border不会超过widyh宽度)

以后可以直接设置为*{

                    box-sizing:border-box

                  }

2:css3滤镜filter

  filter css 属性将模糊或颜色偏移等图形效果应用于元素

  filter:函数()  例如: filter:blur(5px);blur模糊处理,数值越大越模糊

3:css3 calc函数

  calc()函数让你在声明css属性值时执行一些计算

  width:calc(100% - 80px);

  括号里可以使用+-*/来进行计算

4:css3过度

  transiion:要过度的属性 花费的时间  运动曲线  何时开始

      注意 一般与:hover搭配

  1:属性:就是想要变化的css属性,宽松度高度,背景颜色 内外边距都可以。如果想要所有的属性变化过度,写一个all就可以

  2:花费时间:单位是秒(必须写单位) 比如0.5s

  3:运动曲线:默认ease (可以省略)

  4:何时开始:单位是秒(必须写单位)可以设置延迟触发时间 默认是0s(可以省略)

  5:谁做过度给谁加

5:2D转换

  5.1 2D转换之移动 translate

      2D移动是2d转换里面的一种移动,可以改变元素在页面中的位置,类似定位

  5.1:语法

      transform:translate(x,y);或者分开写

      transform:translateX(n);

      transform:translateY(n);


    5.1:重点

      定义2D转换中的移动,沿着X和Y轴移动

      translate最大优点不会影响其他元素的位置

      translate中的百分比单位是相对于自身元素的translate:(50%,50%)

      对行内标签没有效果



      5.2 2D转换之旋转 rotate

          2d旋转指的是让元素在2位平面内瞬时镇旋转或者逆时针旋转

    5.2:语法

          translate:rotate(度数)

      rotate里面跟着是度数,单位是deg比如rotate(45deg)

      角度为正时,顺时针,负时为逆时针

      默认旋转的中心点是元素的中心点


      5.2:2D转换设置中心点 transform-origin

          我们可以设置元素的中心点

      5.2:语法

          transform-origin:x y

          注意后面的参数x y用空格隔开

          xy默认的转换中心点是元素的中心点(50% 50%)

          还可以给想x y 设置像素或者方位名词(top bottom left right center)

      5.3:2D转换之缩放

          语法 transform:scale(x,y);

          注意:1:xy用逗号隔开

                2:transform:scale(1,1)放大一倍,相当于没有缩放

                3:transform:scale(2,2),宽高放大2倍

                4:transform:scale(2)相当于(2,2)

                5:transform:Scale(0.5,0.5):缩小

                6:scale缩放最大优势:可以设置转换中心点缩放,默认以中心点缩放,而且不影响其他盒子

      5.4:2D转换综合写法

          1:同时使用多个转换,其格式为:transform:translate() rotate() scale()

          2:顺序会影响转换效果,先旋转会改变坐标轴方向

          3:同时有位移和其他全属性,把位移放到最前面

      6:动画

        1:0%动画开始,100%动画完成

        2:在@keyframes中规定某项css样式,就能创建当前样式逐渐改为新样式动画效果

        3:动画可以改变任意多的样式和次数

        用百分比规定变化时间,也可以用from to相当于0% 100%

        6.2:动画常用属性

        属性

        @keyframes        规定动画

        animation          所有动画的简写属性,除了animation-play-stste属性

        animation-name    规定东华1名称(必须)

        animation-duration 规定东华完成一个周期所花费的时间(必须)

        animation-timing-function  动画速度曲线,默认ease

        animation-delay    动画何时  开始默认0

        animation-iteration-count  动画播次数 默认1,还有infinite

        animation-direction 动画下一周期逆向播放,默认是normal,alternate逆向播放

        animation-play-state 规定动画是否正在运行或暂停·,默认running 还有pasue

        animation-fill-mode  规定动画结束后状态,保持forwards,回到起点backewards

        动画简写属性

        animation:动画名称 持续时间 运动曲线 何时开始 播放次数 是否反方向 动画起始或者结束状态

      6:3D转换

        3D转换我们主要学习3D位移和3D转换

        主要知识点

        1:3D位移:translate3d(x,y,z)

        2:3D旋转:rotate3d(x,y,z)

        3:透视:perspective

        4:3D呈现:transform-style

        6.1:3D位移

        语法:translform:translateX(100px):仅仅在X轴上移动

        translform:translateY(100px):仅仅在Y轴上移动

        translform:translateZ(100px):仅仅在Z轴上移动(注意:translateZ一般用pxd单位)

        transform:translate3d(x,y,z):xyz分别指要移动轴方向的距离


      6.2:透视 perspective

          1:如果需要3d效果需要3d

          2:透视写在被观察元素的父盒子上

          d:就是视距,

          z:z轴,z轴越大,我们看到的物体越大(注意:透视越小,就是我们距离屏幕的距离越小,物体越大)

        6.3:3D旋转

          transform:rotateX(45deg)沿着X轴

          transform:rotateY(45deg)沿着Y轴

          transform:rotateZ(45deg)沿着Z轴

          transform:rotate3d(x,y,z,45deg)沿着自定义轴用0和1表示

        6.4:3D呈现transform-style

            控制子元素是否开启三维立体环境

            transform-style:flat 子元素不开启3D立体空间默认

            transform-style:preserve-3d;子元素开启立体空间

            代码,但影响的是子盒子



  移动端开发

  1:流式布局

  二配图:

    因为手机像素与电脑像素不一样,同样一张图片,放到手机上会模糊

,这时就会用到二倍图

例如:我们需要一个div,div里面需要一张50*50的图片,如果我们直接放一张50*50的图片

那么在手机上就会模糊,他会给你放大二倍,这时,我们直接放一张100*100的图片,然后再把这张图片手动width和height缩小2倍,这时再展示

2:flex布局

  一下6个属性是父元素设置的

  1:flex-direction:设置主轴方向

  2:justify-content:设置主轴上子元素的排列方式

  3:flex-wrap:设置子元素是否换行

  4:align-content:设置侧周上子元素排列方式(多行)

  5:align-items:设置侧周上子元素排列方式(单行)

  6:flex-flow:复合属性,相当于同时设置flex-direction和flex-wrap

  2.1:flex-direction决定主轴方向

      属性                        说明

      row                      默认值从左到右

      row-reverse              从右到左

      column                  从上到下

      column-reverse          从下到上

  2.2:justify-content 设置主轴上子元素的排列方式

        属性              说明

      flex-start        默认值从头部开始,如果主轴是x轴,则从左到右显示

      flex-end        从尾部开始排列

      center          在主轴居中对齐(如果x轴是主轴,则水平居中)

      space-around    平分剩余空间

      space-between    先两边贴边,再平分剩余空间

  2.3:flex-wrap  设置子元素是否换行

      默认情况下,项目都在一条线上,默认不换行,如果装不开,会缩小子元素的宽度,放到子元素上


      属性      说明

      nowrap  默认值,不换行

      wrap    换行

  2.4:align-items 设置侧周上子元素排列方式(单行)

        属性值              说明

        flex-start        从上到下

        flex-end          从下到上

        center          加在一起居中(垂直居中)

        strech          拉伸

  2.5:align-content  设置侧轴上子元素的排列方式(多行)


      属性值                    说明

      flex-start              默认值在侧轴的头部开始排列

      flex-end                在侧轴的尾部开始排列

      center                  在侧轴的中间开始排列

      space-around            子项在侧轴平分剩余空间

      space-between          子项在侧轴先分布两头,再平分剩余空间

      strech                  设置子项元素高度平分父元素高度


  2.6:flex 布局子项常见属性

      flex              子项目占得分数

      align-self        控制子项目在自己的侧轴的排列方式

      order            属性定义子项目的排列顺序(前后顺序)

3:rem布局

  1:em与rem区别

    em是相对于父元素的字体大小来说,rem是相对于html字体大小来说

  2:媒体查询

      媒体查询(Media Query)

      1:使用@media查询,可以针对不同媒体类型定义不同样式

      2:@media可以针对不同屏幕尺寸设置不同样式

      3:当你重置浏览器大小的过程,页面也会根据浏览器的宽度和高度重新渲染页面


      语法规范

      @media mediatype and|not|only(media feature){

        css-Code;

      }

      1:用@media开头 注意@符号

      2:mediatype 媒体类型

      3:关键字 and not only

      4:media feature 媒体特性 必须要有小括号


        mediatype查询类型

        all        用于所有设备

        print      用于打印机和打印预览

        scree      用于电脑屏幕,手机,平板电脑


        关键字

        and可以将多个媒体特性连接到一起,相当于且

        not排除某个媒体类型,相当于非,可以省略

        only指定某个特定的媒体类型,可以省略

        媒体特性

        width              定义输出设备中页面可见区域的宽度

        min-width          定义输出设备中页面最小的可见区域宽度

        max-width          定义输出设备中页面最大可见区域宽度

        为了防止混乱媒体查询一般按照从小到大或者从大到小的顺序的来,一般我们我们喜欢从小到大来写,这样代码更简洁

        引入资源

        当样式比较繁多时,我们可以针对不同的媒体使用不同的stylesheets(样式表)

        原理,就是直接在link中判断设备尺寸,然后引用不用的css文件

        语法规范

        <link rel = "stylesheet"  media = "mediatype and|not|only (media feature)" href = "mystylesheet.css">

        例如

        <link rel = "stylesheet" href = "style320.css" media="screen and (min-width:320px)">

        <link rel = "stylesheet" href = "style640.css" media="screen and (min-width:640px)">


4:Less基础

      1: Lsee变量

      语法基础

      @变量名:值

      变量名规范

      必须以@为前缀

      不能包含特殊符号

      不能以数字开头

      大小写敏感

      //例如定义一个粉色变量

      @color:pink;

      body{

        bgc:@color;

      }

      2:Less编译

        需要把less编译成css文件,安装 Easy less

        1:嵌套

            .head{

              width:200px;

              height:200px;

              a{

                  color:red;

              }

            }

        2:如果有伪类,交集选择器,伪元素选择器,我们内层选择器前加&

                  .head{

              width:200px;

              height:200px;

              a{

                  color:red;

                  &:hover{

                    color:blue;

                  }

              }

            }

        3:less计算


          1:乘号(*)除 (/)

          2:运算符中间左右有个空格隔开1px + 5

          3:对于两个不同单位的值之间的运算,运算符结果的值取第一个值得单位

          4:如果两个值之间只有一个单位,则运算符结果就取该单位

        4:remm适配方案

          1:动态设置html-size大小

            1:假设设计稿是750px

            2:假设我们的屏幕划分为15等分(划分标准不同,可以是20等分,也可能是10等份)

            3:每一份作为html字体大小,这里就是50px

            4:那么在320px设备的时候,字体大小为320/15就是21.33px

            5:用我们页面元素的大小除以不同的html字体大小就会发现他们比例还是相同的

            6:比如我们以750为标准设计稿

            7:一个100*100页面元素在750屏幕下,就是100/50转换为是2rem * 2rem比例是1:1

            8:320屏幕下,html自提大小为21.33 则2rem就是42.66px 此时宽和高都是42.66  比例还是1:1

            9:但是已经能实现不同屏幕下页面元素盒子等比例缩放效果

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容