CSS的小知识点:

·CSS全称是“层叠样式表”
·CSS样式是表现。就像网页的外衣。比如,标题字体、颜色变化,或为标题加入背景图片、边框等。所有这些用来
  改变内容外观的东西称之为表现


·CSS的元素分类:
   ·块状元素:<div> <p> <h1>...<h6> <ol> <ul> <dl> <table> <address> <blockquote> <form>
   ·内联元素:<a> <span> <br> <i> <em> <strong> <label> <q> <var> <cite> <code>
   ·内联块状元素:<img> <input>


  ·块状元素(块级元素):(可通过 display:block将元素转换为块状元素)
        ·每个块级元素都从新的一行开始,并且其后的元素也另起一行
        ·元素的高度、宽度、行高以及顶和底边距都可以设置
        ·元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度
  ·内联元素(行内元素):(可通过display:inline将元素设置为内联元素)
        ·和其他元素都在一行上
        ·元素的高度、宽度以及顶部和底部边距不可设置
        ·元素的宽度就是它包含的文字或图片的宽度,不可改变
  ·内联块状元素:就是同时具备内联元素、块状元素的特点(可通过display:inline-block)
        ·和其他元素都在一行上
        ·元素的高度、宽度、行高以及底边距都可设置


·盒子模型:
     ·padding:盒子模型内边距
     ·margin:盒子模型外边距
     ·border:盒子边框
  盒子模型的内边距,外边距已经盒子边框都有四个方向
    eg:padding-top/bottom/right/left
      盒子模型元素的实际高度:元素高度+padding-top+padding-bottom+border*2
      ·块状元素都具有盒子模型的特征


      ·盒子模型--边框:
           边框的三个属性:粗细、样式、颜色
               ·粗细:border-width:
               ·样式:border-style:(常见:虚线(dashed)、点线(dotted)、实线(solid))
               ·颜色:border-color:
           因此在设置边框的时候,可
                eg:  div{
                          border-width:2px;
                          border-style:solid;
                          border-color:red;
                     }或者可简写:
               eg:   div{
                           border:2px solid red;
                      }
            ·可尝试单独设置某个方向的边框(css中只允许为一个方向的边框设置样式)
                 eg:div{border-bottom:1px solid red}(只设置上边框)
            ·默认边框是直角矩形,若想要编写圆角矩形,则:border-radius:npx
       
     ·盒子模型的宽度与高度:
         盒模型宽度和高度与我们平常所说的物体的宽度和高度理解是不一样的
         css内定义的宽(width)和高(height),指的是填充在里面的内容的宽度
         因此一个元素实际宽度(盒子的宽度)=左&右边界+左&右边框+左&右填充+内容宽度
         height:表示行高


     ·盒子模型的填充(padding):
          内容与边框之间的距离,填充一般顺序为上、右、下、左(顺时针)(如果简写的话)
   
(padding与margin的区别:padding在边框里,margin在边框外)


     ·盒子模型的边界(margin):
          元素与其他元素之间的距离可以使用边界(margin)


   
·line-height与height:
  height:表示行高;(即定义元素自身的高度)
  line-height:表示每行文字所占的高度(即决定了元素中文本内容的高度)
  ·当行高等于元素高,可将文本内容垂直居中  


·CSS常见样式:
   ·font-size:字体大小
   ·line-height:行间距
   ·font-weight:bold  粗体样式
   ·font-style:italic 斜体样式
   ·text-decoration:underline  下划线
   ·text-decoration:line-through  删除线
   ·border:边框(边框中可以指定边框粗细(npx),边框线条虚实(实为solid),边框颜色;)
             eg:li{border:1px solid red;}
   ·鼠标滑过状态的样式:标签:hover
                          eg: a:hover
   ·font-family:字体
   ·段落排版: 
          ·text-indent:2em(2em的意思就是文字的2倍大小)  段落缩进
          ·line-height:1.5em(1.5em的意思是行间距为1.5倍)   行间距(行高)
          ·letter-spacing:50px  中文字/字母间隔
          ·word-spacing:50px    单词间距
          ·对齐:
                 ·居中:text-align:center
                 ·居左:text-align:left
                 ·居右:text-align:right
