前端学习笔记-CSS系列(一)选择器

CSS简介

CSS(Cascading Style Sheets)是一种用来表现HTML标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
嗯,简单的说,就是用来美化网页的。


使用方法

有三种方法可以在站点网页上使用样式表:

  1. 外联式Linking(也叫外部样式):将网页链接到外部样式表。
  2. 嵌入式Embedding(也叫内页样式):在网页上创建嵌入的样式表。
  3. 内联式Inline(也叫行内样式):应用内嵌样式到各个网页元素。
外部样式表

当样式需要被应用到很多页面的时候,外部样式表将是理想的选择。使用外部样式表,你就可以通过更改一个文件来改变整个站点的外观。

    <head>
    <link rel="stylesheet" type="text/css" href="index.css">
    </head>
内部样式表

当单个文件需要特别样式时,就可以使用内部样式表。你可以在 head 部分通过 <style> 标签定义内部样式表。

    <head>
    <style type="text/css"> 
    body {background-color: red} 
    p {margin-left: 20px}
    </style>
    </head>
内联样式

当特殊的样式需要应用到个别元素时,就可以使用内联样式。 使用内联样式的方法是在相关的标签中使用样式属性。样式属性可以包含任何 CSS 属性。以下实例显示出如何改变段落的颜色和左外边距。

<p style="color: red; margin-left: 20px"> 
This is a paragraph 
</p>

基本形式

那我们看到CSS选择器的基本形式是这样的

selector(选择器){
    property1:value;(属性声明)
    property2:value;
}

由一个选择器表达式和括号内的属性字典组成

兼容模式

目前的主流浏览器有很多种,那么我们为了兼容不同的浏览器,就要知道浏览器的私有属性

  • Chrome,Safari
    -webkit
  • Firebox
    -moz
  • IE
    -ms
  • Opera
    -o
例子
  .pic{
    -webkit-transform:rotate(-3deg);
    -otransform:rotate(-3deg);
    -moz-transform:rotate(-3deg);
    -ms-transform:rotate(-3deg);
    transform:rotate(-3deg);
  }

语法

  • 属性值语法
    margin:[<length>|<percentage>|auto]{1,4}
    上面这个表达式由基本元素、组合符号、数量符号三部分组成。下面我们将逐步对这三个部分进行详解。

  • 基本元素组成
    1.关键字 auto solid bold
    2.基本类型 length percentage color
    3.其他类型 'padding-width' color-stop

  • 组合符号
    1.空格
    <‘font-size’> <font-family>
    必须按顺序输入相对属性值
    E.g
    -12px arial
    2.&& 与空格相似 不过可以无序
    3.|| 分割的基本属性至少出现一个
    4.| 分割的属性只能出现一个
    5.[] 属性分组

  • 数量符号
    1.默认只能出现一次
    2.+ 1次或多次
    3.? 表示属性可选
    4.{int,int} 第一个数字表示最少出现次数 第二个数字表示最多出现次数
    5.* 可以出现 0次1次或者多次
    6.# 出现一次或者多次 中间要用逗号隔开
    E.g
    1
    padding-top:<length>|<percentage>

        true padding-top:1px
        false padding-top:1em 5%
        2
        border-width:[<length>|thick|medium|thin]{1,4}
    
        true border-width:2px;
        false border-width:2px small;
        3
        box-shadow:[inset?&&[<length>{2,4}&& <color>?]]#|none
    
        true box-shadow:3px 3px rgb(50%,50%,50%),red 0 0 4px inset;
        false box-shadow:inset 2px 4px,2px blue;
    
  • @规则语法
    @标识符 xxx:
    @标识符 xxx{}
    常用@规则
    @media 响应式布局
    @keyframes 用来描述css动画中间步骤
    @font-face 引入外部字体
    不常用
    @import
    @charset
    @namespace
    @page
    @supports
    @document

选择器

选择器主要分

  • 简单选择器
  • 伪元素选择器
  • 组合选择器
简单选择器
  1. 标签选择器
    基本形式
    tag{color:bule;}
  2. 类选择器
    基本形式
    .className{}
    选择器特点
  • 由字母,数字,-,_组成
  • 必须以字母开头
  • 区分大小写
  • 可以出现多次
    e.g
    <p chass = "special">
    <p class = “special stress”>
    如果想让special类为红色
    .special{color:red;}
    属性可以叠加
    .stress{font-weight:bold;}
    这样第二个p标签同时会拥有两个属性
  1. id选择器
    基本形式
    #idName{}
    选择器特点
  • 由字母,数字,-,_组成
  • 必须以#开头
  • 区分大小写
  • 只能出现一次
  1. 通配符选择器
    基本形式
    *{}
    作用:会选择页面内所有元素
  2. 属性选择器
    基本形式
    []{}
e.g

不可用状态样式
[disabled]{background:#eee}
类型是button的样式

    [type=button]{color:blue;}

类包含XXX
[class~=xxxx]{color:blue;}
链接中以#开头
[href^=“#”]{color:red;};
链接中以某形式结尾比如.pdf
[herf$=pdf]{color:red;};
链接中包含某些值
[href*=“xxxx.xxx.com”]

  1. 伪类选择器
    基本形式
    tag:statement{}
e.g

所有链接字体颜色 只能选择herf有值的
a:link{}
表示访问过的
a:visited{}
悬停
a:hover{}
点击上去
a:active{}

input标签的三种状态
    input:enabled/disabled/checked{}
列表行li标签

第一行或最后一行
li:first-child/last-child{}
偶数行
li:nth-child(even){}
表达式
li:nth-child(3n+1){}
倒数
li:nth-last-child(3n+1){}
标签下只有一个子元素的
tag:only-child{}

选择某标签类型的

表示选择第一个dd类型的
dd:first-of-type{}

简单选择器还可以进行组合

e.g

如果我们想选择img标签 jpg结尾的元素

img[src$=jpg]{}

id是banner hover状态的元素
#banner:hover{}

伪元素选择器

选择页面所有元素第一个字母

::first-letter{}  

第一行

::first-line{} 

在内容包含XX之前

::before{content:”XX”;};

之后

::after{content:”XX”};

内容被用户选中样式

::selection{} 
组合选择器
  1. 后代选择器
e.g

class="main" 所有是h2标签的元素
.main h2 {}

  1. 子选择器
    class="main" 第一个标签h2的元素
    .main>h2 {}
  2. 相邻兄弟选择器
    选中h2后相邻的p元素
    h2+p{}
  3. 通用兄弟选择器
    h2后所有的p节点
    h2~p{}
  4. 选择器分组
    h1,h2,h3{}

如有不足,请各位大大进行批评指正。谢谢

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

推荐阅读更多精彩内容

  • 转载请声明 原文链接地址 关注公众号获取更多资讯 第一部分 HTML 第一章 职业规划和前景 职业方向规划定位...
    程序员poetry阅读 16,506评论 32 459
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,721评论 1 92
  • 1.CSS 元素选择器 最常见的 CSS 选择器是元素选择器。换句话说,文档的元素就是最基本的选择器。如果设置 H...
    饥人谷_小侯阅读 847评论 0 1
  • 学习CSS的最佳网站没有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_阅读 1,017评论 0 1
  • 其实平时用得多的选择器无非也就是那么几个,时间久了,许多不常用的选择器就慢慢忘记了。为了不让自己忘记这些选择器,今...
    盛夏晚清风阅读 1,801评论 0 5