CSS基础

CSS样式引入&优先级

1.样式表的三种引入方式
      ——(1)内部样式表     写在html文件内部的head标签中,在style中书写css样式   <style></style>
      ——(2)外部样式表     写在css文件中,通过link标签和页面建立关系     <link rel="stylesheet" >
      ——(3)内联样式/行内样式    写在标签内部,通过标签的style属性来写css,css声明写在style属性的属性值内 <p style="color: aqua;">123456</p>
    2.三种样式表生效优先级
      ——谁距离标签近,谁优先生效,后写的会覆盖先写的,所以行内样式优先生效,内部样式和外部样式表谁后写谁优先生效

常见CSS选择器

1.标签选择器  案例可看课件7
      ——作用:选中某个标签类型
      ——可以直接在选择符的位置写上标签名,作为选择器,如:p{}
    2.id选择器   案例可看课件8
      ——作用:选中页面中的某一个标签
      ——(1)需要给标签起一个id名
      ——(2)使用#id{}去修饰    例如:  <div ></div>    #xxx{}
      ——(3)注意:一个页面中不能够出现两个相同的id名,id名具有唯一性。
      ——(4)命名规则:
          ————以英文开头,由数字、大小写字母下划线组成,不能出现中文、空格、特殊符号。
          ————不能出现关键词(标签名和属性名)
    3.群组选择器   案例可看课件9
      ——作用:选中页面中的某几种标签
      ——(1)书写形式:   选择符1,选择符2,选择符3{ 声明  }
      ——(2)注意:选择符和选择器之间需要用,号间隔开
    4.class选择器/类选择器    .xxx{属性:属性值;}
      ——作用:选中页面中的某一类标签
      ——(1)先给标签定义一个class名,然后在css中 .xxx{属性:属性值;} 来进行修饰。
      ——(2)命名规则:
        ————以英文开头,由数字、大小写字母下划线组成,不能出现中文、空格、特殊符号。
        ————不能出现关键词(标签名和属性名)
    5.通配符选择器   *{属性:属性值;}
      ——作用:选中页面中所有的元素标签
    6.包含选择器 选择器1 选择器2{属性:属性值;}
      ——作用:选中选择器1下所有层级中的选择器2
      ——注意事项 选择器和选择器之间用空格隔开
    7.子选择器   选择器1>选择器2{属性:属性值;}
      ——作用:仅选中选择器1下一层的选择器2
      ——注意事项:选择器和选择器之间用>号隔开
    8.伪类选择器  a:hover{属性:属性值;}
      ——作用:修饰元素处于某种状态下的样式
      ——4中伪类选择器
        a:link{}     a标签初始状态
        a:visited{}  a标签访问后的状态
        a:hover{}    鼠标悬停时的状态
        a:active{}   a标签激活时的状态
      ——注意事项:
        (1)当4个伪类选择器联合使用时,
        应按照link-visited-hover-active的顺序使用,否则某些状态会失效
        (2):hover可以用于其他一些标签
9..伪元素选择器
(1)在xxx之前,定义元素前边添加内容样式,content不可省略
书写形式
xxx::before{
content:"";
}
(2)在xxx之后,定义元素后边添加的内容和样式,content不可省略
书写形式
xxx::after{
content:"";
}
(3)定义xxx中的第一个字符的样式
书写形式
xxx::first-letter{
样式;
}
(4)定义xxx中第一行的样式
xxx::first-line{
样式;
}
伪类
:link 超链接初始状态
:visited 超链接访问后的状态
:hover 元素划过时的状态
:active 超链接激活时的状态
伪类和伪元素之间的区别:
(1)伪类为单冒号,伪元素为双冒号;
(2)伪类是给存在的元素处于某种状态时,添加修饰;
伪元素是选中或添加不存在的元素节点,添加修饰;

10.属性选择器
      ——[属性]    选中所有标签中,拥有属性名为xx的元素
      ——E[属性]   选中E标签中,拥有属性名为xx的元素
      ——[属性D='属性值F']  选中所有标签中,属性名为D并且属性值为F的元素(仅为F)
      ——E[属性D='属性值F']  选中所有标签中,属性名为D并且属性值为F的元素(仅为F)
      ——[属性D~="属性值F"]  选中所有标签中,属性名为D并且属性值中包含属性值F的元素
      ——E[属性D~="属性值F"]  选中E标签中,属性名为D并且属性值中包含属性值F的元素
      作用:多用于表单中
    11.属性选择器——补充
      ——E[属性D^="F属性值"]   选中E标签中,属性名为D并且属性值中以F开头的元素
      ——E[属性D$="属性值F"]   选中E标签中,属性名为D并且属性值中以F结尾的元素
      ——E[属性D*="属性值F"]   选中E标签中,属性名为D并且属性值中包含关键词F的元素
      ——E[属性D|="属性值F"]   选中E标签中,属性名为D并且属性值中为F或者F-XXX的元素
    12.结构伪类
      ——E F:first-child   选中E下边的第一个子元素,如果此元素是F,则被选中,否则无效
      ——E F:last-child   选中E下边的最后一个子元素,如果此元素是F,则被选中,否则无效
      ——E F:nth-child()   选中E下边的符合某个规律的元素,如果此元素是F,则被选中,否则无效
          具体规律
              1.数字    选中E下边具体第几个F
              2.选中E下边第奇数个F  
                  2n+1===odd  
              3.选中E下边第偶数个F  
                  2n===even
              4.选中E下边倍数的F
                   Xn
      ——E F:only-child    选中E元素下,有且仅有一个的F元素
    13.根元素选择器
      html:root   匹配文档的根元素,但是在html中,根元素只有一个,那就是html
    14.空元素选择器
      E:empty   匹配内容为空的E元素,有空格和换行都不算为空
   15.目标伪类选择器
      E:target   需要搭配锚点使用,当锚点元素获取焦点时,被选中
    16.UI状态伪类选择器(多用于表单)
      E:enabled   选中E标签中的可用元素
      E:disabled  选中E标签中的不可用元素
      E:checked   选中E标签中处于选中状态的元素
    17.UI状态伪元素选择器
      E::selection  选中被用户选中或处于高亮显示的内容区域
    18.用户行为选择器
      E:focus   当元素E获取焦点的时候,被选中
    19.否定伪类选择器
      E:not(F)    选中E中除了F之外的所有元素

