CSS层叠样式表(Cascading Style Sheets)

CSS简介

CSS全称为:层叠样式表(Cascading Style Sheets),主要用于定义HTML内容在浏览器内的显示样式,如文字大小,颜色,字体加粗等。
使用CSS样式通过定义某个样式,可以让不同网页位置的文字有着同一的字体效果。

语法:

p{
    color:blue;
}
  • p 选择符又称选择位,指明网页中应用样式规则的元素,其他元素不受影响
  • {} 声明,在大括号内的都是声明
  • color 属性位
  • : 属性分隔符
  • blue 值位
  • ; 多条声明时用分号分隔

例:

p{
    font-size:12px;
    color:red;
    font-weight;bold; }

注释

CSS中也有专门的注释语句
格式:

/*注释内容*/

CSS三种引入方式

内联式:直接将CSS样式写入html标签中。
<p style="color:red">字体颜色为红色</p>
嵌入式:

嵌入式写在代码中的head标签中间,集中对指定范围内的代码进行操作。

例:

<style type="text/css">
<>
p{
    color:red;
}
</style>
外部式

将CSS写一个独立的以.css文件命名的文件,使用link标签将css样式文件爱你链接到HTML文件内。

例:

<link href="base.css" rel="stylesheet" type="text/css" />
优先级:

内联式 > 嵌入式 > 外部式
离作用代码越近的方式优先级越高


选择器

选择器用来指定样式的作用范围。

css构成:

选择器{
    样式;
}
标签选择器:

直接以html中的标签作为选择器:

<style tye="text/css">
p{
    font-size:12px;
    line-height:1.6em;
}
</style>
类选择器:

类选择器在css中比较常见,首先要在普通标签中设置一个类,类名不可为中文,然后在 style 标签中添加该类名的样式。
类选择器在选择器前要加一个点”.”

例子:

<head>
<style type="text/css">
.shasha{
    color:red;
    font-size:20px;    
}
<style>
</head>
<body>
    <h1 class="shasha">标题</h1>
    <p class="shasha">第一段</p>
    <p> 第二段</p>
</body>

样式会作用于class类型为shasha的标签内容上,类名可以随便取,别用中文。

ID选择器

ID选择器与类选择器大致相同,不同的是:

  • ID选择起标签内部指定ID;
  • ID选择器前面不用点”.”,而用井号”#”
  • ID选择器只能起一个ID名;类选择器可以起多个类名。

例子:

<head>
<style type="text/css">
#shasha2{
    color:red;
    font-size:20px;    
}
<style>
</head>
<body>
    <h1 id="shasha2">标题</h1>
    <p id="shasha2">第一段</p>
    <p> 第二段</p>
</body>
子选择器:

小于这个类的子标签

例子:

.shasha>li{
    border:1px solid red;
}
所有后代标签选择器

小于号代表第一个后代,空格可以指定其所有后代标签

例子:

.shasha li{
    border:1px solid red;
}
通用选择器

通用选择器,选择html文档中的所有标签。

*{
    border:1px solid red;
    font-size:20px;
}
伪类选择符

给标签的某一个状态设定一个类,例如超链接标签可以设置为鼠标停留后显示别的颜色。
最常用的也就是a:hover

a:hover{
    color:red;
    font-size:20px;    
}
分组选择符

选择符中间以逗号隔开,等于同时给多个选择符添加样式

.shasha,#shasha2 span{
    color:red;
}

总结:

  1. 普通标签选择:以html中的标签选择
  2. 类选择器:给标签添加一个类属性,根据类属性添加样式,可以使用多个类名,多次使用
  3. ID选择器:给标签添加一个ID属性,ID必须是要唯一的,一个文档只能使用一次ID选择器。
  4. 子选择器:用小于号分隔,指其选择器中的子标签
  5. 包含选择器:用空格分隔,指其选择器中的所有后代标签
  6. 通用选择器:对html中所有的标签有效
  7. 伪类选择器:给标签的一个动作添加一个选择器
  8. 分组选择器:逗号分隔,同时作用给多个标签

CSS的继承,层叠和特殊性

继承:

继承就是指定作用的某个标签其子标签也会被样式作用到。
有些CSS是具有继承性的。

