CSS3入门
-
Cascading Style Sheet 层叠级联样式表
-
CSS:表现(美化网页)
-
字体,颜色,边距,高度,宽度,背景图片,网页定位,网页浮动...
CSS发展史
-
CSS1.0 -- 基本样式,现在用标签就能实现
-
CSS2.0 -- DIV(块)+CSS,提出了HTML 和 CSS结构分离的思想,网也变得简单,利于SEO
-
CSS3.0 -- 浮动,定位
-
CSS2.1 -- 圆角边框,阴影,动画... 会有浏览器兼容性问题
-
练习模式:
快速入门
-
style
或者(建议使用下面这种方式):
h1{
color:red;
}
-
效果:
-
CSS的优势
-
内容和表现分离
-
网页结构表现统一,可以实现复用
-
样式十分丰富
-
建议使用独立于HTML的CSS文件
-
利用SEO,容易被搜索引擎收录!
-
CSS的3种导入方式
-
行内样式
<h1 style="color:red">我是标题h1>
-
内部样式
<style>
h1{
color:green;
}
style>
-
外部样式
/* 外部样式 */
h1{
color:yello;
}
-
行内样式优先级最高,然后内部样式和外部样式优先级一样并尊崇就近原则也就是最后定的样式为依据。
-
拓展外部样式:
-
链接式:全部弄完渲染好了再呈现 -- 属于html标签
<link rel="stylesheet" href="css/style.css">
-
导入式:缺点 -- 打开网页先是骨架,最后才去渲染 -- CSS2.1特有的
<style>
@import url("css/style.css")
style> -
选择器
-
作用:选择页面上的某一个或者某一类元素
-
基本选择器
-
标签选择器 -- 选择一类标签
<style>
/*标签选择器
* 会选择到页面上所有的这个标签的元素
* 弊端,想只让一个h1改变样式,另一个不变。做不到
*/
h1{
color:#a13d30;
}
style>
?
<h1>学Javah1>
<h1>学Javah1>-
类选择器 class -- 选择所有class属性一致的标签,跨标签
<style>
/*类选择器的格式 .class的名称{}
* 好处,可以多个标签归类,是同一个class。可以复用。
*/
.qinjiang{
color: #3748ff;
}
.kuangshen{
color: #a24fff;
}
style>
?
<h1 calss="qinjiang">标题1h1>
<h1 calss="kuangshen">标题2h1>
<p calss="qinjiang">标题3p>-
id选择器 -- 全局唯一!
<style>
/*id选择器格式, #id名称{}
* id必须保证全局唯一,不可复用!
* 不遵循就近原则,固定的:id选择器>class选择器>标签选择器
*/
#qinjiang{
color:#ff008a;
}
style>
?
<h1 id="qinjiang" calss="style1">标题1h1>
<h1 calss="style1">标题2h1>
<h1 calss="style1">标题3h1>
<h1 calss="qinjiang">标题4h1>
<h1 calss="qinjiang">标题5h1> -
-
优先级:id选择器 > class选择器 > 标签选择器
-
层次选择器
-
后代选择器
-
在某个元素的后面 祖爷爷 爷爷 爸爸 你
/* 后代选择器 */
body p{
background: red;
}-
效果:
-
-
子选择器
-
只有一代,儿子
/* 子选择器 */
body>p{
background: red;
}-
效果:
-
-
相邻兄弟选择器
-
同辈 -- 对下不对上
-
只有一个
/* 兄弟选择器 */
.actiove + p{
background: #a13d30;
}-
效果:
-
-
通用选择器
-
当前选中元素的向下的所有兄弟元素
-
对下不对上
/* 通用选择器 */
.actiove~p{
background: #02ff00;
}-
效果:
-
-
结构伪类选择器
-
简单的
<style>
/* ul的第一个元素 */
ul li:first-child{
background: #02ff00;
}
/* ul的最后一个元素 */
ul li:last-child{
background: #ff4832;
}
style>
?
?
<p>p1p>
<p>p2p>
<p>p3p>
<ul>
<li>li1li>
<li>li2li>
<li>li3li>
ul>
-
效果:
-
复杂的 -- 认个眼熟就好
/* 选中 p1:定位到父元素,选择当前的第一个元素
* 选中当前p元素的父级元素,选中父级元素的第一个,并且是当前元素才生效!
* 第一步定位:p的父元素(p的第一个作用)
* 第二步定位父元素下的第一个元素(数字的作用)
* 第三步判断如果类型是p成立(p的第二个作用)
* 第四步产生结果改变样式;
* 会被其他标签阻碍
*/
/* 找到父类当前元素的第几个 -- 不分类型*/
p:nth-child(1){
background: #2700ff;
}
?
/* 选中父元素下的类型为p元素的第二个 不会被其他标签阻碍,更准定位!*/
/* 找到当前父类元素下的第几个类型 -- 分类型*/
p:nth-of-type(2){
background: yellow;
}
-
效果:
-
伪类选择器
-
hover:鼠标移到该区域才显示的属性
-
a:hover{
background:yellow;
}
属性选择器(常用)
-
id + class 结合~
<style>
.demo a{
float: left; /* 向左浮动 */
dispaly: block;
height: 50px;
width: 50px;
border-radius: 10px; /* 圆角矩形 */
background: #2700ff;
text-aligh: center; /* 文字居中 */
color: gainsbore;
text-decoration: none; /* 去文字下划线 */
margin-right: 5px; /* 每个元素向右偏移 */
font:bold 20px/50px Arial; /* 50px是行高 */
}
/* 存在id属性的元素 a[]{}
* 两种方式:1.属性名,2.属性名=属性值(正则)
*/
a[i]{
background: yellow;
}
/* id=firts的元素 */
a[id=first]{
background: yellow;
}
/* class中有links的元素
=是绝对等于
*=是包含这个元素
*/
a[class*="links"]{
background: yellow;
}
/* 选中href中以http开头的元素
^=以这个开头
*/
a[href^=http]{
background: yellow;
}
/* 选中href中以pdf结尾的元素
$=以这个结尾
*/
a[href^=pdf]{
background: yellow;
}
style>
?
<p class="demo">
<a href="http://www.baidu.com" class="links item first" id="first">1a>
<a href="http://blog.kuangstudy.com" class="links item active" target="_blank" title="test">2a>
<a href="images/123.html" class="links item">3a>
<a href="images/123.png" class="links item">4a>
<a href="images/123.jpg" class="links item">5a>
<a href="abc" class="links item">6a>
<a href="/a.pdf" class="links item">7a>
<a href="/abc.pdf" class="links item">8a>
<a href="abc.doc" class="links item">9a>
<