css文本属性

(1)font-size   文字字体大小
        ——单位 px  em  rem(多用于移动端)
        ——默认字体大小为16px
        ——浏览器支持的最小字体大小为12px
        补充:1em=父元素字体大小
      (2)font-family   文本字体
        ——属性值可以跟三种字体,每种字体之间用,号间隔开,
        当计算机支持第一种字体显示第一种,若没有第一个字体,显示第二个。
        依次进行匹配,如果都没有,显示计算机支持的默认字体(windows是微软雅黑)
        ——若字体名称时中文,需要加引号
        ——若字体名称是有多个单词组成,也需要加引号
      (3)font-style    文本风格(是否倾斜)
        ——oblique和italic都可以倾斜,但是italic是斜体,部分字体不支持,
        所以我们一般使用oblique来进行倾斜
        ——normal  不倾斜(默认值)
      (4)font-weight   文本粗细
        ——取值范围是数字时   取值范围100-900,
            ——100    细体
            ——400    默认值
            ——700    加粗
            ——900    极粗
        ——取值还可以是单词  
            ——normal 常规(默认值)
            ——bold   加粗
            ——bolder 极粗
      (5)color    字体颜色
        ——计算机中的三基色是红绿蓝
        ——色值为颜色单词,例如red,green,blue
        ——色值为16进制,取值范围为0-9A-F ,例如#ff0066;
        ——色值为rgb(红色色域,绿色色域,蓝色色域),每个色域的取值范围 0-255,例如rgb(255,255,0);
        ——色值为rgba(红色色域,绿色色域,蓝色色域,透明度)每个色域的取值范围 0-255 ,透明度的取值范围为0-1,例如rgb(255,0,0,1)
      (6)text-align  文本对齐方式
        ——left      左对齐
        ——right     右对齐
        ——center    居中
        ——justify   两端对齐,多用于大段文本,对文本的最后一行无效
      (7)line-height  文本行高
        ——当文本为多行文字时,可以用来规定每行文字所占据的高度
        ——当文本是当行文本时,可以用其进行垂直居中
          单行文本的几种情况:  
          ——当行高等于元素的高时,文字居中显示
          ——当行高小于元素的高时,文字中间偏上显示
          ——当行高大于元素高时,文字中间偏下显示
      (8)text-indent   首行缩进
          ——只对文本的第一行生效
          ——值可以为负值
      (9)text-decoration  文本修饰
          —— none   取消文本修饰(用的最多,多用于取消a标签默认样式)
          —— underline    添加下划线
          —— overline     添加上划线
          —— line—through 添加删除线
(10)自定义字体
      案例:
      @font-face{
        font-family:"12138";
        src: url(../images/ARDECODE.ttf);
      }
      p{
        font-family: '12138';
      }
给字体起个名字,并引入路径。然后这个字体就创建完了,接下来在页面中就可以使用你定义的这个字体名称了。

列表属性

list-style-xx (但是现在我们基本不适用此属性来书写li前边的小图标)
          ——list-style:none;     取消li的默认样式

边框  border

——(1)复写形式  border:border-width border-style border-color;
          ——border-width            边框宽度
          ——border-style            边框风格
              ——solid(实线)/dashed(虚线)dotted(点划线)double(双线)none(去掉边框);
          ——border-color            边框颜色
          ——注意事项:以上三个属性都可以跟四个属性值
              (1)一个参数    定义了四个方向的样式
              (2)两个参数   第一个值上下样式   第二个值左右样式
              (3)三个参数   第一个值上   第二个值左右  第三个值下
              (4)四个参数    第一个值上   第二个值右  第三个值下 第四个值为左
        ——(2)单方向边框
          border-left     左边框
          border-right    右边框
          border-top      上边框
          border-bottom   下边框
          ——因为单独使用以上三个属性,样式不生效,所以一般我们用复写形式来书写;

边框圆角    border-radius
      属性值:
          (1)四个值
              1个值    4个角的圆角尺寸
              2个值     第一个为左上、右下,第二个值为右上、左下
              3个值     第一个值左上,第二个职位右上、左下,第三个值位右下
              4个值     第一个值左上,第二个职位右上,第三个值位右下,第四个值为左下
              是按照从左上角开始,顺时针方向添加的圆角
          (2)百分比或宽高的一半
              1.当盒模型为正方形时,值为50%或者宽高的一半,为圆形
              2.当盒模型宽高比为长方形时,值为50%,为椭圆;值为宽度的一半或者高度的一半时,为跑道形
          (3)分别设置圆角宽高半径
                例如 border-radius:10px/20px    四个角水平圆角水平半径为10px,垂直半径为20.
                设置4个角不同情况时,案例:  border-radius:10px 30px 50px 70px/20px 40px 60px 80px;

