CSS全称为:层叠样式表(Cascading Style Sheets),主要用于定义HTML内容在浏览器内的显示样式,如文字大小,颜色,字体加粗等。
使用CSS样式通过定义某个样式,可以让不同网页位置的文字有着同一的字体效果。
语法:
p{ color:blue; }
例:
p{ font-size:12px; color:red; font-weight;bold; }
CSS中也有专门的注释语句
格式:
/*注释内容*/
<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选择器与类选择器大致相同,不同的是:
例子:
<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; }
继承就是指定作用的某个标签其子标签也会被样式作用到。
有些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。
这样它的样式就首先使用了。
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; }
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>
内联元素变块状元素
a{display:block;}
块级标签转内联标签:
div{display:inline;}
内联块级标签是同时包含内内联标签和块级标签特征的标签
特点:
1. 和其他元素在一行
2. 元素的高度,宽度,行高以及顶和底边距都可设置
将元素设置为内联块级元素:
a{display:inline-block;}
我们把所有的块级标签比作一个个盒子,盒子之间可以嵌套
盒子的边框
盒子的边框就是围绕盒子的线(border),可以设置粗细,样式和颜色,三个属性。
border-style(边框样式)常见有:
border-color(边框颜色)中的颜色可设置为十六进制颜色或英文颜色,如:
border-color:#888;
border-width(边框宽度)中的宽度也可设置:
npx 设置为多少像素
下面三种不常用:
thin
medium
thick
例:
div{ border-width:2px; border-style:solid; border-color:#888; }
简写:
div{ border:2px solid red; }
上面的例子直接对4个边的边框进行操作,如果只需要对某一边的边框操作的话需要怎么做呢?
这样就可以直接对某一条边框进行操作了。
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在边框外
流动模型(Flow);浮动模型(Float);层模型(Layer)
流动模型(Flow)
Flow是网页默认的布局模型,Flow有以下几个特点:
浮动模型(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: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>