例如:

{color:red;}    color就具有继承性
{border:1px solid red;}    这个样式就没有继承性
权限:

同时给一个元素设置了不同的样式,系统默认会用那个样式呢?答:系统会用权限最高的样式。

标签额权限是相加得出来的:
标签的权限为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*/

得出的权限越大就使用这个样式

层叠

如果同一个标签使用了同样权限的样式,那会使用那个呢?答:两个会同时存在,不过后一个样式会覆盖掉前一个样式。

p{color:red;}
p{color:green;}
重要性 !important

可以给某个样式使用配置最高权限,!important。
这样它的样式就首先使用了。

p{color:red!important;}
注意:
!important要在分号“;”前面

文本样式:

字体

现在网页大部分用的是微软雅黑,或者宋体。

例:

<style type="text/css">
    body{font-family:"Microsoft Yahei"}
    body{font-family:"宋体"}
</style>
字号,颜色

字号的单位叫做像素,颜色可以用三原色调出不同的颜色#000,也可以用英文单词配色

例:

<style type="text/css">
    body{
        font-size:12px;
        color:#666;
    }
</style>

两个属性中间用分号分隔

粗体
p span{font-weight:bold;}
斜体
p a{font-style:italic;}
设置下划线
p a{text-decoration:underline;}
删除线
.oldPrice{text-decoration:line-through;}
缩进

中文书写中,每一段的要空前两个文字位。代码表达如下:

p{text-indent:2em;}
    2em标识文字的2倍大小
行间距(行高)
p{line-height:1.5em}
行高的倍数为1.5
字间距
中文字间距:
h1{letter-spacing:50px;}
英文单词间距:
h1{word-spacing:20px;}
排版:居中,居左,居右

对块状文本,图片都能操作

居中

