CSS基础与选择器

CSS加载方式有几种?

  • 外部样式表(推荐)
  1. 通过<link>引入外部css<link rel="stylesheet" href="index.css">
  2. 通过@import引入样式,放入CSS中(后面一定要加分号)@import url("index.css");
  • 内部样式表
  1. 将CSS放在页面的style元素内<style>p{color: red; }</style>
  2. 内联样式(不推荐,但有时候很有用)<p style="backgroundcolor:orange; font-size: 24px;">Css</p>
  3. 属性样式(已被废弃)<img src="a.png" width=100 height=200>

@charset有什么作用?

  • 指定样式表中使用的字符编码。它必须是样式表中的第一个元素,而前面不得有任何字符。因为它不是一个嵌套语句,所以不能在@规则条件组中使用。如果有多个 @charset @规则被声明,只有第一个会被使用,而且不能在HTML元素或HTML页面的字符集相关 <style> 元素内的样式属性内使用。
  • 此 @规则 在某些 CSS 属性中使用非 ASCII 字符时非常有用,例如 content。
  • 在样式表中有多种方法去声明字符编码,浏览器会按照以下顺序尝试下边的方法(一旦找到就停止并得出结果):
  1. 文件的开头的 Unicode byte-order 字符值。
  2. 由Content-Type:HTTP header 中的 charset 属性给出的值或用于提供样式表的协议中的等效值。
  3. CSS @规则 @charset。
  4. 使用参考文档定义的字符编码: <link> 元素的 charset 属性。 该方法在 HTML5 标准中已废除,无法使用。
  5. 假设文档是 UTF-8。

@import有什么作用?如何使用?

作用

  • 用来引入外部样式放入css中,告诉 CSS 引擎引入一个外部样式表。这些规则必须先于所有其他类型的规则,@charset规则除外; 因为它不是一个嵌套语句。 用法@import 'style.css';
    用法
  1. 既可以放入CSS中,用于引入外部样式
  2. 也可以放入html的style标签内

id 选择器和 class 选择器的使用场景分别是什么?

  • 在CSS文件里书写时,ID加前缀"#";CLASS用"."
  • id一个页面只可以使用一次;class可以多次引用。
  • ID是一个标签,用于区分不同的结构和内容,就象名字,如果一个屋子有2个人同名,就会出现混淆;class是一个样式,可以套在任何结构和内容上,就象一件衣服;
  • 从概念上说就是不一样的:id是先找到结构/内容,再给它定义样式;class是先定义好一种样式,再套给多个结构/内容。
    总结如下
  1. id选择器,用于匹配特定id的元素,具有独一无二不可代替性
  2. class选择器,用于匹配class包含(不是等于)特定类的元素,描述一组元素的样式,你可以多次使用class赋值,来命名元素名

