您的位置:首页 > Web前端 > CSS

css3笔记

2016-05-21 18:51 393 查看
1、选择器

   帮助我们定位网页上的元素,并且施加样式

   常用选择器

   id选择器

   类选择器

   标签/标记选择器

   伪类选择器

   ....

   1、兄弟选择器

      兄弟:具备相同父元素的元素,就是[兄弟]元素

            <div>
      <p></p>
      <span></span>
   </div>

      1、相邻兄弟选择器

            <div>
      <p></p>
      <span></span>
      <div></div>
      <h1></h1>
   </div>
 相邻兄弟:紧紧挨着当前元素的 元素 
 语法:+ 作为结合符
       selctor1+selector2
div+span : 匹配所有紧挨着div后面的span元素
#d1+.important : 匹配 紧挨着 id为di的元素 后面的 class为important元素

      2、通用兄弟选择器

         通用:后面所有
匹配某元素后面的所有兄弟元素(没有位置关系的限制)
语法:~ 作为结合符
      selector1~selector2
      div~p : 匹配 div 后面所有的 p元素

   2、属性选择器

      将元素所附带的属性用于选择器中,帮助我们匹配指定的元素

      语法:[]

      attr:attribute , 属性,可以表示标签中任何一个属性

      2.1 [attr] : 

         [title] : 匹配具备title属性的元素
div[class] : 匹配 具备class属性的 div元素 
div[id][class] : 匹配 既有 id 属性 又有class属性的div元素

      2.2 [attr=value]

           [type=button] : 匹配 type 属性值为 button 的元素
  input[type=button] : 匹配 type 属性值为 button的input元素
  div[class="lf"] :

      2.3 [attr ~= value]

          [class ~= important]
 class属性值,是一个用 空格 隔开的值列表,important是当前列表中的一个单词
 <div class="important lf danger weight"></div>

      2.4 [attr ^= value]

          ^ : 表示 以 ... 开始
 [class ^= test] : 匹配 class 属性值 以 test作为开始的元素
    <div class="test_danger"></div> 能匹配
    <p class="test123"></p> 能匹配
    <div class="mytest"></div> 不能匹配

      2.5 [attr $= value]

          $ : 以 ... 结束

      2.6 [attr *= value]

          * : 包含

   3、伪类选择器

      作用:匹配元素的不同的状态 

      1、链接伪类

         :link
:visited

      2、动态伪类

         :hover
:active
:focus

      3、目标伪类

         :target
作用:突出显示 活动的 html 锚元素

      4、元素状态伪类

         作用:匹配元素 启用 禁用 被选中的状态的。
      input 具备禁用启用
      input : radio , checkbox 具备被选中状态

  :enabled : 匹配每个已启用的元素
  :disabled : 匹配每个已禁用的元素
  :checked : 匹配每个已被选中的input元素(只用于 checkbox 和 radio)

注意:元素状态伪类,只有在表单元素中

      5、结构伪类

         :first-child  :  匹配属于其父元素中的首个子元素

            table td:first-child
:last-child : 匹配属于其父元素中的最后一个子元素

:nth-child(number) : 匹配是其父元素中的第 number 个子元素

:empty : 匹配没有子元素(包含文本)的元素
    <div>  有子元素
<p></p>  
    </div>

    <div> 有子元素
我是子元素吗?
    </div>

    <div> 有子元素

    </div>

    <div></div> 没有子元素
:only-child : 匹配是其父元素中的唯一子元素

      6、否定伪类

         :not(selector)
匹配非指定元素/选择器的每个元素

将 selector 匹配的元素 排除在外
table td:not(:first-child){} : 匹配table中,每行里面除第一列以外的其他列

   4、伪元素选择器

      匹配 元素中 内容 的某一部分

      1、:first-letter 或 ::first-letter

         选取指定元素的首字符

      2、:first-line 或 ::first-line

         选取指定元素的首行

      3、::selection

          匹配被用户选取的部分

      : 与 ::的区别

      1、: 全部都是伪类选择器

        :: 全部都是伪元素选择器

      2、在CSS2规范中,伪元素 和 伪类 全部都通过 : 显示

      3、在CSS3规范中,要求 伪元素 必须用 :: ,伪类,只能用 :

      4、但是,网页为了向前兼容 CSS2 ,所以,有的时候,可以使用 : 来表示 伪元素

