CSS之基础知识开篇(一)

1. CSS的组成

  • css 样式由选择符和声明组成,而声明又由属性和值组成。
选择符{属性:值}:
p{color:red;}
  • 1.1 选择符(选择器)
    选择符:又称选择器,指明网页中要应用样式规则的元素。
  • 1.2 声明(样式)
    声明:在英文大括号“{}”中的的就是声明。
    属性和值之间用英文冒号“:”分隔。当有多条声明时,中间可以英文分号“;”分隔,如下所示:
p{
font-size:12px;
color:black;
}

2. CSS的形式

从CSS 样式代码插入的形式来看基本可以分为内联式、嵌入式和外部式三种。

  • 2.1 行内式css样式
    把css代码直接写在现有的HTML标签中,如下面代码:
<p style="color:red">这里文字是红色。</p>

css样式代码要写在style=""双引号中,如果有多条css样式代码设置可以写在一起,中间用分号隔开。如下代码:

<p style="color:red;font-size:12px">这里文字是红色。</p>
  • 2.2内嵌式css样式,
    就是可以把css样式代码写在head标签里的<style type="text/css"></style>标签之间。如下面代码实现把<span>标签中的文字设置为红色:
<style type="text/css">
span{
color:red;
}
</style>
  • 2.3 外链式css样式
    写在单独的一个css文件中,外部式css样式(也可称为外联式)就是把css代码写一个单独的外部文件中,这个css样式文件以“.css”为扩展名,在<head>内(不是在<style>标签内)使用<link>标签将css样式文件链接到HTML文件内,如下面代码:
<link href="base.css" rel="stylesheet" type="text/css" />

注意:
1、css样式文件名称以有意义的英文字母命名,如 main.css。
2、rel="stylesheet" type="text/css" 是固定写法不可修改。
3、<link>标签位置一般写在<head>标签之内。
4、HTML跟CSS文件放在同一级才用 href="base.css" ,如果HTML文件放在另一个文件夹里,就要用href="../base.css" ,如果CSS文件也放在rec的文件夹里,就要用href="../rec/base.css",其中 .../表示上一级的意思,就是CSS文件相对于HTML文件存放的位置。

3. CSS选择器

页面上的标签越多,效率越低

  • 3.1 标签选择器

标签选择器其实就是html代码中的标签。如右侧代码编辑器中的<html>、<body>、<h1>、<p>、<img>。
例如下面代码:

p{font-size:12px;line-height:1.6em;}
//为p标签设置12px字号,行间距设置1.6em的样式。

3.1.1 标签选择器的特点

  • 1)所有的标签都可以是选择器:如ul、li、label、dt、dl、input

  • 2)无论包裹多少层,都能选择上,并设置相应的属性

  • 3 )具有共性,标签选择器选择上了。影响的就是所有。

  • 3.2类选择器

“.”就是类的符号。类的英语叫做class。类选择器在css样式编码中是最常用到的。
所谓的类,就是class属性,class属性和id非常相似
语法:

.类选器名称{
css样式代码;
}

3.2.1 类选择器的特点

1) class可以重复,也就是说,同一个页面上可能有多个标签同时属于某一个类;
2) 同一个标签可以同时携带多个类。

  • 3.3 ID选择器

3.3.1 ID选择器的特点

任何的HTML标签都可以有id属性。表示这个标签的名字。
这个标签的名字,可以任取,但是:
1) 只能有字母、数字、下划线
2) 必须以字母开头
3) 不能和标签同名。比如id不能叫做body、img、a

