CSS 自学之路(一)

为文档添加样式有三种方式 :

  1. 行内样式
    <div style="width: 120px; height: 120px; background-color: red;"></div>

行内样式就是把样式写在 HTML 标签内,这种方式很少见人使用,因为这种方式下的 CSS 代码不仅不能复用,而且把 HTML 结构搞得乱七八糟。

  1. 嵌入样式

     <style>
         div{
             width: 120px;
             height: 120px;
             background-color: red;
         }
     </style>
    

嵌入样式就是在 head 标签加上 style 标签,并在里面书写样式。这种方式的缺点是仅可以在当前文件复用样式,不可以在其它文件中使用。
3.链接样式
<link rel="stylesheet" type="text/css" href="style.css">
现在普遍使用链接样式为文档添加样式,因为这样就可以实现职责分离,HTML 负责结构,CSS 负责表现。

浏览器层叠各个样式来源的顺序为 链接 -> 嵌入 -> 行内, 这意味着什么呢?比如说我们在链接样式中将 p 标签的字体大小改为 24px, 而后又在使用行内的方式将 p 标签的字体大小改为 14px, 那么用户看到的将是 14px,因为在行内定义的样式后于链接样式被浏览器读取,所以链接引入的样式会被覆盖。有人要说了,我要让链接引入的样式是用户最终看到的样式,也就是让链接引入的样式权重超过行内引入的,可以借助 !important 实现这一功能。

color: #009966 !important;

除了以上三种,我们还可以在样式表中链接其它样式表,利用 @import 指令,如以下代码:

    @import url(foo.css);

不过值得注意的是, @import 指令必须出现在样式表中其他样式之前,否则利用 @import 引入的样式将不起作用。


接下来,将通过下面这段代码对一些选择器进行讲解。

<article>
    <p>Simple text</p>
    <p>Simple text</p>
    <div>
        <p>Div text</p>
    </div>
    <p>Simple text</p>
    <p>Simple text</p>
</article>
  1. 子选择符
    article > p {
    color: #009966;
    }

    demo01.png

    可见,只有 article 的直接子类加上了颜色,而 article 孙子级别的 p 标签并没有被渲染颜色。

  2. 紧邻同胞选择符
    div + p {
    color: #009966;
    }


    可见,只有与 div 紧相邻 (而且在 div 的后面) 的 p 标签才会被应用上样式。这种选择符有一个妙用,如下所示
    nav ul li + li{
    border-left: 2px solid #00CC66;
    }
    demo04.png

    可以利用这种方式巧妙的为规避掉第一个 li 标签,也就是为第一个 li 标签之后的所有 li 加上一个左边框。

  3. 一般同胞选择符
    div ~ p {
    color: #009966;
    }

    demo03.png

    可见,只要是在 div 后面的同胞 p 元素都会被选中并渲染样式。


还有一种选择器叫做伪类选择器,这种选择器又可细化为 UI伪类 和 结构化伪类,UI伪类比如 :hover, :focus, :active 等。结构化伪类比如 :first-child, :last-child 等。在选择符中,单冒号用于表示伪类,双冒号表示伪元素。 什么是伪元素呢?伪元素就是在文档中若有实无的元素,比如 ::first-letter, ::first-line, ::before, ::after 等。

对于 CSS2 之前就已经有的伪元素,比如 :before, 单冒号和双冒号的写法实现的功能是一样的。 双冒号是 CSS3 引入的,用于区分伪类和伪元素。 如果你的网页只需要兼容 webkit, firefox, opera 等浏览器,建议采用伪元素使用双冒号的写法。 如果你不得不兼容 IE浏览器,还是用 CSS2 的单冒号写法比较安全。

下面来看看这段代码

<p>Simple text</p>
<p class="special">Simple text</p>
<p class="special" id="error">Simple text</p>
<p>Simple text</p>

为其书写样式

    p {
        color: black;
    }

    p.special{
        color: green;
    }

    p#error{
        color: red;
    }
demo05.png

结果是带有类的覆盖了原有的样式,带有 id 的覆盖了带有类的样式,这种结果的产生涉及到 "特指度" 的计算,其实也就是优先级的意思。 特指度可以利用 ICE 公式来计算,值越大则特指度越高。

            I-C-E
p           0-0-1 特指度 = 1
p.special   0-1-1 特指度 = 11
p#error     1-0-1 特指度 = 101

下面讲一个关于垂直外边距的误区,比方说下面这段代码。

<div></div>
<div></div>

div{
    width: 100px;
    height: 100px;
    border: 1px solid #386;
    margin-top: 50px;
    margin-bottom: 20px;
}

很多人可能认为这两个 div 之间的距离应该是 (50+20)px, 但其实是 50px,也就是说垂直外边距会发生重叠, 从而表现出较大的那一个。不过对于水平外边距则不存在这个问题。

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,721评论 1 92
  • CSS基础 本文包括CSS基础知识选择器(重要!!!)继承、特殊性、层叠、重要性CSS格式化排版单位和值盒模型浮动...
    廖少少阅读 3,049评论 0 40
  • 本文转载自:众成翻译译者:为之漫笔链接:http://www.zcfy.cc/article/239原文:http...
    极乐君阅读 7,319评论 1 62
  • 本课来自http://www.imooc.com/learn/9请不要用作商业用途。 HTML5 HTML介绍 H...
    PYLON阅读 3,183评论 0 5
  • 静对好书寻乐趣,闲观云物会天机。 ——雪漠 文/雪漠 不读书·心灵死亡 信息化时代,出版业的繁荣,让我们的阅读有了...
    阳焱焱阅读 277评论 0 4