CSS学习总结

学习如逆水乘舟,不进则退。

** 前言 **

  • 前面学习的HTML主要是用来给文本添加语义的,而一个完整的网页要想呈现出界面样式,还需要用CSS来修改样式,才能达到美观的UI效果。下面就是这段时间习CSS的一个小总结。

一、CSS基础知识

  • 概念

    • W3C的介绍中介绍 CSS 指层叠样式表 (Cascading Style Sheets), 样式定义如何显示 HTML 元素。浏览器将内容装在一个元素里面(一个盒子),然后CSS通过调整盒子背景、大小、颜色、样式、内容的文本以及字体的大小,最后展示出我们需要的排版样式。

    • CSS在使用的过程中,有很多的参数需要记忆。特别是还有很多的浏览器的有自己独有的参数,很难记忆。只有多使用,多查文档。用的时候可以到w3c.com中查询

  • CSS格式:

<style type="text/css">
       标签名称{
           属性名称: 属性对应的值;
           ...
       }
</style> 

注意:一定要用一对style标签包裹起来 而且必须要写在head标签之内 titile标签的下面。

二、CSS的属性

常用属性

三、CSS的选择器

  • ** 1. 标签选择器 **

    • 作用:根据指定的标签名称, 在当前界面中找到所有该名称的标签, 然后设置属性。

    • 格式:

    标签名称{
    属性:值;
    }

    例如:

    p{
        color:red;
        font-size:14px;
    }
    
  • ** 2. id选择器 **

    • 作用:根据指定的id名称找到对应的标签, 然后设置属性。

    • 格式:

    #id名称{
        属性:值;
    }
    
    • 注意点:同一个界面中的id名称是唯一的,不能有同名的id。
  • ** 3. 类选择器 **

    • 作用:根据指定的类名称找到对应的标签, 然后设置属性。

    • 格式:

    .类名{
    属性:值;
    }

    • 在HTML中一个标签可以同时绑定多个类名。

    例如:

    < 标签名称 class="类名1 类名2 ... ">
    
    • 注意点:同一个界面中的类名称可以重复。
  • ** 4. 后代选择器 **

    • 作用:找到指定标签的所有特定的后代标签, 设置属性。

    • 格式:

    标签名称1 标签名称2 标签名称3 ...{
    属性:值;
    }

  • ** 5. 子元素选择器 **

    • 作用:找到指定标签中所有特定的直接子元素, 然后设置属性。

    • 格式:

    标签名称1>标签名称2{
    属性:值;

    }

  • ** 6. 交集选择器 **

    • 作用:给所有选择器选中的标签中, 相交的那部分标签设置属性。

    • 格式:

    选择器1选择器2{
    属性:值;
    }

  • ** 7. 并集选择器 **

    • 作用:给所有选择器选中的标签设置属性。

    • 格式:

    选择器1,选择器2{
    属性:值;
    }

  • ** 8. 兄弟选择器 **

    • ** 8.1 相邻兄弟选择器 **

      • 作用:给指定标签后面紧跟的那个标签设置属性。

      • 格式:

      选择器1+选择器2{
      属性:值;
      }

    • ** 8.2 通用兄弟选择器 **

      • 作用:给指定选择器后面的所有选择器选中的所有标签设置属性。

      • 格式:

      选择器1~选择器2{
      属性:值;
      }

  • ** 9. 序选择器 **

    • 作用:选中指定的任意标签然后设置属性。

    • ** 9.1 同级别的第几个 **

      • 格式:

      选择器:xxx-child{
      属性:值;
      }

      • 列举3个常用取值

      :first-child 选中第一个标签
      :last-child 选中最后一个标签
      :nth-child(n) 选中第n个标签

    • ** 9.2 同级别同类型的第几个 **

      • 格式:

      选择器:xxx-of-type{
      属性:值;
      }

  • ** 10. 属性选择器 **

    • 作用:根据指定的属性名称找到对应的标签, 然后设置属性。

    • 格式用法如下:

    input[type=password]{
    
        做某些操作
    }
    
  • ** 11. 通配符选择器 **

    • 作用: 给当前界面上所有的标签设置属性。

    • 格式:

    *{
    属性:值;
    }

  • ** 12. 伪类和伪元素 **

    • 作用:在特定的事件触发的时候,调用的CSS的样式,用:号来表示。

    • 伪类

    • 伪元素

四、CSS的三大特性

  • ** 继承性 **