background          背景属性

——background-color    背景色
          如果同时存在背景图和背景色,则优先显示背景图
        ——background-image    背景图
          (1)当背景图比元素大时,背景图被裁切显示
          (2)当背景图比元素小时,背景图会进行平铺
          (3)当背景图和元素一样大时,背景图正好完全显示
        ——background-repeat   背景图是否平铺
            repeat       平铺(默认值)
            no-repeat   不平铺
            repeat-x    x轴平铺
            repeat-y    y轴平铺
        ——background-size 背景图大小
            1.值可以是具体的宽高单位
            2.值可以是百分比
            3.cover   将图片进行拉伸,直到图片的最短边充满屏幕,一般图片会被裁切
            4.contain 将图片进行拉伸,直到图片的最长边充满屏幕,一般盒模型会有留白
        ——background-position   背景图定位
            可以跟两个值,第一个值为x轴的移动距离,第二个值为y轴的移动距离
            当仅写一个值时,默认Y轴距离为center
            (1)当两个值为像素单位时(px)
              x轴方向上,当值为正数,向右移动;值为负,向左移动
              y轴方向上,当值为正数,向下移动;值为负,向上移动
            (2)他的值还可以是关键词
              x轴关键词   left、right、center
              y轴关键词   top、bottom、center
        ——background-attachment   背景图固定
          ——scroll    滚动(默认值)    背景图会随着页面元素滚动而滚动
          ——fixed     固定             背景图固定显示在一个位置,不随滚动条发生移动
        ——background  复写形式
          background:background-color(可以省略) background-image background-repeat background-position/background-size;
          例如:background:red url(../xxx.xx) no-repeat center/cover;
注意:
background的多背景图案例
        案例:background: url(../images/234.jpg) no-repeat,url(../images/345.jpg) no-repeat;
        每组背景图用逗号间隔开,谁先写谁在最上边,如果设置背景色,则背景色在最下边。

浮动属性

含义:浮动就是让元素漂浮,让元素飘起来,
                作用:主要是让布局元素,横向显示改变排列方式
                属性:float;
                取值:none========默认值,不浮动,元素是怎么排列就怎么排列
                     left=======左侧浮动
                     right======右侧浮动
                浮动的特点
                    1.(兄弟)如果前面的盒子左浮动,后面的元素会上去补位置,====(半)脱离文档流
                    2.如果兄弟元素都添加浮动的话,元素都会脱离文档流,并且会挨着横向显示
                        如果都是左浮动:会从左侧开始向右排
                        如果都是右浮动,会从右侧开始向左排
                    3.如果,盒子都添加浮动,后面的剩余控件不够最后一个盒子排列了,会折行显示
                    4.浮动后的元素补位置,会以右侧预留控件补位为先
       
                    作用:就是让元素横向排列,解决布局问题===问题
                    浮动会给后面的元素带来影响===补位
                        不让上去补位置
                            清除浮动:清除浮动带来的影响(补位影响)
                            clear:
                                none=======不清楚浮动带来的影响
                                left=======清除左浮动带来的补位影响
                                right======清除右浮动带来的影响
                                both=======清除两个浮动带来的影响
                浮动产生的影响:
                    如果父元素没有固定的高度的话,子元素添加浮动,后面元素上去补位置,父元素的高度默认会降低
                        =====效果被称之为:高度塌陷
                        如何解决高度塌陷:
                            1.可以设置固定的高度
                                弊端:如果内容过多的话会溢出
                            2.清除浮动,不让补位元素补位,
                                弊端:如果父元素里面只有一个子元素,没有补位元素,如何清除???
                            3.我可以再浮动元素的后面悄悄的补一个元素
                                补的这个元素,应用清除浮动,但是这个元素类型必须是块元素
                                    以div为主
                            4、给父元素添加overflow:hidden
                                触发一个BFC形成一个独立的区域,不收到外界干扰,也不会把内部的设置影响到外界
                                同时还能让浮动的元素参与高度的计算用于解决高度塌陷
                               
                            5.万能清除法

盒模型