CSS选择器常见的有几种?

  • 基础选择器
    四类(*匹配所有元素,#id匹配id,.class匹配相关属性,element匹配元素)
  • 属性选择器
  • 组合选择器
    七类
  1. E,F同时匹配E或F。
  2. E F匹配E元素所有的后代元素F。
  3. E>F匹配E元素的子代F。
  4. E+F匹配E之后的相邻同级F。
  5. E~F匹配E之后的同级F。
  6. .class1.class2匹配同时具有class1和clss2属性的元素。
  7. element#id匹配element元素id的元素)**
  • 伪类选择器
  • 伪元素选择器

伪类选择器有哪些?伪元素有哪些?

伪类选择器定义:代表一个元素的另一种状态

  1. E: first-child匹配元素E的第一个子元素
  2. E:link 匹配所有未被点击的链接
  3. E: visited匹配所有已被点击的链接
  4. E:active匹配鼠标已经其上按下,还没被释放的E元素
  5. E:hover 匹配鼠标悬停器上的E元素
  6. E:focus匹配获得当前焦点的E元素
  7. E:lang(c)匹配lang属性等于c的E元素
  8. E:enabled 匹配表单中可用的元素
  9. E:disabled 匹配表单中禁用的元素
  10. checke匹配表单中被选中的radio或checkbox元素
  11. election 匹配用户当前选中的元素
    伪元素选择器
  12. E::first-line 匹配E元素内容的第一行
  13. E::first-letter 匹配E元素内容的第一个字母
  14. E::before 在E元素之前插入生成的内容
  15. E::after 在E元素之后插入生成的内容

以下选择器分别是什么意思?

  1. #header{} 匹配id为header的所有元素
  2. .header{} 匹配class为header的所有元素
  3. .header .logo{}匹配class为header的元素后代class为logo的所有元素
  4. .header.mobile{}匹配同时具有header和mobile class的所有元素
  5. .header p, .header h3{}匹配class为header后代里面的所有p元素和所有h3元素
  6. #header a:hover{} 在id为header元素下匹配a元素鼠标悬停属性
  7. #header .logo~p{} 在id为header元素下匹配与class为logo的元素处于后面同级的p元素
  8. #header .logo+p{}在id为header元素下匹配与class为logo的元素处于后面同级的p元素
  9. #header .logo p{}在id为header元素下匹配class为logo元素下的所有后代p元素
  10. #header .logo>p{}在id为header元素下匹配class为logo元素下的所有子代p元素
  11. #header p.logo{}在id为header元素下同时匹配p元素和class为logo元素这类既又关系(并列)的元素的特性
  12. #header .logo.p{}在id为header元素下同时匹配class为logo和p的元素
  13. #header input[checked]{}在id为header元素下匹配checked值的input的元素

选择器的优先级是如何计算的?

  • 优先级从高到低分别是:
  1. 在属性后面使用 !important会覆盖页面内任何位置定义的元素样式
  2. 作为style属性写在元素标签上的内联样式
  3. Id选择器
  4. 类选择器
  5. 伪类选择器
  6. 属性选择器
  7. 标签选择器
  8. 通配符选择器
  9. 浏览器自定义
    复杂场景情况下
  • 行内样式 <div style="xxx"></div>==> a
  • ID 选择器 ==> b
  • 类,属性选择器和伪类选择器==> c
  • 标签选择器、伪元素 ==> d
    abcd优先级依次降低
  • 举几个例子
  1. a{color: yellow;}特殊性值:0,0,0,1/
  2. ·div a{color: green;}特殊性值:0,0,0,2/
  3. .demo a{color: black;}特殊性值:0,0,1,1/
  4. .demo input[type="text"]{color: blue;}特殊性值:0,0,2,1/
  5. .demo *[type="text"]{color: grey;}特殊性值:0,0,2,0/
  6. #demo a{color: orange;}特殊性值:0,1,0,1/
  7. div#demo a{color: red;}特殊性值:0,1,0,2*/

运行如下代码,并对结果做出解释

<style>
 .box:first-child {
  color: red;
}
.box:first-of-type {
  background: blue;
}
.box :first-child {
  font-size: 30px;
}
.box :first-of-type {
  font-weight: bold;
}
</style>
<div class="container">
    <div class="box">div.box</div>
    <p class="box">p.box</p>
    <div class="box">div.box</div>
    <div class="box">
        <div class="item">div.item</div>
        <p class="item">p.item</p>
    </div>
    <p class="box"></p>
</div>

效果图

1.png

  1. .box:first-child {color: red;}选择class为box的父元素下第一个子元素,显示颜色为红色
  2. .box:first-of-type {background: blue;}选择class为box的父元素下的标签子元素,并且这个元素是这个同级中的第一个标签,显示背景色为蓝色
  3. .box :first-child { font-weight: bold;}选择属性为box的父元素下后代中的同级第一个元素,层层选择,使其字体加粗。
  4. .box :first-of-type { font-size: 30px;}选择属性为box的父元素下后代中的同类别第一个元素,层层选择,使其字体大小为30px,

出现下图报错可能的原因是:

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

推荐阅读更多精彩内容

  • 一、CSS加载方式 外部样式表(推荐) 通过 在html中引入CSS: 通过@import引入样式,放入CSS中,...
    我不信这样也重名阅读 351评论 0 1
  • 2018年8月23号,农历七月十三,今晚的月亮很圆,很亮;外面的空气很好,很凉爽。夏天终究是要过去了。外面还...
    旅途中的极乐鸟阅读 234评论 0 0
  • 科目二对于很多学员来讲都是最难的一项考试,其中很多细节如果不好好把握,真是说挂就挂。下面来看看科目二不注意就容易挂...
    学车技巧阅读 334评论 0 1
  • 清晰柔和的童音背后,是一个奔波劳累的父亲。仿佛是双重的面孔,却是一颗舐犊的真心;仿佛是抱怨的话语,却是在稚嫩的岁月...
    素衣烟霞阅读 309评论 0 3
  • Proguard 最近开始做新项目,需要做代码混淆。就直接从之前的项目中将proguard-rules.pro文件...
    hacket阅读 2,627评论 1 16