只给HTML父项设置格式,其所包含的子项也会有相应的属性,要想单个控制,那么就给每个项加class属性,实现一对一控制。

** 注意点:**

  1. 并不是所有的属性都可以继承, 只有以color/font-/text-/line-开头的属性才可以继承。
  1. 在CSS的继承中不仅仅是儿子可以继承, 只要是后代都可以继承。
  2. 继承性中的特殊性:
- a标签的文字颜色和下划线是不能继承的.
- h标签的文字大小是不能继承的
  • ** 层叠性 **

    • 作用:CSS处理冲突的一种能力。只有在多个选择器选中"同一个标签", 然后又设置了"相同的属性", 才会发生层叠性

    • 优先级
      id>类>标签>通配符>继承>浏览器默认

  • ** 优先级的权重 **

    • ** 权重的计算规则 **

      1. 首先先计算选择器中有多少个id, id多的选择器优先级最高。
      2. 如果id的个数一样, 那么再看类名的个数, 类名个数多的优先级最高。
      3. 如果类名的个数一样, 那么再看标签名称的个数, 标签名称个数多的优先级最高。
      4. 如果id个数一样, 类名个数也一样, 标签名称个数也一样, 那么就不会继续往下计算了, 那么此时谁写在后面听谁的。
    • ** 注意点: **

    只有选择器是直接选中标签的才需要计算权重, 否则一定会听直接选中的选择器的

    • ** !important **
      • 作用: 用于提升某个直接选中标签的选择器中的某个属性的优先级的, 可以将被指定的属性的优先级提升为最高

      • 注意点:

        1. !important只能用于直接选中, 不能用于间接选中。
        2. 通配符选择器选中的标签也是直接选中的。
        3. !important只能提升被指定的属性的优先级, 其它的属性的优先级不会被提升。
        4. !important必须写在属性值得分号前面。
        5. !important前面的感叹号不能省略。

五、CSS的显示模式

  • 在HTML中HTML将所有的标签分为两类, 分别是容器级和文本级。

  • 在CSS中CSS也将所有的标签分为两类, 分别是块级元素和行内元素(其实还有一类, 行内块级)

  • 常见容器级标签

div h ul ol dl li dt dd ...
  • 常见文本级标签
span p buis stong em ins del ...
  • 常用的块级元素
p div h ul ol dl li dt dd ...
  • 常用的行内元素
span buis strong em ins del ...
  • ** CSS元素显示模式转换 **
display: block(块级) / inline(行内) / inline-block(行内块级);

六、CSS的盒模型

  • 盒模型指那些可以设置宽度高度/内边距/边框/外边距的标签
  • 内容的宽度和高度

    • 就是通过width/height属性设置的宽度和高度
  • 元素的宽度和高度

  • 宽度 = 左边框 + 左内边距 + width + 右内边距 + 右边框 (同理可以算出高度)

  • 增加了padding/border之后元素的宽高也会发生变化,如果增加了padding/border之后还想保持元素的宽高, 那么就必须减去内容的宽高

  • 元素空间的宽度和高度

    • 宽度 = 左外边距 + 左边框 + 左内边距 + width + 右内边距 + 右边框 + 右外边距 (同理可以算出高度)

七、透明度设置

 opacity:0   完全透明

 opacity:1   不透明

八、CSS插入样式表

  • 内嵌式
<span style="color:blue;font-size:12px">内嵌式</span>
  • 嵌入式
<style type="text/css"> span{ color:red; } </style>
  • 外链式
<link  rel="stylesheet" href="css/style.css">

九、补充

  • 多行文字垂直居中的方法

    • 父元素的高度必须要用line-height属性撑高,不能用height属性设置。

    • 文字必须得用一个 行内块元素(display:inline-block;)包裹住,然后设置这个行内块元素的 行高(line-height;)。

    • 最后还需要设置vertical-align:middle;

注意:

  • 如果一个盒子没有设置高度,那么它的高度是被它当中的 line-height撑高的,并不是被文字撑高的。
  • 如果想要vertical-align属性生效,那么元素必须是一个 inline 或者 inline-block 元素。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,725评论 1 92
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,594评论 18 139
  • 曾几何时我一度迷恋上一种美丽而且妖艳的花——曼莎珠华(彼岸花),那时候我还在追一部《地狱少女》番剧,阎魔爱的庭院里...
    夏野阅读 417评论 0 0