·CSS代码语法:
   CSS样式由选择符和声明组成,而声明又由属性和值组成:
   选择符{属性:值}
eg:
   p{ color: blue }
  ·多条生命直接用;分开
  eg:
  p{font-size:12px;
    color:blue;}


·注释代码:
   /**/


·CSS的样式:
   ·内联式
   ·嵌入式
   ·外部式(外联式)


     ·内联式:把CSS代码直接写在现有的HTML标签中(注意要写在开始标签中,而且要写在style的双引号之中)
     ·嵌入式:把CSS代码写在<style type="text/css"></style>标签之间
     ·外部式:把CSS代码写在一个单独的外部文件中,这个CSS样式文件以".css"为拓展名
               在<head>内(注意不是在<style>标签内),使用<link>标签将css样式文件链接到HTML文件内
                eg:<link href="base.css" rel="stylesheet" type="text/css"/>
                注意:1.css样式文件名要以有意义的英文字母命名,如:main.css
                      2.rel="stylesheet" type="text/css"是固定写法不可修改
                      3.<link>标签位置一般在<head>标签内


   ·三种方法的优先级:内联式>嵌入式>外部式
(但是嵌入式>外部式有一个前提:嵌入式CSS样式的位置一定在外部式的后面)
 其实总结来说,就是就近原则:距离被设置元素越近,优先级越高
·不过上述总结的优先级是有一个前提,就是三者的CSS样式是在相同权值的情况下




