zoukankan      html  css  js  c++  java
  • CSS

    二、  CSS

    1.  CSS 有这几种引入方式

    1.1  行内样式表 style="color:red"

    1.2  内部样式表 <style></style>

    1.3  外部样式表 <link rel="stylesheet" href="">

     

    2.  CSS 基础选择器的优先级

    2.1  ID(#) > CLASS(.) > 元素(标签名) > 通配符(*)

    2.2  优先级权重:style=1000, id=100, class=10, element=1

    2.3  !important > 内联 > ID > class > 标签|伪类|属性选择器 > 伪元素 > 继承 > 通配符

    3.  CSS 关系选择器

    3.1  包含选择符(E F):选择所有 E 的子元素 F

                ul li{color:red;}

    3.2  子选择符(E>F): 选择所有 E 的直接子元素 F,对更深一层的元素不起作用

                <style> div>a {color:red} </style>
                <div>
                    <a href="#">直接子元素</a>
                    <p><a href="#">孙元素</a></p>
                </div>

    3.3  相邻选择符(E+F):选择 E 元素之后的最近的第一个 F 元素起作用

                <style> p+span{color:red;} </style>
                <p>E</p>
                <span>第一个F元素</span>

    3.4  兄弟选择符(E~F):选择 E 元素之后的所有兄弟元素 F 起作用

                <style> p~span{color:red;} </style>
                <p>E</p>
                <span>第一个F元素</span>
                <span>第二个F兄弟</span>

    4.  CSS 属性选择器

    4.1  E[attr]

    4.1.1  选择具有 attr 属性的 E 元素

    4.1.2  option[disabled]{color:red;}选择带有 disabled 属性的 option 标签

    4.2  E[attr="val"]

    4.2.1  选择具有 attr 属性且属性值等于 val 的 E 元素

    4.2.2  form input[type="text"]{float:left;}

    4.3  E[attr~="val"]

    4.3.1  选择具有 attr 属性的 E 元素,且属性值列表中有一个符合 val 的元素

    4.3.2  class 属性,它的值通常是多个:p[class~="Emore02"]{ color:red;}  <p class="E Emore Emore02" >,中间以空格隔开,只要一个值符合就被选中

    4.4  E[attr^="val"]

    4.4.1  选择具有 attr 属性的 E 元素,且以“val”开头的元素

    4.4.2  p[class^="E"]{color:red;}

    4.5  E[attr$="val"]

    4.5.1  选择具有 attr 属性的 E 元素,且以“val”结束的元素

    4.5.2  p[class$="Emore02"]{color:red;}

    4.6  E[attr*="val"]

    4.6.1  选择具有 attr 属性的 E 元素,且属性值列表中包含一个符合 val 的值

    4.6.2  p[class*="mor"]{} <p class="E Emore Emore02" >,包含了 "mor" 就可以选择

     

    5.  CSS 伪类选择器

    5.1  CSS 伪类选择器通过冒号(:)来定义

    5.2  它定义了元素的状态,如鼠标停滞时,点击时的状态等等。我们之前都是直接操作元素样式,伪类选择器可以为元素的状态改样式,使元素看上去更“动态”

                a:link{color:yellow;}/*访问前链接的颜色*/
                a:visited{color:blue;}/*访问后链接的颜色*/

    5.3  ul li:hover{color: yellow;} 设置鼠标停留在元素上时的样式,在 a,p,li 都可以使用

    5.4  ul li:active{color: red;} 设置元素在鼠标按下时的样式,在 a,p,li 都可以使用

    5.5  div:not(.d1){color:red;} 选择除了类名列表中有 d1 的元素。 注意 not( ) 中的值不带引号!

    5.6  body:first-child{background-color:red;}

         li:first-child{color:red;}

         ul:first-child{color:red;}

         注意:被选元素本身是子元素,并且是它的父元素的第一个子元素

    5.7  body:last-child{background-color:red;}

         li:last-child{color:red;}

         ul:last-child{color:red;}

    5.8  body:only-child{background-color:red;}

         li:only-child{color:red;}

         ul:only-child{color:red;}

    5.9  input:checked+span{background-color: red;}

         表示当 input 元素被选中时,对离它最近的第一个 span 元素起作用

    5.10  div span:nth-child(2){}

          div span:nth-child(3){}

          div span:nth-child(4){}

     

    6.  伪元素(伪对象)选择器

    6.1  常用伪元素

    6.1.1  E:before/规范书写 E::before

           在被选元素 E 的“内容”前插入内容,和 content 属性一起使用: p::before{content:"在 p 标签元素“内容”前插入的内容"; color:red;}

    6.1.2  E:after/规范书写 E::after

           在被选元素E的“内容”后插入内容,和 content 属性一起使用: p::after{content:"在 p 标签元素“内容”后插入的内容"; color:red;}

    6.2  举例代码

    <style>
          ul::before{content: "这是ul的before伪元素!"; color: crimson}
          ul::after{content: "这是ul的after伪元素!"; color: crimson}
    </style>
    </head>
        <body>
        <ul>
            <li>北京</li>
            <li>上海</li>
            <li>广州</li>
        </ul>
    </body> 

    7.  盒子模型

    7.1  W3C 标准盒子模型主要定义了四个区域

    7.1.1  内容(content): 属性 width 和 height,元素背景会延伸到 padding 区

    7.1.2  内边距(padding):不允许为负值,可以给行内元素加左右内边距起作用,加上下的内边距是不起作用的,但可以用 display 属性使它起作用

    7.1.3  边框(border): border:1px solid red; border-width/style/color;

            border-style : solid/none/double 双线(需要 width 为 3px 以上)/dotted 点状/dashed 虚线;

            border-radius:15px; 设置圆角

    7.1.4  外边距(margin):*块级元素的垂直相邻的外边距会合并,以数值大的为准;*行内元素实际上不占上下外边距,行内元素左右外边距不合并;*浮动元素的外边距也不会合并;*允许负值,但谨慎使用

    7.2  通常我们设置的宽和高都是指 content 的宽高 width 和 height

    7.3  书写 padding 和 margin 的规则:永远都是 TRBL(上右下左)顺序

    7.3.1  margin:10px 20px 30px 40px;上右下左

    7.3.2  margin:10px;上右下左都是10px

    7.3.3  margin:10px 20px;上下是10px,左右是20px

    7.3.4  margin:10px 20px 30px;上右下,左也取右的值

    7.3.5  margin: 0px  auto;左右居中

    7.4  怪异 IE 盒子模型

    7.4.1  也包涵了 content,padding,border,margin,但与标准盒子模型不同的是它的 height / width = content + padding + border

    7.5  box-sizing:调整方框大小

    7.5.1  box-sizing 属性允许你以“ W3C 标准盒子”和“怪异盒子”来定义元素,以适应区域,也就是说当前元素使用哪种盒子模型可以由 box-sizing 属性来指定

    7.5.2  content-box(标准):元素的“实际大小”就是由 width 和 height 决定的

    7.5.3  border-box(怪异):元素的“实际大小”是由 宽高 + padding + border

    7.6  伸缩/弹性盒子模型:手机端用的多

    7.6.1  目的:在浏览器窗口变化时,盒子相应改变大小

    7.6.2  开启伸缩盒子,只需要 display:flex/inline-box,它是 CSS3 中 display 新增的值类型

    7.6.3  设置了伸缩盒子模型后,float,clear,vertical-align 在 flex 中不起作用

    7.6.4  属性 flex-grow:1; 定义项目的比列

     

    8.  CSS Background

    8.1  常见的属性

    8.1.1  background-image: url("img/01.jpg"); 800px; height: 600px;

    8.1.2  background-size: 400px 200px;(前面是图宽,后面是高)

    8.1.3  平铺:background-repeat:repeat/no-repeat/repeat-x/repeat-y

    8.1.4  背景图是否随内容滚动:background-attachment:scroll/fixed(图片固定不动,但它的容器会消失)

    8.1.5  图片位置:background-position:center/ 0% 默认 0% 相当于 left top/...

    8.1.6  颜色:

           RGB {color:rgb(0,0,0);}对应的是红,绿,蓝;

           RGBA {color:rgba(0,0,0,.5)}最后一位对应的是透明度,这里是 0.5 的透明度

           十六进制 {color:#fff}

    8.1.7  设置颜色不透明度 opacity:它与 rgba() 中的“a”作用一样: p{opacity:0;} 透明;  p{opacity:1;} 不透明;

           注意:如果在页面中想将背景图变为透明,而里面的内容不受影响,最好用 rgba,因为 opacity 会继承到内容中。

    8.1.8  font-style: normal 正常字体/italic 斜体;

           font-weight: normal/lighter/bold/bolder;

           p{font-weight: 500;}数字表示粗细100-900,600以下是正常,600以上是粗体;

           font-size;font-family

    8.1.9  背景线性渐变:background: linear-gradient(to bottom, red, blue, pink);

           背景径向渐变:background: radial-gradient(red, blue)

     

    9.  CSS 属性 display

    9.1  作用:块元素和行元素可以转换,因为 display 的属性值由我们改变

    9.1.1  none 隐藏对象,消失

    9.1.2  inline 指定对象为内联元素

    9.1.3  block 指定对象为块元素

    9.1.4  inline-block 指定对象为内联块元素

    9.1.5  table-cell 指定对象作为表格单元格

    9.1.6  flex/inline-box 开启伸缩盒子,它是 CSS3 中 display 新增的值

     

    10.  CSS 属性 float(浮动)

    10.1  HTML 文档流:块元素自上而下,行元素自左向右

    10.2  float 是 CSS 样式中的定位属性,用于设置标签的居左浮动 (float:left) 和居右浮动(float:right)

    10.3  浮动后的元素不属于 HTML 文档流,需要用清除浮动把文档拽回到文档流中

    10.4  清除浮动

    10.4.1  使用空的 div 清除浮动:.clear{ height: 0; clear: both;} <div class="clear"></div>

    10.4.2  使用伪元素清除浮动:.box::after{content:""; clear: both; }

    10.4.3  使用 overflow 清除浮动:.box{overflow: hidden/auto}

     

    11.  CSS Position 定位

    11.1  position 定位:就近原则

    11.2  static 定位:是默认值,即没有定位,元素出现在正常的流中,因此,不会受到 top, bottom, left, right 的影响

    11.3  fixed 定位:是指元素的位置相对于浏览器窗口是固定位置,即使窗口是滚动的它也不会滚动,且 fixed 定位使元素的位置与文档流无关,因此不占据空间,且它会和其他元素发生重叠

    11.4  relative 定位:是指元素的定位是相对它自己的正常位置的定位; 虽然相对定位的元素的内容移动了,但元素的预留空间仍处于正常文档流中

    11.5  absolute 定位:是指绝对定位,也就是元素相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于 <html>

    11.6  z-index 叠放属性:只能在 position 属性值为 relative 或 absolute 或 fixed 的元素上有效

    11.6.1  z-index 的值可以控制定位元素在垂直于显示屏幕方向(z轴)上的堆叠顺序(stack order),值大的元素发生重叠时会在值小的元素上面

    11.7  行元素加了 position: absolute; 后可以设置宽和高(加了 float 和 fixed 后也可以设置)

    11.8  参考资料  https://www.cnblogs.com/zhuzhenwei918/p/6112034.html

     

    12.  CSS 继承

    12.1  有些属性是没有继承性的:border,padding,margin

    12.2  常被继承的属性:color,cursor(指标,鼠标变成手),font,font-family/size/style/weight, letter-spacing,line-height,list-style,text-align, text-indent....

    13.  CSS Iconfont(阿里字体图标)

    13.1  举例代码

    <link rel="stylesheet" href="iconfont/iconfont.css">
    <div class="iconfont">&#xe644;</div>

    14.  CSS Sprite 

    14.1  CSS 雪碧图 / CSS 精灵

    14.2  优点

    14.2.1  将一个页面所有零星图片包含到一个大图中去,当访问页面时,由多次请求变为一次请求,减少延迟,提高性能,加快速度

    14.2.2  解决图片命名的困扰

    14.3  页面有许多 icon 时,推荐使用雪碧图

     

    15.  CSS 常用样式

    15.1  窗口文本溢出时状态  white-space: nowrap(不换行);

          overflow: hidden(隐藏溢出);

          text-overflow: ellipsis(文字溢出省略号表示);

    15.2  文本修饰  text-decoration:underline(下划线)/none(无修饰)/overline(上划线)/line-through(贯穿线);

    15.3  去掉列表的项目符号  list-style: none;

    15.4  文本缩进  text-intent:20px;

    15.5  文本位置  text-align:left/center/right;

    15.6  字体间距  p{letter-spacing:8px;}

    15.7  CSS滚动条  overflow-y: scroll;

    15.8  垂直居中  vertical-align: middle;

    15.9  左右居中  margin: 0px auto;

    15.10  滑动门原理  display: none;àdisplay: block;

    15.11  单线边框  border-collapse: collapse;

    15.12  border: 1px solid transparent(透明);

     

    16.  用 CSS 绘制特殊图形(三角形、梯形、圆形)

    16.1  原理: 利用“ 上下左右边框交界处呈现平滑的斜线 ”这个特点,通过设置不同的上下左右边框宽度或者颜色可以得到特殊图形

    16.2  举例代码

    <style>
            span{
                display: inline-block;
                width: 0px;
                height: 0px;
                border-top: 50px solid pink;
                border-bottom: 50px solid blue;
                border-left: 50px solid transparent;
                border-right: 50px solid black;
            }
    </style>
    <span></span>

     

    版权声明:本文为博主原创文章,转载请附上原文出处链接
  • 相关阅读:
    C# 静态类和非静态类的区别
    C# 集合
    C#字符串
    C# 虚方法 抽象方法 接口
    C#常用的关键字
    扫描功能小结 (扫描二维码、条形码)
    QQ空间/朋友圈类界面的搭建
    tableview左滑按钮 tableviewcell自定义左滑按钮
    UITextView 开始编辑时,文字没有左上角对齐解决办法 tableview整体上移
    图片、视频上传小记(基于七牛云)
  • 原文地址:https://www.cnblogs.com/IT-LFP/p/10927388.html
Copyright © 2011-2022 走看看