• css


    CSS样式

    1,介绍

    • CSS:层叠样式表,定义如何H显示HTML元素,给HTML设置样式,让它更加美观

    • 语法结构:两个部分,选择器以及一条或多条声明

      • selector{
        		property:value
        		property:value
        		...
        		}
        

    2,四种引入方式

    1. 行内式(内联样式)
      • 行内式是在标记的style属性中设定CSS样式,这种样式没有体现出CSS的优势,不推荐使用
    2. 内嵌式(内部样式)
      • 嵌入式是将CSS样式集中写在网页得到标签对应的标签对中
    3. 外部样式
      1. 链接式:

        • 建立一个index.css文件,
        • 在HTML文件中引入,
        • CSS文件中样式
      2. 导入式

      • style/style

    3,嵌套规则

    1. 块级元素可以包含内联元素或某些块级元素
    2. 有几个特殊的块级元素只能包含内联元素,不能包含块级元素,如
      h1,h2,h3,h4,h5,h6,p,dt
    3. 内联元素不能包含块级元素,她只能包含内联元素
    4. li内可以包含div块级元素
    5. 块级元素与块级元素并列,内联元素与内联元素并列
    6. 可以对块级标签设置长款
    7. 不可以对内联标签设置长款

    CSS选择器

    1,基础选择器

    • 选择器指明了{}中的样式,也就是样式作用于网页中哪些元素
    • 通用元素选择器
      • 所有的标签全部都变色
    • 标签选择器
      • 匹配所有使用同样标签的样式
    • id选择器
      • 通过id属性匹配指定的标签
    • class类选择器
      • 通给类属性对应的值,归类标签样式

    2,家族选择器

    • 后代选择器,不分层级,.c2 p{color:red}
    • 子代选择器,只在儿子层 找 .c2>p{color:red}
    • 多元素选择器:同时匹配所有指定的元素,用逗号隔开减少代码的重用
    • 毗邻选择器:紧挨着,找相邻的,只找下面的,不找上面的。
      • .c2+p{color:red}
    • 兄弟选择器:同一级别的,离得很近的。
      • .c2~p{color:red}

    3,属性选择器

    • 通过标签属性来扎到对应点标签,给标签设置样式
    • [att]{color:red}:匹配所有具有att属性的元素
    • [att=val]{color:val}:匹配所有att属性等于val的元素
    • div[att]{color:red}:匹配所有具有att属性的p标签
    • div[att=val]{color:red}: 匹配所有att属性等于val的div元素
    • 属性的正则匹配

    4,组合选择器

    • 多元素选择器,用逗号分隔减少代码的重复性,给多元素设置相同的样式

    5,伪类选择器

    • 伪类选择器:伪类指的是标签下的不同状态
    • a:link{color:red} —————a标签访问前设置样式
    • a:active{color:green}————a标签鼠标点击下去显示的样式
    • a:visited{color:pink}———–a标签访问后显示样式
    • a:hover{color:purple}———-a标签悬浮到a标签显示的样式
    • before 伪类
      • p:before{content:“hello”;color:red;dispaly:block;}
      • 在每个

        元素之前插入内容

    • after 伪类
      • 在每个

        元素之后插入内容

      • p:after{content:“world”;color:red;dispaly:block;}

    CSS优先级和继承

    1,继承

    • 继承是CSS的一个主要特征,他是依赖于祖先-后代的关系的。继承是一种机制,它允许样式不仅可以应用于某个特定的元素,还可以应用于他的后代。
    • 但是CSS继承也是有限制的,有一些属性是不能被继承的,如:border,margin,padding,background,a
    • CSS继承性的权重是非常低的,是比普通元素的权重还要低的0,所以任何显示声明的规则都可以覆盖其继承样式

    2,优先级

    • 所谓CSS优先级,即是指CSS样式在浏览器中被解析的先后顺序

    • 样式表中的特殊性描述了不同规则的相对权重,他的基本规则是

      • 内联样式 style=“” —–1000
      • id 选择器 #id{} ——-100
      • 类选择器 .class{} ——————-10
      • 元素选择器 div{} —————1
    • ​ 权重越高,对应选择器的样式会被优先显示

    • 组合选择器,各选则器的权重 相加

      • 权位不进位,原始优先级最大
    • 1、文内的样式优先级为1,0,0,0,所以始终高于外部定义。
         
        2、有!important声明的规则高于一切。
      
        3、如果!important声明冲突,则比较优先权。
      
        4、如果优先权一样,则按照在源码中出现的顺序决定,后来者居上。
      
        5、由继承而得到的样式没有specificity的计算,它低于一切其它规则(比如全局选择符*定义的规则)。
      

    css之操作属性

    1,文本字体颜色

    • 颜色属性被用来设置文字的颜色

    • 颜色是通过CSS最经常的指定:

      • 十六进制值 - 如: FF0000
      • 一个RGB值 - 如: RGB(255,0,0)
      • 颜色的名称 - 如: red
    • 字体大小:font—size,默认是16px

    • 字体格式:font-family:“楷体”

    • 首行缩进:text-indent:32px

    • 描述
      normal 默认值,标准粗细
      bold 粗体
      bolder 更粗
      lighter 更细
      100~900 设置具体粗细,400等同于normal,而700等同于bold
      inherit 继承父元素字体的粗细值

    2,水平对齐方式

    • text-align:属性规定元素中的文本的水平对齐方式
      • left 把文本排列到左边。默认值:由浏览器决定。
      • right 把文本排列到右边。
      • center 把文本排列到中间。
      • justify 实现两端对齐文本效果
    • 对齐方式之间可以互相搭配,也可以和 垂直对齐一起使用
    • 垂直对齐:line-height

    3,背景属性

    • background-color #颜色

    • background-image #图片路径

    • background-repeat #默认平铺

    • background-position #图片位置

    • background-color: cornflowerblue
       
      background-image: url('1.jpg');
       
      background-repeat: no-repeat;(repeat:平铺满)
       
      background-position: right top(20px 20px);
      
      简写:background:颜色 url("url") no-repeat right top
      

    4,文字装饰

    • text-decoration:none(常用,用于去掉标签a的下划线)

    • 描述
      none 默认。定义标准的文本。
      underline 定义文本下的一条线。
      overline 定义文本上的一条线。
      line-through 定义穿过文本下的一条线。
      inherit 继承父元素的text-decoration属性的值。

    5,盒子属性(边框属性)

    1,margin

    • 外边距:用于控制元素与元素之间的距离,margin的最基本用途就是控制元素周围空间的间隔,从视觉上达到相互隔开的目的

    • 标签之间的距离

    • margin-top:100px

    • margin-bottom:100px

    • margin-right:50px

    • margin-left:50px

    • 居中 应用:margin: 0 auto;

    • body的外边距

      • 边框在默认情况下会定位于浏览器窗口的左上角,但是并没有紧贴着浏览器的窗口的边框,这是因为body本身也是一个盒子(外层还有html),在默认情况下, body距离html会有若干像素的margin,具体数值因各个浏览器不尽相同,所以body中的盒子不会紧贴浏览器窗口的边框了,为了验证这一点,加上

      • body{
            border: 1px solid;
            background-color: cadetblue;
        }
        
      • body{
            margin: 0;
        }
        
    • margin:10px 20px 20px 10px;
      
              上边距为10px
              右边距为20px
              下边距为20px
              左边距为10px
      
      margin:10px 20px 10px;
      
              上边距为10px
              左右边距为20px
              下边距为10px
      
      margin:10px 20px;
      
              上下边距为10px
              左右边距为20px
      
      margin:25px;
      
              所有的4个边距都是25px
      

    2,padding

    • 单独使用填充属性可以改变上下左右的填充,缩写填充属性也可以使用,一旦改变一切都改变,设置同margin

    • 内边距,内容和边框之间的距离

    • padding-left: 10px;			
      padding-top: 8px;
      padding-right: 5px;
      padding-bottom: 5px;
      简写形式:padding:10px,8px,5px,5px
      

    3,border

    • 外边框属性

    • style 样式

      • border-style:

      • 描述
        none 无边框。
        dotted 点状虚线边框。
        dashed 矩形虚线边框。
        solid 实线边框
    • border-color:边框颜色

    • border-width:边框宽度

    • 简写形式:border: 10px,solid,yellow

    • 四个边框也可以单独设置

      • border-left:10px,solid,yellow
    • 设置圆角

      • border-radius: 50% 就是一个圆

    4,content

    • 内容,width和height是内容的高度和宽度

    6,display

    • 对块级标签和行内标签的操作

      意义
      display:"none" HTML文档中元素存在,但是在浏览器中不显示。一般用于配合JavaScript代码使用。
      display:"block" 默认占满整个页面宽度,如果设置了指定宽度,则会用margin填充剩下的部分。
      display:"inline" 按行内元素显示,此时再设置元素的width、height、margin-top、margin-bottom和float属性都不会有什么影响。
      display:"inline-block" 使元素同时具有行内元素和块级元素的特点。
    • 隐藏标签

      /*display: none;*/   /* 隐藏标签,不占原来的位置 */
      visibility: hidden;  /* 原来的位置还占着 */
      

    7,浮动

    • 一般用来进行页面布局

    • 浮动会脱离标准 文档流,会造成父级标签塌陷问题

    • 清除浮动的两种方式:

      • 父级标签设置高度

      • 通过伪元素选择器来进行清除浮动

      • clear清除浮动

        描述
        left 在左侧不允许浮动元素。
        right 在右侧不允许浮动元素。
        both 在左右两侧均不允许浮动元素。
        none 默认值。允许浮动元素出现在两侧。
        inherit 规定应该从父元素继承 clear 属性的值

    8,overflow溢出

    • 描述
      visible 默认值。内容不会被修剪,会呈现在元素框之外。
      hidden 内容会被修剪,并且其余内容是不可见的。
      scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
      auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
      inherit 规定应该从父元素继承 overflow 属性的值。

    9,思考

    思考2:margin collapse(边界塌陷或者说边界重叠)

    1、兄弟div:
    上面div的margin-bottom和下面div的margin-top会塌陷,也就是会取上下两者margin里最大值作为显示值

    2、父子div:
    if 父级div中没有border,padding,inlinecontent,子级div的margin会一直向上找,直到找到某个标签包括border,padding,inline content中的其中一个,然后按此div 进行margin;

    希望你眼眸有星辰,心中有山海,从此以梦为马,不负韶华
  • 相关阅读:
    Linux学习 :字符设备框架
    Linux学习 :Uboot, Kernel, 根文件系统初步分析
    Linux学习 : 裸板调试 之 配置UART
    Linux学习 : 裸板调试 之 配置使用NAND FLASH
    Linux学习 : 裸板调试 之 使用MMU
    Linux I2C总线控制器驱动(S3C2440)
    Linux I2C总线设备驱动模型分析(ov7740)
    Linux摄像头驱动学习之:(六)UVC-基本框架代码分析
    【Java】 剑指offer(25) 合并两个排序的链表
    【Java】 剑指offer(24) 反转链表
  • 原文地址:https://www.cnblogs.com/daviddd/p/12048328.html
Copyright © 2020-2023  润新知