·选择器:每一条CSS样式声明由两部分组成:
          选择器{
                样式;         
           }
   ·标签选择器:以标签为选择器
   ·类选择器:语法:.类选择器名称{css样式代码;}
               注意:1.英文圆点开头
                     2.类选择器名称可以任意取名,但不要取中文名
                     3.使用class="类选择器名称"为标签设置一个类
                         eg:<span class="stress">胆小如鼠</span>
                            .stress{color:red;}
   ·ID选择器:为标签设置id="ID名称",而非class="类名称"
               ID选择符前面是(#),而非(.)
   ·子选择器:用>符号,用于选中指定标签元素的第一代子元素
               eg:.food>li{border:1px solid red;}即使class名为food下的元素li加入红色实现边框


   ·包含(后代)选择器:即加入空格,用于选中指定标签元素下的后辈元素
                         eg:.food span{color:red;}
   ·通用选择器:功能最强大的选择器,使用一个(*)号指定,作用是匹配html中
                 所有标签元素
                   eg:*{color:red}


·类选择器与ID选择器的比较:
   ·相同:可以应用于任何元素
   ·不同:1.ID选择器只能在文档中使用一次,而类选择器可以使用多次;(实际上应该是同一个元素只能使用一个id)
           2.可以使用类选择器词列表方法为一个元素同时设置多个样式;
   ·实际,大部分CSS都是用类选择器,而id选择器留给写js的人用


·子选择器与后辈选择器的区别:
    ·子选择器仅仅是指它的直接后代,或者可以理解为作用与子元素的第一代后代,
    而后代选择器是作用于所有后代
  


  ·伪类选择符:允许给html不存在的标签(其实是标签的某种状态)设置样式
                比如,给html中一个标签元素的鼠标滑过状态来设置字体颜色:
                eg: a:hover{color:red;}
  ·分组选择符:当你想为多个标签元素设置同一个样式时,可以使用分组选择符(,)
                 eg:为h1,span标签同时设置字体颜色为红色
                      h1,span{color:red}
                      实际相当于
                      h1{color:red}
                      span{color:red}




·继承:CSS的某些样式是具有继承性的
        允许样式不仅应用于某个特定的html标签元素,而且应用于其后代
        但是有些css样式不具有继承性,eg:border:1px solid red;


·权值:浏览器根据权值来判断使用哪种css样式,选择权值高的css样式
       标签的权值为1,类选择符的权值为10,ID选择符的权值最高为100,
       继承也有权值,但是很低,为0.1




·层叠:
    如果html对应同一个元素有多个CSS样式存在并且多个CSS样式具有相同权重值
    那么层叠就可以解决,简单来说,就是根据css样式的前后顺序来决定的
    如之前写过:内联式>嵌入式>外部式(相同权重情况下)


·重要性:
     某些特殊情况需要为某些样式设置具有最高权值,此时,使用!important
     !important要写在分号的前面






·CSS布局模型:
    三种布局模型: 
         ·流动模型(Flow)
         ·浮动模型(Float)
         ·层模型(Layer)


     ·流动模型(Flow):
           ·流动(Flow)是默认的网页布局模型,也就是网页在默认状态下的HTML网页元素
           都是根据流动模型来分布网页内容的。
           ·流动模型有两个典型特征:
                 ·块状元素都会在所处的包含元素内自上而下按顺序垂直延伸分布
                   因为在默认状态下,块状元素的宽度都是100%,实际上,块状元素
                   都会以行的形式占据位置。
                 ·在流动模型下,内联元素都会在所处的包含元素内从左到右水平
                   分布显示
     ·浮动模型(Float):
            假如想让两个块状元素并排显示,那设置元素浮动就可以实现
            ·任何元素在默认情况下是不能浮动的,但可以用CSS定义为浮动
            ·可通过float:right/left可实现元素左浮动,右浮动
               当然也可以实现元素一左一右浮动:
                       div1{float:left;}
                       div2{float:right;}


     ·层模型(Layer):
            ·层布局模型就像是图像软件photoshop中非常流行的图层编辑功能一样,
            每个图层能够精确定位操作。CSS定义了一组定位(positioning)属性
            来支持层布局模型。
            ·层布局有三种形式:
                     ·绝对定位(position:absolute)
                     ·相对定位(position:relative)
                     ·固定定位(position:fixed)


               ·绝对定位:
                    eg:div{position:absolute;}
                    这条语句将元素从文档流中拖出来,然后使用left、right、top、bottom
                    属性相对于
               ·相对定位:
                         position:relative;
                   虽然div元素相对于以前的位置产生了偏移,但是div元素以前的位置还是保留着
               ·固定定位:
                         position:fixed
                    与absolute定位类似,但相对移动的坐标(屏幕内的网页窗口)本身,由于视图
                    本身是固定的,不会随着浏览器窗口的滚动条滚动而变化,除非改变浏览器窗口的
                    显示大小,因此固定定位的元素会始终位于浏览器窗口内试图的某个位置,不会手文档
                    流动影响


                ·relative与absolute组合使用
                    position:absolute可以实现被设置元素相对于浏览器(body)设置定位,也可以使用
                    position:relative帮忙,相对于其他元素进行定位
                    (但必须遵守下列规范)
                         ·参照定位的元素必须是相对定位元素的前辈元素;
                         ·参照定位的元素必须加入position:relative;
                         ·再将定位元素中加入position:absolute,便可以使用top,bottom,left,right来进行
                           偏移定位




·关于缩写:
  ·颜色值的缩写:当你设置的颜色是16进制的色彩值时,如果每两位的值相同,可以缩写一半:
    eg: p{color:#000000;},可缩写为:p{color:#000;}
        p{color:#336699;},可缩写为:p{color:#369;}
  ·字体缩写:
      给网页设置字体的代码:
body{
    font-style:italic;
    font-variant:small-caps;
    font-weight:bold;
    font-size:12px;
    line-height:1.5em;
    font-family:"宋体",sans-serif;
}
以上代码可缩写为:
body{
    font:italic small-caps bold 12px/1.5em "宋体",sans-serif;
}
     ·此简写方式至少要指定font-size和font-family属性,其他属性如未指定则自动使用默认值
     ·在缩写时,font-size与line-height中间要加入"/"斜杠
因此可缩写为:
body{
    font:12px/1.5em "宋体",sans-serif;
}






·颜色设定的几种方法:
   ·英文命令颜色:eg:p{color:red;}
   ·RGB颜色,由R(red),B(blue),G(green)三种颜色的比列来配色。eg:p{color:rgb(133,45,200);}
   ·十六进制颜色:现在普遍使用的颜色,原理实际也是RGB设置,但是每一项的值由0-255变成了十六进制00-ff
     eg:p{color:#00ffff;}




·长度值:(px,em,%,这三种单位其实都是相对单位)
   ·像素px
   ·em:就是本元素给定字体的font-size值,如果元素的font-size为14,那么1em = 14px
   ·百分比%:eg:p{font-size:12px;line-height:130%}设置行高(行间距)为字体的130%






·水平居中设置
     ·行内元素(文本图片等):通过给父元素设置text-align:center来实现的






·弹性布局Flex:用来为盒状模型提供最大的灵活性;
  采用flex布局的元素,称为Flex容器,简称“容器”,它的所有子元素自动成为容器
  成员,称为Flex项目,简称“项目”,容器默认存在两根轴,水平的主轴和垂直的交叉轴
  项目默认按主轴排列a
  ·容器有6个属性:
      ·flex-direction决定主轴的方向(即项目的排列方向),有4个值:
                            ·row(默认值):主轴为水平方向,起点在左端;
                            ·row-reverse:主轴为水平方向,起点在右端;
                            ·column:主轴为垂直方向,起点在上沿;
                            ·column-reverse:主轴为垂直方向,起点在下沿           
      ·flex-wrap默认情况下,项目都排在一条线(又称轴线)上,flex-wrap属性定义
                 如果一条轴线排不下,如何换行
                 .box{
                      flex-wrap:nowrap|wrap|wrap-reverse;
                  }
                  可能取3个值:
                            ·nowrap(默认):不换行
                            ·wrap:换行,第一行在上方
                            ·wrap-reverse:换行,第一行在下方
      ·flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为
                  row nowrap
                   .box{
                       flex-flow:<flex-direction>||<flex-wrap>
                    }
      ·justify-content属性定义了项目在主轴上的对其方式
                             ·flex-start(默认值):左对齐;
                             ·flex-end:右对齐;
                             ·center:居中;
                             ·space-between:两端对齐,项目之间的间隔都相等
                             ·space-around:每个项目两侧的间隔相等,所以,
                                            项目之间的间隔比项目与边框的间隔大一倍
      ·align-items属性定义了项目在交叉轴上如何对齐,具体对齐方式与交叉轴的方向有关,
                   下面假设交叉轴从上到下:
                             ·flex-start:交叉轴的起点对齐;
                             ·flex-end:交叉轴的终点对齐;
                             ·center:交叉轴的中点对齐;
                             ·baseline:项目的第一行文字的基线对齐;
                             ·stretch(默认值):如果项目未设置高度或设为auto,将
                                                占满整个容器的高度
      ·align-content属性定义了多根轴线的对齐方式,如果项目只有一根轴线,该属性不起作用
                             ·flex-start(默认值):与交叉轴起点对齐;
                             ·flex-end:与交叉轴终点对齐;
                             ·center:与交叉轴的中点对齐;
                             ·space-between:与交叉轴两端对齐,轴线之间的间隔平均分布
                             ·space-around:每个轴线两侧的间隔相等,所以,
                                            轴线之间的间隔比轴线与边框的间隔大一倍  
                             ·stretch(默认值):轴线占满整个交叉轴   
 ·任何一个容器都可以指定为Flex布局:
  .box{
      display:flex;  
  }
  行内元素也可以使用Flex布局:
  .box{
      display:inline-flex;
  }


  注意:设为Flex布局以后,子元素的float,clear和vertical-align属性将失效

猜你喜欢

转载自blog.csdn.net/yvonne_lu7/article/details/80418006