1.padding    内间距/内填充
      表现形式:出现在内容区域和边界之间,用来确认内容区域和边界之间的间隔
        注意事项:(1)内容区域不会显示在padding上
                (2)padding颜色会和内容区域保持一致
                (3)padding-left/padding-right/padding-top/padding-bottom分别定义左右上下四个方向的内填充
                (4)padding也支持多个属性值:
                  ——1个值     四个方向上的内填充
                  ——2个值     第一个值为上下方向的内填充   第二个值为左右方向的内填充
                  ——3个值     第一个值为上方向的内填充   第二个值为左右方向的内填充  第三个值为下方向的内填充
                  ——4个值     第一个值为上方向的内填充   第二个值为右方向的内填充  第三个值为下方向的内填充   第四个值为左方向的内填充
                (5)padding也可以用来确认父元素和子元素之间的间距,注意padding值需要加给父元素。(会改变盒子的总大小,如需保持不变,可以在宽度上减去加上的padding值)
      2.margin   外边距
        作用:用来确认元素与元素之间的间距
        注意事项:
          (1)当给父元素下的第一个子元素添加magin-top时,会出现在父元素身上
              解决方法:添加overflow:hidden;
          (2)当元素未浮动时,相邻的两个元素之间的margin-top和margin-bottom之间会发生重叠,以较大的为准
          (3)当元素浮动排成一排时,相邻的两个元素之间margin-left和margin-right之间不会重叠,相加显示间距
          (4)margin-top/margin-bottom/margin-left/margin-right分别定义上下左右四个方向的外间距
          (5)margin也可以支持多个值,详细参考padding(但是一般我们不怎么使用多个值)。
              ——当我们使用一个值时,优先确认左间距和上间距。
              ——当一排只有一个元素时,我们可以使用margin: xx auto;使其水平位置居中
              ——通常我们使用margin单一属性较多
      3.标准盒模型计算
          实际宽度计算:左右border+左右的padding+width;
          实际的高度计算:上下的border+上下的padding+height
      4.怪异盒模型
        box-sizing:border-box;   将标准盒模型转换为怪异盒模型
        实际宽度计算    width=content+左右padding+左右border
        实际高度计算    height=content+上下padding+上下border

溢出处理

1.overflow  溢出属性
            1.hidden   溢出元素隐藏
            2.scroll;    元素显示滚动条,
              ——弊端:不论元素是否可以放下,都会出现滚动条
            3.auto      元素显示自适应
              ——当元素内容能够放下时,不出现滚动条。当元素内容超出时,显示滚动条
            4.visible   默认值
            5.inherit   继承父元素的overflow属性,父元素设置什么属性值,他就按照什么去进行显示
          2.汉字  一个汉字为一个字符,遇到边界自动折行
          3.单词   一个单词算一组,若单词过长,则不换行显示。 单词和单词之间是由空格来区分的。

white-space    空白空间

1.pre        文字不换行,识别多余空格
      2.pre-warp   文字换行,识别多余空格
      3.pre-line   文字换行,不识别多余空格
      *4.nowrap     文字不换行,不识别多余空格
      5.inherit     继承父元素的white-space属性
      *6.normal     默认值   文字识别换行,不识别多余空格

文字溢出显示省略号

text-overflow  省略号显示
      ——1.clip   默认值
      ——2.ellipsis    显示省略号
      注意:text-overflow  单独使用无效,需要搭配使用,具体案例如下
        单行文本溢出显示省略号:
                      设置宽度,规定边界在哪
          white-space: nowrap;      设置文本内容不换行,一行显示
          overflow: hidden;         溢出元素隐藏
          text-overflow:ellipsis;   显示省略号

元素类型&元素类型转换

1.元素类型
      ——(1)块元素
          ——默认独占一行
          ——通常情况纵向显示
          ——可以定义宽和高,宽度默认为100%
          ——通常当做元素容器,可以用来存放块元素、内联元素和内联块元素,P标签除外,通常我们把他看做一个盒子
          ——p标签比较特殊,他不能用于存放块元素,只能用于存放内联元素和内联块元素
          常见标签为:div/p/h1-h6/ul/ol/li/dl/dt/dd...
      ——(2)内联元素/行内元素
          ——默认不独占一行
          ——通常情况横向显示
          ——不可以定义宽和高,宽和高由内容撑开,内容有多大,宽高就有多大
          ——内联元素的padding、margin、和border比较特殊。
              解释:padding、margin、border左右方向上没啥问题,但是上下方向上只存在视觉效果,不具备布局功能
                  具体如下:(1)margin-top/padding-top/border-top设置无效,
                          (2)margin-bottom/padding-bottom/border-bottom只存在视觉效果,不存布局效果
          常见标签:em、i、strong、b、sup、sub、del、s、span、a
      ——(3)内联块元素/行内块元素
          ——默认不独占一行,通常横向显示
          ——可以定义宽和高
          常见的内联块元素:img/input/textarea/select
    2.元素类型转换   display
      属性值:
        (1)block;       将元素转换成块元素    (块元素的display默认值)
        (2)inline;      将元素转换成内联元素   (内联元素的display默认值)
        (3)inline-block;将元素转换成内联块元素  (内联块元素的display默认值)
        (4)none;        将元素隐藏
      补充:float自带元素类型转换,不管浮动前是什么元素类型,浮动后都转换成块元素;

垂直对齐方式

vertical-align   垂直对齐方式
      ——对内联块和内联元素生效,通常我们可以用他来对齐图片或者进行图片和文字的对齐
        top       顶线对齐
        middle    中线对齐
        baseline  基线对齐(inline-block默认值)
        bottom    底线对齐
        日常使用:
        1.vertical-align: top;可以解决块元素和内联块元素之间的三像素间距(将内联块转换成块元素也可以解决此问题)
        2.对齐文字和图片
        3.对齐图片和图片   (中线对齐)

定位属性