3.3.2 类和ID选择器的区别

  • 1、ID选择器为标签设置id="ID名称",而不是class="类名称"。
  • 2、ID选择符的前面是井号(#)号,而不是英文圆点(.)。
  • 3、ID选择器只能在文档中使用一次。与类选择器不同,在一个HTML文档中,ID选择器只能使用一次,而且仅一次。而类选择器可以使用多次。
  • 4、 一般类名是供CSS设置样式时使用,ID是供JS设置界面交互时使用。类名可以是重复的,但是ID只有一个,唯一的,不能重复。
  • 5、可以使用类选择器词列表方法为一个元素同时设置多个样式。我们可以为一个元素同时设多个样式,但只可以用类选择器的方法实现,ID选择器是不可以的(不能使用 ID 词列表)。
  • 3.4 包含(后代)选择器

后代选择器,就是一种平衡:共性、特性的平衡。当要把某一个部分的所有的什么,进行样式改变,就要想到后代选择器。
加入空格用于选择指定标签元素下的后辈元素,表示后代等级,是祖先结构:老----小,远-----亲:如爷爷-儿子-孙子
用法:

<style type="text/css">
    .div1 p{
             color:red;
              }
   </style>

3.4.1 后代选择器与子选择器的区别

  • 1,子选择器(child selector)仅是指它的直接后代,或者你可以理解为作用于子元素的第一代后代
  • 2,后代选择器是作用于所有子后代元素。后代选择器通过空格来进行选择,而子选择器是通过“>”进行选择。
    总结:>作用于元素的第一代后代,空格作用于元素的所有后代。
  • 3.5 子选择器( 儿子选择器)

只能选择儿子辈的选择器
IE7开始兼容,IE6不兼容。
用法:

 div>p{
       color:red;
}

div的儿子p和div的后代p的截然不同。
div>p能够选择:

<div>
        <p>我是div的儿子</p>
  </div>

不能选择:


    1.        <div>
    2.               <ul>
    3.                      <li>
    4.                             <p>我是div的重孙子</p>
    5.                      </li>
    6.               </ul>
    7.        </div>
  • 3.6 通用选择器

通用选择器是功能最强大的选择器,它使用一个通配符(*)指定,它的作用是匹配html中任意标签元素,一般网页会有默认的间距,这时就需要如下设置:

 * {
margin:0;
padding:0
}
//内边距外边距都设为0,为0的都不用加单位
  • 3.7 伪类选择符

它允许给html不存在的标签设置样式,比如说我们给html中一个标签元素的鼠标滑过的状态来设置字体颜色:
a:hover{color:red;}
这行代码会使被<a></a>标签包裹的文字内容中的“胆小如鼠”字体颜色在鼠标滑过时变为红色。

  • 3.8 序选择器(也是伪类选择器)

选择第一个或最后一个
IE8开始兼容;IE6、7都不兼容
用法:
选择第1个li: ul li:first-child
first-child:选择同级别的第一个标签;当前元素li的父元素的第一个孩子
例:如下h1:first-child可以使标题变红;但是p:first-child不能使标题1或段落1变红,因为要满足既是P的父元素的第一个孩子,还要满足这个孩子是P的p元素才能变红。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div{
            height: 60px;
        }
        div   h1:first-child{
            color: red;
        }
      /*div   p:first-child{*/
            /*color: red;*/
        /*}
        段落1不变红*/

    </style>
</head>
<body>
<div>
    <h1>标题</h1>
    <h1>标题2</h1>
    <p>段落1</p>
    <p>段落2</p>
</div>
</body>
</html>

选择最后一个1i:ul li:last-child

  • 3.9 相邻选择器(下一个兄弟选择器)

+表示选择下一个兄弟

    1.        <style type="text/css">
    2.               h3+p{
    3.                      color:red;
    4.               }
    5.        </style>
//选择上的是h3元素后面紧挨着的第一个p兄弟。
  • 3.10 并集选择器(分组选择器)

用逗号(,)就表示并集。当你想为html中多个标签元素设置同一个样式时,可以使用并集选择器。

    1. h3,li{
    2.        color:red;
    3. }
//选择H3和li的标签
  • 3.11 交集选择器

用法:
p.special
选择的元素是同时满足两个条件:必须是h3标签,又必须是special为类名的h3标签。
交集选择器没有空格。

4.继承性

  • 4.1 什么是继承性?

CSS的某些样式是具有继承性的,继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代。也就是说有一些属性,当给自己设置的时候,自己的后代都继承上了,这个就是继承性。

  • 4.2 哪些属性能继承?

color、 text-开头的、line-开头的、font-开头的。这些关于文字样式的,都能够继承; 所有关于盒子的、定位的、布局的属性都不能继承。如border:1px solid red;

  • 4.3 根据权值来判断使用哪个css样式

浏览器是根据权值来判断使用哪种css样式的,权值高的就使用哪种css样式。

下面是权值的规则:

标签的权值为1,类选择符的权值为10,ID选择符的权值最高为100。例如下面的代码:

p{color:red;} /权值为1/

p span{color:green;} /权值为1+1=2/

.warning{color:white;} /权值为10/

p span.warning{color:purple;} /权值为1+1+10=12/

footer .note p{color:yellow;} /权值为100+10+1=111/

注意:还有一个权值比较特殊--继承也有权值但很低,有的文献提出它只有0.1,所以可以理解为继承的权值最低

5. 层叠性

5.1 什么是层叠性?

  • 层叠性就是CSS处理冲突的能力.所有的权重计算,没有任何兼容问题
  • 层叠就是在html文件中对于同一个元素可以有多个css样式存在,当有相同权重的样式存在时,会根据这些css样式的前后顺序来决定,处于最后面的css样式会被应用。
  • 一个文本设置同样的样式,有的属性就需要被层叠掉哪些,我们要比较权重,分别数一下id选择器。类选择器,标签选择器的数量来确定。这三个越靠前的数目越大说明越优先,如果id选择器一样就比较类选择器的个数。

5.2 具体权重比较规则如下:

  • 1.即统计权重id的数量(100)>类的数量(10)>标签的数量(1)。可以按稀有程度来记顺序。
  • 2.如果权重也一样的话,那么写在最后面的就是网页的显示结果。
  • 3.如果不是针对本身得来的样式,而是通过继承的,那么不用比直接PASS掉,为0。
  • 4.如果属性都是继承来的都为0的话,那么看谁描述的后代选择器跟该文本比较亲,更能准确的找到,那么网页上的样式就显示谁的。
    CSS层叠式的解题思路:先看选没选中,没选中PASS,然后看权重,权重一样 谁后谁先。都没选中,谁近谁先。如果都没选中又一样近的话也要看权重,权重又一样,谁后谁先。在一样近又一样重的前提下,用!important是可以提升权重的 (并集选择器的话,两组要分别拆开比较)
    例子:
    我们来思考一个问题:如果在html文件中对于同一个元素可以有多个css样式存在并且这多个css样式具有相同权重值怎么办?好,这一小节中的层叠帮你解决这个问题。

5.3 css样式优先级:

内联样式表(标签内部)> 嵌入样式表(当前文件中)> 外部样式表(外部文件中)。

5.4 重要性

我们在做网页代码的时,有些特殊的情况需要为某些样式设置具有最高权值,怎么办?这时候我们可以使用!important来解决。
来给一个属性提高权重。这个属性的权重就是无穷大。
!important提升的是一个属性的权重,而不是一个选择器,其他属性不会优先

6. CSS的排版样式

6.1文字排版

用css样式为网页中的文字设置字体、字号、颜色等样式属性。

6.1.1文字排版--字体

font-family:"宋体";
//微软雅黑:Micrsoft Yahei
//宋体:SimSun

这里注意不要设置不常用的字体,因为如果用户本地电脑上如果没有安装你设置的字体,就会显示浏览器默认的字体。(因为用户是否可以看到你设置的字体样式取决于用户本地电脑上是否安装你设置的字体。)

6.1.2文字排版--字号、颜色

body{font-size:12px;color:#666}
//12像素是网页上能显示的最小的字体

6.1.3文字排版--加粗

p span{font-weight:bold;}

6.1.4文字排版--斜体

p a{font-style:italic;}

6.1.5文字排版--下划线

p a{text-decoration:underline;}

6.1.6文字排版--删除线

p a{text-decoration:line-through;}

6.2段落排版

6.2.1段落排版--缩进

p{text-indent:2em;}
//段落开头空两个文字,em是相对长度单位。相对于当前对象内文本的字体尺寸。也就是说首行缩进的两个空格大小是当前字体默认的尺寸大小。

6.2.2段落排版--行间距

p{line-height:1.5em;}

6.2.3段落排版--字间距(中文)

h1{
letter-spacing:50px;
}
//注意:这个样式使用在英文单词时,是设置字母与字母之间的间距。

6.2.3段落排版--字母间距(英文)

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

推荐阅读更多精彩内容

  • CSS基础 本文包括CSS基础知识选择器(重要!!!)继承、特殊性、层叠、重要性CSS格式化排版单位和值盒模型浮动...
    廖少少阅读 3,003评论 0 40
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,629评论 1 92
  • 第6章 开始学习CSS,为网页添加样式 1、认识CSS样式CSS全称为“层叠样式表 (Cascading Styl...
    夏沫xx阅读 1,006评论 1 11
  • 1.认识CSS样式CSS全称为“层叠样式表 (Cascading Style Sheets)”,它主要是用于定义H...
    静默丶阅读 5,540评论 30 95
  • 一.CSS描述 CSS全称为“层叠样式表(Cascading Style Sheets)”,它主要是用于定义HTM...
    snowy_sunny阅读 1,002评论 0 4