css基础总结

CSS的4种引入方式是:行内样式、内嵌样式、链接样式、导入样式

CSS有三大特性,分别是继承性,层叠性,优先级。

继承性是指指被包在内部的标签将拥有外部标签的样式性,即子元素可以继承父元素的属性

例如下面的代码,div中包含2个p标签,1个span标签,当给div设置字体颜色为红色时,他的子标签会继承父元素的属性,因而会显示红色。 在CSS中以text-、font-、line- 开头的属性都是可以继承的。

<!DOCTYPE html>  
<html>  
<head lang="en">  
    <meta charset="UTF-8">  
    <title></title>  
    <style>  
        div {  
            color: red;  
        }  
    </style>  
</head>  
<body>  
    <div>  
        <p>雪梨</p>  
        <p>橙子</p>  
        <span>西瓜</span>  
    </div>  
</body>  
</html>  

a 标签的字体颜色不能被继承,例如将上面代码的div标签中代码改为如下的代码后,a标签的字体颜色是不会改变的,通过页面的F12可以查看得到,a标签是有一个默认的  color: -webkit-link;字体颜色属性,所以给父元素设置颜色是不能改变a标签字体的颜色

<div>  
    <p>苹果</p>  
    <p>香蕉</p>  
    <span>葡萄</span>  
    <a href="#">这是a标签</a>  
</div>

 h标签字体的大下也是不能被继承的,如下代码给父元素在设置一个字体属性20px,在div中添加一个h2标签,在浏览器中可以发现h2标签中的字体大小不会改变,因为h2标签中也有一个默认的默认的font-size: 1.5em;字体大小属性。

<!DOCTYPE html>  
<html>  
<head lang="en">  
    <meta charset="UTF-8">  
    <title></title>  
    <style>  
        div {  
            color: red;  
            font-size: 20px;  
        }  
    </style>  
</head>  
<body>  
    <div>  
        <p>苹果</p>  
        <p>香蕉</p>  
        <span>葡萄</span>  
        <a href="#">这是a标签</a>  
        <h2>这是h2标签</h2>  
    </div>  
</body>  
</html>  

div 标签的高度如果不设置由内容来决定(没有内容高度为0),宽度默认由父元素继承过来,下面的代码就很好的演示了div的宽高,在每个div标签后面添加了一个br标签来强制换行,因为如果不使用br标签来强制换行的话,div就会紧紧挨着一起,看不不出来div的高度,第一个div因为没有内容,所以在浏览器上不显示出来,而第二div里面添加了一句话,但是高度是由里面的内容撑出来的,第三个div里面也是一句话,并且在内容当中使用了一个br标签来强制换行,这样就会发现该div的高度会比第二div的高度要高,如果继续向div标签里面添加内容,高度也会随之相应的变高。

<!DOCTYPE html>  
<html>  
<head lang="en">  
    <meta charset="UTF-8">  
    <title></title>  
    <style>  
        div {  
            background-color: red;  
        }  
    </style>  
</head>  
<body>  
    <div></div>  
    <br/>  
    <div>这是div标签</div>  
    <br/>  
    <div>这也是<br/>div标签</div>  
</body>  
</html>  

层叠性指的是上级标签的样式会自动继承到其所有下级标签,如针对<body>设置的标签选择器所设的字体样式会自动应用到<body>下的<p>中,除非<p>重写了相关样式将其覆盖。

样式的优先级

多重样式(Multiple Styles):如果外部样式、内部样式和内联样式同时应用于同一个元素,就是使多重样式的情况。

一般情况下,优先级如下:

(外部样式)External style sheet <(内部样式)Internal style sheet <(内联样式)Inline style

有个例外的情况,就是如果外部样式放在内部样式的后面,则外部样式将覆盖内部样式。

 

A 选择器都有一个权值,权值越大越优先;

 

B 当权值相等时,后出现的样式表设置要优于先出现的样式表设置;

 

C 创作者的规则高于浏览者:即网页编写者设置的CSS 样式的优先权高于浏览器所设置的样式;

 

D 继承的CSS 样式不如后来指定的CSS 样式;

 

E 在同一组属性设置中标有“!important”规则的优先级最大

 

1.行内样式

最直接最简单的一种,直接对HTML标签使用style="",例如:

<p style="color:#F00; "></p>

缺点:HTML页面不纯净,文件体积大,不利于蜘蛛爬行,后期维护不方便。

2.内嵌样式

内嵌样式就是将CSS代码写在<head></head>之间,并且用<style></style>进行声明,例如:

<style type="text/css">

body,div,a,img,p{margin:0; padding:0;}

</style>

优缺点:页面使用公共CSS代码,也是每个页面都要定义的,如果一个网站有很多页面,每个文件都会变大,后期维护难度也大,如果文件很少,CSS代码也不多,这种样式还是很不错的。

3.链接样式

链接样式是使用频率最高,最实用的样式,只需要在<head></head>之间加上<link…/>就可以了,如下:

<link type="text/css" rel="stylesheet" href="style.css" />

优缺点:实现了页面框架代码与表现CSS代码的完全分离,使得前期制作和后期维护都十分方便

4.导入样式(不建议使用)

导入样式和链接样式比较相似,采用@import样式导入CSS样式表,在HTML初始化时,会被导入到HTML或者CSS文件中,成为文件的一部分,类似第二种内嵌样式。

@import在html中使用,如下:

<style type="text/css">
@import url(style.css);
</style>

@import在CSS中使用,如下:

@import url(style.css);

第二:四种CSS引入方式的优先级

1.就近原则

2.理论上:行内>内嵌>链接>导入

3.实际上:内嵌、链接、导入在同一个文件头部,谁离相应的代码近,谁的优先级高。

posted @ 2017-09-06 17:31  蓝色帅-橙子哥  阅读(275)  评论(0编辑  收藏  举报