1.定位属性 position
      ——relative   相对定位
        (1)不脱离文档流(移动就移动了,不会影响到下边的元素的位置关系)
        (2)相对于自身原有的位置进行定位
        (3)偏移量支持四个方向,上和下同时定义,上优先生效,左右同时定义,左优先生效。支持负值
         
      ——absolute   绝对定位
        (1)脱离文档流(添加absolute之后就不占据当前文档空间了,下边的元素就占据了他原本的位置)
        (2)针对于定位父级进行定位,如果父元素有position:relative;针对于父元素定位,若没有,
        则往上接着找,一层一层寻找,直到找到位置。若一直没有找到,则针对于整个文档进行定位。
        我们可以把拥有position:relative的父级理解为定位父级。
        (3)偏移量支持四个方向
           
      ——fixed     固定定位
        (1)相对于浏览器的可视窗口进行定位,固定在浏览器的某个位置,滚动条无法对其造成影响。
        (2)脱离文档流
      ——sticky    粘性定位
        (1)当达到规定的临界值偏移量时,位置就会保持不变。针对于离自己最近且有滚动条的父元素进行定位。
        (2)不脱离文档流,原本占的位置还存在。
        (3)一般我们可以用其做吸顶效果。
    2.偏移量
            top       上
            bottom    下
            left      左
            right     右
    3.z-index    定位元素层级
      (1)当不设置z-index时,根据元素标签的书写顺序显示,同级元素中谁的元素标签靠下,谁优先显示
      (2)设置z-index时,谁的z-index数值大,谁的层级高。
      (3)z-index的值可以为负值,同级中,负数也可以参加对比。
        注意:此属性只对定位元素生效
    4.float和position区别
      ——float半脱离文档流,当发生覆盖时,元素盒模型会发生覆盖,但是文字内容会围绕浮动元素四周显示
      ——positon:absolute  完全脱离文档流。  
            ——当定位元素发生覆盖时,相互之间会完全覆盖,可以使用z-index来调整层级关系。
    5.宽度自适应的元素添加position:absolute、float时,宽度会随文字改变而改变。
    6.元素水平垂直居中
      (1) width:xx;
          height:xx;
          position:absolute;
          left:50%;
          top:50%;
          margin-left: 负的二分之一width;
          margin-top:负的二分之一height;
         
      (2) position:absolute;
          top:0;
          left:0;
          bottom:0;
          right:0;
          margin:auto;

锚点

命名锚点的作用:在同一页面内的不同位置进行跳转。
          锚点链接语法:
      (1)给元素定义命名锚记名
        语法:<标记 > </标记>
      (2)命名锚记连接
        语法:<a >链接文本或图片</a>

透明  opacity

opacity:0.5;    (value的取值范围0-1 0.1,0.2,0.3-----0.9---1)

表格的CSS样式

1.表格中的css属性
        (1).border-collapse    是否合并边框线,仅支持table使用
          collapse         合并边框线
          separate         不合并边框线(默认值)
        (2).border-spacing     单元格之间的间隙
        补充:1和2两个css属性合起来可以达到标签属性中的cellspacing的作用
        (3).padding          单元格内填充
            宽度受table写的宽度限制,高度不受table写的高度限制,table只是定义初始的高度,
            实际高度看每个单元格的具体高度,若想要添加单元格的内填充,则不能够限制table的宽度,
            否则padding左右不生效。
        (4).empty-cells   空白单元格显示隐藏      需要在未合并单元格边框时使用
          hide     隐藏
          show     显示
        (5).table-latout    表格布局算法(是否自适应空间宽度)
          auto          自适应空间宽度,内容多的多占空间,少的少占空间
            优势:不用担心内容太多超出单元格
            劣势:会打乱我们制定的布局结构
          fixed
            优势:不会打乱我们的布局结构
            劣势:当内容过多时,文字内容会超出单元格
     2.表格补充标签
        caption 表格的标题标签,需要放在table中
        表格的行分组
          thead    表格标头   可以不写
          tbody    表格主体,一个表格中存在一个,就算不去写,表格也会补全出来
          tfoot    表格表尾   可以不写
        表格的列分组
          colgroup  表格列分组  
            span   将几列分为一组

布局--宽度自适应:

1.定义: 不去定义固定宽度,固定自适应,随着浏览器窗口或者说父元素的大小改变而改变。
      2.默认值  width:auto;(100%)
      3.用途:(1)版心和通版、(2)子元素占据父元素百分百时。

布局-高度自适应

高度自适应:
      1.概念:不写固定高度,高度由内容区域和子元素撑开,若内容区域无内容或者无子元素,则没有高度。
      2.默认值   height:auto;  auto表现形式为内容区域的高度。
      3.优势:
        (1)不会出现子元素超出父元素高度的情况,能够一直和子元素内容高度保持一致。
        (2)避免了父元素写高度,子元素高度超出会覆盖下边兄弟元素问题。
        (3)方便好用
      4.劣势:
          (1)当元素内容过段时,样式较为难看。
            解决方法:min-height;
          (2)浮动遇到的问题:当父元素不写高度,子元素浮动时,会造成高度塌陷。
              ——1.给父元素写高度   劣势:就不满足高度自适应。
              ——2.添加overflow:hidden;    劣势:如果元素内容超出父元素时,将会被隐藏。
              ——3.clear:both;             用于清除同级元素给未浮动元素造成的影响,如果同级元素全部浮动,父元素依旧会塌陷。
              ——3plus. 子元素全部浮动时,给子元素添加一个同级的空元素,将此元素宽高设置为0(在页面中不显示出来),
              再给此元素clear:both能够解决塌陷。   弊端为:页面中若多次使用的话,会多出来很多空标签。
              ——4.万能清除浮动法
                xxx::after{
                  content:"";
                  display:block;
                  height:0;
                  clear:both;
                  overflow:hidden;/visibility: hidden;
                }