*****************************************************

1、内容生成

   通过CSS的方式,在指定的元素[前面] 或者 [后面] 增加一部分内容

   伪元素选择器:

   :before  : 能够匹配到某个元素的内容区域之前

     <div> [:before] This is a div</div>

   :after  : 能够匹配到某个元素的内容区域之后

     <div>This is a div [:after]  </div>

   属性:

        content 属性 一般会配合着 :before 以及 :after,来插入生成的内容
常用取值:
 1、字符串,普通的文本
 2、url() : 图片
 3、计数器

   通过内容生成解决的问题:

   1、父子元素中,设置子元素的上外边距时的问题

      解决方案:

        1、加边框,不合适
2、父元素中增加上内边距 , 不合适
3、内容生成

   2、浮动 引发父元素高度的问题

      解决方案:

        1、overflow:hidden
  不合适
2、显示设置 父元素高度
  不适合做高度自适应的元素
3、父元素末端追加 空 div 并且 clear:both
4、内容生成

   计数器:

       可以在指定元素内容区域之前或之后,通过计数器得到一个自动生成的数字作为填充内容

       1、counter-reset 属性

          作用:声明/复位 一个计数器
 语法:counter-reset:名称 初始值;

 注意:
    1、声明计数器的位置
       计数器必须放在父元素中去声明,子元素可以无条件使用
如果页面中所有的元素统一使用一个计数器的话,那么该计数器可以声明在 body 中

             2、省略初始值
       声明计数器时,后面的初始值可以省略,如果省略则为 0。
counter-reset:c1;
等同于
counter-reset:c1 0;
    3、声明多个计数器
        1、通过多个 counter-reset 来声明
2、通过1个counter-reset 声明
   counter-reset:c1 c2;
   counter-reset:c1 10 c2 20;

       2、counter-increment 属性

          作用:设置 计数器每次使用时的增量。默认增量值为1
 counter-increment:名称 增量值;

 counter-increment:c1 1;
 等同于
 counter-increment:c1;

 注意:
   1、不设置计数器增量
      那么每次使用计数器的时候,值都是不变的。
   2、声明位置
      哪个元素要使用计数器,哪个元素中声明 计数器的增量

       3、counter() 函数

          作用:通过计数器的名称,引用/使用计数器,多数配合着 content属性一起来使用
 content:counter(名称);

     练习:

         1、HTML<h1>
  1.1 基本标记<h2>
  1.2 块级元素
  1.3 行内元素
2、CSS<h1>
  2.1 背景属性<h2>
  2.2 文本属性
  2.3 选择器

          

2、多列

   将一段文本, 显示的分割成 几列去显示

   属性:

   1、column-count 

      规定元素被拆分成几列

   2、column-gap

      规定列与列之间的间隔距离

   3、column-rule

      规定列间隔的边框的 宽度 样式 颜色

   注意:

      该组属性,有浏览器兼容性问题,需要根据不同的浏览器增加前缀

      -o- : Opera

      -webkit- : Chrom Safari

      -moz- : Firefox

      -ms-:IE

3、CSS Hack 

   1、CSSHack 三种形式

      1、类内部Hack

         在 选择器内部针对属性前后,增加浏览器的识别内容

* : ie7
- : ie6
\0 : ie8
\9\0 : ie9 ie10

      2、选择器Hack

         在浏览器前加 浏览器 识别内容

      3、HTML头部引用Hack

         通过条件注释的方式来实现样式的识别
<!-- HTML 注释 -->

<!--[if 关键字 IE 版本号]>
   待解析内容
<![endif]-->

版本号 : IE的版本,6,7,8,9,
        可以省略,如果省略的话,判断是否为IE浏览器
关键字 :
     省略:判断是否为指定版本的 IE 浏览器
<!--[if IE 6]>
这段内容,只有在IE6浏览器中,才能执行
<![endif]-->
     gt : 大于指定的版本(不包含)
          <!--[if gt IE 6]>
待解析内容

  
  <![endif]-->
     gte : 大于等于指定的版本(包含)
     lt : 小于指定的版本(不包含)
     lte: 小于等于指定的版本(包含)
     !:不等于指定的版本
     <!--[if !IE]>
待解析内容

     <![endif]-->
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  css3笔记