h1{
    text-align:center;

居左

h1{
    text-align:left;
}

居右

h1{
    text-align:right;

CSS盒模型

元素分类:

html中标签元素分为3类:
块状元素;内联元素(行内元素);内联块状元素

常用块状元素

<div><p>;<h1>...<h6>;<ol>;<ul>;<dl>;<table>;<address>;<blockquote>;<from>

常用内联元素

<a>;<span>;<br>;<i>;<em>;<strong>;<label>;<q>;<var>;<cite>;<code>

常用内联块状元素

<img>;<input>
块状元素(块级标签)
  1. 每一个块状元素独占一行;
  2. 块状元素的高度,宽度,行高以及顶和底边距都可设置;
  3. 元素宽度在不设置的情况下,是他本身父容器的百分之百,除非设置一个宽度。

内联元素变块状元素

a{display:block;}
内联元素(内联标签)
  1. 与其他元素在一行;
  2. 元素的高度,宽度不可修改;
  3. 元素的宽度就是包含文字或图片的宽度,不可修改。

块级标签转内联标签:

div{display:inline;}
内联块级标签

内联块级标签是同时包含内内联标签和块级标签特征的标签
特点:
1. 和其他元素在一行
2. 元素的高度,宽度,行高以及顶和底边距都可设置

将元素设置为内联块级元素:

a{display:inline-block;}
盒子模型

我们把所有的块级标签比作一个个盒子,盒子之间可以嵌套
这里写图片描述

  • congtent与盒子之间的边距叫做内填充(padding)
  • 盒子的边框叫border
  • 盒子与盒子之间的距离叫做外边距(margin)
  • 每一个边距都有top,dottom,left,right 四个属性

盒子的边框
盒子的边框就是围绕盒子的线(border),可以设置粗细,样式和颜色,三个属性。

  1. border-style(边框样式)常见有:

    • dashed(虚线)
    • dotted(点线)
    • solid(实线)
  2. border-color(边框颜色)中的颜色可设置为十六进制颜色或英文颜色,如:
    border-color:#888;

  3. border-width(边框宽度)中的宽度也可设置:
    npx 设置为多少像素
    下面三种不常用:
    thin
    medium
    thick

例:

div{
    border-width:2px;
    border-style:solid;
    border-color:#888;
}
简写:
div{
    border:2px solid red;
}

上面的例子直接对4个边的边框进行操作,如果只需要对某一边的边框操作的话需要怎么做呢?

  • border-bottom:2px solid red; 下边框
  • border-top:2px solid red; 上边框
  • border-left:2px solid red; 左边框
  • border-right:2px solid red; 右边框

这样就可以直接对某一条边框进行操作了。

p{
    border-bottom:2px solid red;
}

盒子的宽度和高度
一个块级标签的实际宽度包含内容的宽度,左填充,右填充,左边框,右边框,左边界,右边界的所有宽度的和。
高度也是一样的,因为块级标签的默认占用父容器的百分之百。

盒模型填充(padding)
元素内容的边框之间是可以设置距离的,称之为填充(padding)。填充分为上,右,下,左(顺时针)
盒模型的填充顺序是不可以搞混的。

例子

分开写:
div{
    padding-top:20px;
    padding-right:10px;
    padding-bottom:15px;
    padding-bottom:30px;
}

简写:
div{padding:20px 10px 15px 30px;}

上右下左都是同样的像素时可以这么写:
div{padding:10px;}

上下一样,左右一样时可以这么写:
div{padding:10px 20px;}

边界(margin)
块级与块级之间的边距叫做边界,边界也是按照顺时针方向:上,右,下,左的顺序。

分开写:
div{
    margin-top:20px;
    margin-right:10px;
    margin-bottom:15px;
    margin-left:30px;
}

简写:
div{
    margin:20px 10px 15px 30px;
}

四边边距相同时:
div{margin:10px;}

上下相同,左右相同时:
div{margin:10px 20px;}

padding在边框里,margin在边框外

CSS布局模型

流动模型(Flow);浮动模型(Float);层模型(Layer)

流动模型(Flow)

Flow是网页默认的布局模型,Flow有以下几个特点:

  1. 块级标签都会在所处的包含元素内自上而下顺序眼神分布,块级模块默认的宽度为100%。
  2. 内联标签都会在所处的包含元素内从左到有水平分布显示。

浮动模型(Float)
浮动模型可以让一行中显示多个块级模块。

例子;可以让多个块级标签按照从左或从右的顺序排列。

div{
    width:200px;
    height:200px;
    border:2px red solid;
    float:left;
    float:right
}
#div1{float:left;}
#div2{float:right;}

<div id="div1">1</div>
<div id="div2">2</div>

层模型

层模型分为三种形式:

  • 绝对定位(position:absolute)
  • 相对定位(position:relative)
  • 固定定位(position:fixed)

绝对定位(position:absolute)
想为元素设置层模型中的绝对定位,需要设置position:absolute(绝对定位),这条语句使用left,right,top,bottom属性,相对于其最接近的一个具有定位属性的父块含块进行绝对定位。如果不存在这样的包含块,则相对与body元素,即相对于浏览器窗口。

例子:使div元素相对于浏览器窗口向右移动100px,向下移动50px。

div{
    width:200px;
    height:200px;
    border:2px red solid;
    position:abbsolute;
    left:100px;
    top:50px;
}
<div id="div1"></div>

相对定位(position:relative)
相对于这个块级标签原来的位置做移动。

例:

#div1{
    width:200px;
    height:200px;
    border:2px red solid;
    position:relative;
    left:100px;
    top:50px;   
}

固定定位(position:fixed)
固定定位标识,就爱那个块级标签定位在窗口试图的某个位置,就算下拉网页,其位置也不会改变,类似与购物网站的标题。

例:

#div1{
    width:200px;
    height:200px;
    border:2px red solid;
    position:fixed;
    left:100px;
    top:50px;
}

Relative与Absolute组合使用(相对定位和绝对定位组合使用)

使用此组合必要的几个条件:
1. 参考定位的元素必须是相对应定位元素的前辈元素;
2. 参考定位的元素必须加入position:relative;
3. 定位元素加入position:absolute,变可以使用top,bottom,left,right来进行偏移定位。

例:

<head>
    <style>
        .box1{
            width:200px;
            height:200px;
            position:relative;
         }
        .box2{
            position:absolute;
            top:0;
            left:0;
        }
    </style>
<head>
<body>
    <div class="box1">
        <div class="box2">相对应元素</div>
    </div>
</body>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值