元素的隐藏

1.display:none;  元素转换成隐藏元素,元素不可见,不占据原本空间,不可被选中
      2.visibility
        ——visible   元素显示(默认值)
        ——hidden    元素消失   该元素消失不可见,但是还占据原本空间位置,不可被选中
      3.opacity:0;    元素隐藏,但是是通过透明隐藏的,元素还占据原本的空间位置,可以被选中
          0-1;   取值范围,0为完全透明,1为不透明
      4.height:0;
      5.transform:scale(0)   缩放为0倍大小    占据原本的空间,不可被选中

元素透明

1.transparent   透明色  
        通过写成背景色,达到元素透明的效果,但是如果元素内有内容,无法将内容也透明。
      2.rgba(255,255,255,0)   透明色  
        rgba中的a为透明度,也是通过写成背景色,达到元素透明的效果,但是如果元素内有内容,无法将内容也透明。
        ——rgba中的a的取值范围为0-1,0为全透明,1为不透明
      3.opacity   元素透明
        取值范围为0-1   0为全透明  1为不透明
        效果为当前元素完全透明,包括其内部的内容和子元素,整体都会透明。完全透明时,依旧占据原本的空间。
      4.若只想背景透明,内容不透明,用transparent和rgba()实现,
        若想元素内容、颜色、子元素都透明,使用opacity实现。

布局-最大最小宽高

1.min-width      最小宽度

2.min-height     最小高度
    3.max-width      最大宽度
    4.max-height     最大高度
    总结:定义以上属性后,若没有子元素,并且不去写宽高,宽度按照max-width显示,高度按照min-height显示。
    若定义子元素,子元素的宽度高度若超过最大宽高限制,则当前元素按照max-width和max-height去显示
    若定义子元素,子元素没有超过最大的高度,则按照子元素的高度显示,若子元素低于min-height,则按照min-height显示。
    若定义子元素,子元素的宽度超过最大宽度,当前元素按照max-width显示,若子元素宽度没有超过,则还按照max-width显示。
    若给当前元素设置了一个小于min-width的宽度,则按照min-width显示。
注意:
height:100%;继承父元素的高度,但是高度没有默认高度,都是由子元素撑开,这时候height:100%;无效,
    需要给body,html{height:100%},才能够实现。

阴影

1.文本阴影属性  text-shadow
      属性  text-shadow:v-shadow h-shadow blur color;
          v-shadow   水平方向上的阴影,为正向右偏移,为负向左偏移
          h-shadow   垂直方向上的阴影,为正向下偏移,为负向上偏移
          blur       模糊距离,值越大越模糊,不可为负
          color      阴影颜色
      注意事项:可以跟多个阴影,每组之间用逗号间隔开。
    2. 盒子阴影属性  box-shadow
      属性 box-shadow:v-shadow h-shadow blur spread color inset;
          v-shadow(必选)   水平方向上的阴影,为正向右偏移,为负向左偏移
          h-shadow(必选)   垂直方向上的阴影,为正向下偏移,为负向上偏移
          blur(可选)       模糊距离,值越大越模糊,不可为负
          spread(可选)     阴影大小,为正四个方向都放大,为负四个方向都缩小
          color(可选)      阴影颜色
          inset(可选)      设置内阴影

渐变

1.渐变的概念:
        CSS3 渐变(gradient)可以让你在两个或多个指定的颜色之间显示平稳的过渡。
      2.线性渐变   linear-gradient      朝着某一个方向呈线性渐变
          ——background: linear-gradient(to right,red,blue,yellow,aqua);
              (1)background: linear-gradient(去什么方向,开始颜色,中间颜色,中间颜色,结束颜色);
              (2)方向可以省略不写,默认为 to bottom(从上到下)
              (3)颜色可以写多个,至少写俩。第一个颜色为开始位置的颜色,第二个颜色为结束位置的颜色。
              (4)写单一方向(to right),则是朝某一方向渐变;写两个方向(to right bottom),则朝某个角渐变;
              (5)方向还以是角度,0deg==to top;45deg==to top right;90deg==to right;135deg==to right bottom;
                                180deg==to bottom; 225deg==to left bottom; 270deg==to left;315deg==to left top;360deg==to top;
              (6)非规律性渐变  (颜色后边跟百分比,这个百分比就是这个颜色的位置)
                    background: linear-gradient(red 0%,blue 50%,yellow 100%);
      3.径向渐变  radial-gradient  
          概念:径向渐变是从“一个点”向四周的颜色渐变
          案例: background: radial-gradient(red,blue,yellow);
          默认:
            (1)在正方形中,镜像渐变呈圆形,在长方形中,镜像渐变呈椭圆形
            (2)第一个颜色为最内颜色,最后一个颜色为最外颜色。
            (3)默认发散点在正中心
          案例2:background: radial-gradient(渐变位置点,渐变形状,渐变大小,red,blue,yellow);
            (1)如果需要用到(渐变位置点,渐变形状,渐变大小),需要加浏览器前缀,如谷歌和苹果 -webkit-
            (2) 渐变点可以写两个值,用空格隔开,第一个值为渐变位置的x轴坐标,另一个渐变位置的y轴坐标
            (3)渐变大小它有四个值。 closest-side:最近边;farthest-side:最远边; closest-corner:最近角; farthest-corner:最远角
            (4)渐变的形状,默认是椭圆形(正方形设置渐变点的位置可以看出来),circle可以改变为圆形。
          非规则渐变案例:
            background: radial-gradient(red 5%,blue 10%,yellow 70%);
      4.重复渐变
        (1)重复线性渐变 repeating-linear-gradient(色值1 x%,色值2 y%,色值3 z%,)
          案例background: repeating-linear-gradient(red 0%,blue 10%,yellow 20%);
        (2)重复镜像渐变 repeating-radial-gradient(色值1 x%,色值2 y%,色值3 z%,)

过渡   transition

概念:css3的transition允许css的属性值在一定的时间区间内平滑地过渡。需要触发条件,才能看到过渡效果。
        格式:   transition:all 5s linear 3s;
              1.第一个参数为参与过渡的元素,all为全部参与过渡,它还可以是单个的属性
              2.第二个参数为过渡时间
              3.第三个参数为过渡速率
                  ease               逐渐减速
                  ease-in            加速
                  ease-out           减速
                  ease-in-out        先加速后减速
                  linear              匀速
                  steps               分步骤
                  cubic-bezier()     贝赛尔曲线   贝塞尔曲线网址:http://cubic-bezier.com/
              4.第四个参数为过渡的延迟时间
              5.注意:当transition写给划过后,失去划过状态则立刻恢复。若写给原本的元素,则恢复也有过渡过程。

2d效果

1.transform   位移      跟position效果差不多
          ——1.translate    控制元素X轴Y轴位移,第一个参数为X轴位移,第二个参数为Y轴位移,写一个参数时,默认Y轴为0
          ——2.translateX   控制元素X轴位移
          ——3.translateY   控制元素Y轴位移
            ——当代表X轴的数字为正时,向右移动,为负时,向左移动
            ——当代表Y轴的数字为正时,向下移动,为负时,向上移动
        2.scale     2d缩放    
          形式:transform:scale(x,y)
          ——1.当括号内写一个值,等比缩放。
          ——2.当括号内写两个值,宽按照第一个值进行缩放,高按照第二个值进行缩放。
          ——3.默认值为scale(1,1)  当值大于1,放大;当值小于1,缩小
          ——4.当值为负值时,先缩小,再翻转,再放大。
        3.rotate   2d旋转
          形式: transform:rotate(xxdeg);
          ——1.值为度数,默认顺时针,沿中心点旋转。
          ——2.当值为正数时,顺时针旋转,当值为负数是,逆时针旋转。
          ——3.transform: rotateX(XXdeg);沿X轴旋转
          ——4.transform: rotateY(XXdeg);沿Y轴旋转
        4.skew    2d倾斜
          形式:transform:skew(xxdeg)
          skew(xxdeg)控制X轴Y轴的倾斜,第一个参数为X轴倾斜角度,第二个参数为Y轴倾斜角度,写一个参数时,默认Y轴为0deg;
          skewX()控制X轴倾斜,  skewY()控制Y轴倾斜
        5.transfrom-origin     2d转换原点
          (1)默认为transfrom-origin(center,center);
          (2)第一个控制转换原点X轴位置,第二个点控制转换原点Y轴位置
          (3)当不写第二个值时,默认补全一个center
          (4)值可以是关键词,还可以是具体数值
          (5)值可以为负,当为负数是,转换原点在转换元素之外
        6.2d多属性同时添加格式:
          transfrom:2d效果1 2d效果2;
          注意:当位移和旋转同时使用时,一般我们将位移放在前边。

动画

css3中CSS3属性中有关于制作动画的三个属性:transform,transition,animation
        其中transform,transition可以完成一个2d的过渡动画,但是需要一个触发条件,所以严格意义上来说他不属于真正的动画
        1.@keyframes 关键帧动画
        第一种形式:
            @keyframes zhangsan{
                from   定义他的初始样式
                 
                 
                to     定义的他的最终样式
                 
                 
              }
               @keyframes luoxiang{
                0%{定义他的初始样式
                 
                 
                }  
                25%{
                }
                50%{
                }
                75%{
                }
                100%{定义的他的最终样式
                 
                 
                }        
              }
        2.animation  添加动画
        案例:animation: zhangsan 1s linear 2s infinite alternate paused;
            ——1.animation-name              设置所应用的动画名称
            ——2.animation-duration          动画的持续时间
            ——3.animation-timing-function   动画运动的速率
                  *linear:线性过渡。等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0)
                  ease:平滑过渡。等同于贝塞尔曲线(0.25, 0.1, 0.25, 1.0)
                  ease-in:由慢到快。等同于贝塞尔曲线(0.42, 0, 1.0, 1.0)
                  ease-out:由快到慢。等同于贝塞尔曲线(0, 0, 0.58, 1.0)
                  ease-in-out:由慢到快再到慢。等同于贝塞尔曲线(0.42, 0, 0.58, 1.0)
                  steps()        定义步数
                  贝赛尔曲线
            ——4.animation-delay             动画延迟的时间
            ——5.animation-iteration-count  动画的循环次数
                  *infinite:无限循环
                  number: 循环的次数
            ——6.animation-direction  检索或设置对象动画在循环中是否反向运动
                  normal:正常方向
                  reverse:反方向运行
                  *alternate:动画先正常运行再反方向运行,并持续交替运行
                  alternate-reverse:动画先反运行再正方向运行,并持续交替运行
            ——7.animation-play-state  检索或设置对象动画的状态
                  running:运动(默认值)
                  *paused: 暂停
                  注意:我们一般情况下不写这个属性,一般写给他满足某种条件下生效

标准盒布局

box-sizing:content-box;
          1.实际所占空间大小==(content==width)+padding2+border2
          2.相当于说,标准盒模型的边框和padding是加在width之外的

怪异盒布局

box-sizing:border-box;
          1.(实际所占空间大小==width)  width==content+padding2+border2
          2.相当于说,怪异盒模型的边框和padding是加在width之内的
          3.特点:
              (1)便于计算;
              (2)标准盒模型的浮动元素书写边框时,随着页面缩小,浮动元素放不小会往下掉,怪异盒模型能解决这个问题。

弹性盒布局

display:flex;(父元素添加)
          1.通过display:flex;将当前元素变成一个弹性盒,此元素下的第一层子元素都变成弹性布局元素(仅限于第一层);
          2.弹性盒中,拥有一个水平的主轴和垂直的交叉轴。
          3.主轴默认横向排列,交叉轴永远垂直于主轴。
          4.弹性布局元素(父元素添加display:flex),添加浮动无效,一般,我们也不会再去使用定位
          ——注意:如果子元素不是块元素,则将子元素隐式转换成块元素;
          5.flex-direction  改变主轴的方向(父元素添加)
            ——*column   将主轴变为纵向
            ——column-reverse   将主轴变为纵向靠下排列,第一个元素在最下侧
            ——row      将主轴变为横向
            ——row-reverse      将主轴变为横向靠右排列,第一个元素在最右侧
          6.justify-content    弹性元素主轴对齐方式(父元素添加)
            ——flex-start        沿着主轴开始的方向对齐
            ——flex-end;         沿着主轴结束的方向对齐
            ——center            在主轴中间对齐
            ——space-between     沿着主轴两端对齐
            ——space-around      沿着主轴环绕式对齐
          7.flex-warp    弹性布局元素(父元素添加display:flex)是否换行显示
            ——warp        折行显示
            ——nowarp      不折行显示
            补充:父元素变成弹性盒,如果子元素过多,默认是不会折行的,会产生挤压效果,子元素默认平均分配宽度
          8.align-items     弹性元素侧轴当前行每个元素对齐方式(父元素添加)
            ——flex-start    当前行每个元素纵轴开始位置对齐
            ——flex—end      当前行每个元素纵轴结束位置对齐
            ——center        当前行每个元素纵轴中间位置对齐
            ——baseline      当前行每个元素纵轴文字基线位置对齐
          9.align-content    弹性元素当前行整行的侧轴对齐方式(父元素添加)
            (1)单行,父元素不写高,无效
            (2)单行,父元素写高,整行对齐方式
            (3)多行,父元素写高,整行对齐方式整体靠那个方向
            (4)多行,父元素不写高,无效
           
          10.align-self   当前弹性元素的侧轴对齐方式(写给子元素的,可以重写父元素定义的侧周对齐方式)
              取值参考align-item
          11.order    弹性元素排序优先级(写给子元素)
              number排序优先级,数字越大越往后排,数字越小越靠前,默认为0,支持负数。
          12.flex     flex-shrink、flex-grow、flex-basis的复合属性,默认值为flex:0 1 auto;(写给子元素)
              (1)复合属性的每一项内容:
                ——flex-shrink 为flex元素是否收缩,0是不收缩,1为收缩,默认值为1  
                ——flex-grow 为flex元素是否放大,0是不放大,1为放大,默认值为0
                ——flex-basis 为flex元素在主轴上的长度;默认值为auto,显示效果为按照元素原本的主轴长度显示;
                值还可以是具体的px数值,显示效果为按照flex-basis设置的长度显示
              (2)flex的各个缩写形式
                ——flex:1;为flex:1 1 auto;的缩写形式
                ——flex:0;为flex:0 0 0;的缩写形式
                ——flex:none;为flex:0 0 auto;的缩写形式

css3布局

*1、column-count    定义将元素分几列
          说明:属性规定元素应该被分隔的列数
          适用于:除table外的非替换块级元素, table cells, inline-block元素
          *2、column-gap   列与列之间的间隔
          说明: 属性规定列之间的间隔大小
          *3、column-rule  列与列之间的间隔线
          说明:设置或检索对象的列与列之间的边框。复合属性。
            column-rule-color规定列之间规则的颜色。
            column-rule-style规定列之间规则的样式。
            column-rule-width规定列之间规则的宽度。
          4、column-fill    列高度(不常用)
          说明:设置或检索对象所有列的高度是否统一
              auto:列高度自适应内容        需要搭配高度使用,设置之后,有限填充第一列,再去填充下一列  
              balance                       每列的高度均保持一致
          5、column-span   写给内部元素的,决定当前元素是否横跨所有列
          说明:设置或检索对象元素是否横跨所有列。
              none:不跨列
              all:横跨所有列
          6、column-width  设置每列的宽度,和column-count有冲突。谁大谁显示
          说明:设置或检索对象每列的宽度

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值