CSS
CSS Cascading Style Sheet 层叠级联样式表,美化网页,含字体、颜色、边距、高度、宽度、背景图片、浮动、定位
CSS
从版本1.0开始,到目前已经是3.0
CSS1.0 只能化一些基本的页面
CSS2.0 DIV(块)+CSS 提出了HTML与CSS结构分离的思想
CSS2.1 浮动 定位
CSS3.0 圆角 阴影 动画... 浏览器兼容性~
1.用法
html css 分离
三种导入方法
内部样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!-- <style> 规范
语法:
选择器{
声明;
}
编写css的代码-->
<!-- 内容样式分离 link链接到css-->
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>我是标题</h1>
<p>xxxx大学</p>
</body>
</html>
行内样式
<h1 style="color: red"></h1>
外部样式(常用)
在css中链接
1 连接式 <link rel="stylesheet" href="css/style.css">
2 导入式 <style>@import url("css/sytle.css") </style>
区别:
连接式是html标签,导入式是2.1引入的新功能,作为css样式功能,必须放在 <style></style>中
**同一个元素,在行内样式、内部样式表、外部样式表 都有描述,那么就会采用就近原则,谁离元素最近就使用谁**
2.选择器
标签选择器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/*
标签选择器,选择页面所有元素
*/
h1{
color: red;
background: #123145;
border-radius: 25px;
}
p{
font-size: 30px;
}
</style>
</head>
<body>
<h1>合肥工业大学</h1>
<h1>安徽大学</h1>
<h1>合肥工业大学</h1>
<p>中国科学大学</p>
</body>
</html>
类选择器
标签内定义class 使用.class的名称进行选择 可以多标签复用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!-- 类选择器格式 .class的名称{}
好处,可以多个标签同类,可以复用,同一个class可以被多个标签复用-->
<style>
.合肥工业大学{
color: red;
}
.工业大学{
color: green;
}
</style>
</head>
<body>
<h1 class="合肥工业大学"> niub</h1>
<h1 class="合肥大学"> niub</h1>
<h1 class="工业大学"> niub</h1>
</body>
</html>
id选择器
标签内使用id名称定义 使用#id的名称进行选择 全局唯一不能重复使用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!-- #id 名称 {} :id必须保证全局唯一,不能重复-->
<style>
#demo1{
color: antiquewhite;
}
#demo2{
color: brown;
}
</style>
</head>
<body>
<h1 id="qinjiang" class="qinjiang">学JAVA</h1>
<h1 class="kuangshen">学JAVA</h1>
<p id="demo1">听狂神说</p>
<p id="demo2">听狂神说</p>
<p id="demo3">听狂神说</p>
<p id="demo4">听狂神说</p>
</body>
</html>
层次选择器
后代选择器
h1 strong所有的后代全部选中
<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
h1 > strong {color:red;}
</style>
</head>
<body>
<h1>This is <strong>very</strong> <strong>very</strong> important.</h1>
<h1>This is <em>really <strong>very</strong></em> important.</h1>
</body>
</html>
子元素选择器
h1 >strong 只选择 包含有h1 strong 的第一个元素第一行
相邻兄弟选择器
li+li{}选择li li的相邻下面元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">
li +li {color:red;}
</style>
</head>
<body>
<ul><li>List item 1</li>
<li><em>List 1-4</em> <strong>List 2-1</strong> <strong>List 2-1</strong></li>
<li><em>List 1-4</em> <strong>List 2-1</strong> <strong>List 2-1</strong></li>
<li><em>List 1-4</em> <strong>List 2-1</strong></li>
<li><em>List 1-4</em></li>
</ul>
<ul><li>List item 1</li>
<li><em>List 1-4</em> <strong>List 2-1</strong> <strong>List 2-1</strong></li>
<li><em>List 1-4</em> <strong>List 2-1</strong> <strong>List 2-1</strong></li>
<li><em>List 1-4</em> <strong>List 2-1</strong></li>
<li><em>List 1-4</em></li>
</ul>
</body>
</html>
结构伪类选择器
ul li:first-child/last-child 是选择第一个或者最后一个
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!-- : 就是伪类
-->
<style>
/*ul的第一个子元素 */
ul li:first-child{
background: green;
}
/*ul的最后一个子元素 */
ul li:last-child{
background: red
}
</style>
</head>
<body>
<ul>
<li>li1</li>
<li>li2</li>
<li>li3</li>
<li>li4</li>
</ul>
</body>
</html>
属性选择器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.demo a{
float: left;
display: block;
height: 50px;
}
/*存在id属性的元素 a[id]{}
*=包含有
^=以什么开头的名称选择
$=以什么结尾的名称选择
*/
a[id]{
background: #0093E9;
}
a[href *=http]{
background: #d78dff;
}
a[href^=a]{
background: #c7051b;
}
a[href$=com]{
background: aliceblue;
}
</style>
</head>
<body>
<p class="demo">
<a href="https://www.baidu.com" class="links item first" >1</a>
<a href="a" class="links item first">2</a>
<a href="b" class="links item " id="sad">3</a>
<a href="https://www.bai.com" class="links item first">1</a>
<a href="abb" class="links item first">2</a>
</p>
</body>
</html>
3.美化网页
span标签
重点要突出的字,一般使用span标签套住
字体样式
> 颜色 :
方法一:color: red;
方法二:RGB color: #0000ff; 前面两位是 R,red, 中间是G green 最后两位是Blue 蓝色;
方法三: color: rgba(200,10,232,0.9); 前面是 R,red, 中间是G green 接着是 是Blue 蓝色 最后是A,透明度 0~1之间;
> 对齐方式: 居中 居左,居右 text-align: center;
> 首行缩进: text-indent: 2em; 2em代表两个字母
> 行高: 行高 height line-height,如果行高等于块高,单行文字上下居中,那这个时候文章就会居中
> 装饰: 下划线 text-decoration: underline; text-decoration: line-through; 中划线text-decoration: overline;下划线
> 文字图片居中:vertical-align: middle;
超链接伪类
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--下划线消除-->
<style>
a{
text-decoration:none;
color:#000000;
}
/*鼠标悬浮的颜色*/
a:hover{
color:red;
}
/*鼠标点击的颜色*/
a:active{
color:yellow;
}
/*text-shadow 阴影颜色 水平偏移 垂直偏移 阴影半径*/
#price {
text-shadow: #0093E9 10px -10px 10px;
}
</style>
</head>
<body>
<p>
<a href="">码出高校</a>
</p>
<p id="price">
价格:99
</p>
</body>
</html>
4.盒子模型使用
margin: 外边距
border: 边框 属性含 粗细 样式 颜色
padding:内边距
外边距妙用 居中 margin:0 auto 但首先外围要是一个快元素,并且块元素要有一个固定的宽度
圆角边框:border-radius: 50px 50px 0px 0px;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>box</title>
<style>
img,div{width:500px;
height:500px;
border: 2px solid white;
/*圆角边框 顺时针旋转,分别是 左上 右上 右下 左下*/
border-radius: 250px 250px 250px 250px;
/*阴影 水平阴影的位置,垂直阴影的位置 模糊的距离 阴影的颜色*/
box-shadow:1px 1px 200px gold;
}
</style>
</head>
<body>
<div>
<img src="../resources/images/12.jpeg" alt="">
</div>
</body>
</html>
5.浮动定位
块级元素 独占一行 h1-h6 p div li ....
行内元素 不独占一行 span a img storg
行内元素可以被包含在块级元素中,但是块级元素不能被包含在行内元素中
Display & Float
display: inline-block; 是块元素,但是可以内联在一行 display: block; 块元素 display: inline; 行内元素 display: none; 不可见
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>float</title>
<style>
div{
width: 100px;
height: 100px;
border: 1px solid red;
display: inline-block;
}
span {
width: 100px;
height: 100px;
border: 1px solid red;
display: inline-grid;
}
</style>
</head>
<body>
<div>div 块内元素 独占一行</div>
<span>span 行内元素 不独占一行</span>
</body>
</html>
父级边框塌陷
解决父级元素塌陷的办法
1.增加父级元素的高度 优点是简单,但是如果有了固定的高度,就会被限制
2. 在父级元素下面增加一个<div class='clear'></div> 清除浮动 .class{clear:both; margin:0; padding:0} 优点是简单,缺点是在Html中生成一个空div
3. overflow overflow:scorall ,但是一些下拉的一些场景应该避免使用
在父级元素 中增加overflow:hidden,这样就可以清除父级边框塌陷
4. 在父类上增加一个伪类,大家比较认可的,避免方法二添加一个空div的解决方案
#father:after{
content:''l
display:block
clear:both
}
6.定位
相对定位
position:relative
相当于原来的位置,进行指定的偏移,相对定位的话,它仍然在标准文档流中,原来的位置会被保留
position:relative
top:-20px
left:20px
bottom:-10px
right:20px
绝对定位
基于xxx定位,上下左右
position:absolute
right:30px
left:20px
说明
1.没有父级元素定位的前提下,绝对定位是相对于浏览器的绝对定位
2.假设父级元素存在定位,我们通常会相对于父级元素进行偏移定位,我们在实际开发都是相对于父级元素
3.在父级元素范围内进行定位
相对于父级或者浏览器的位置进行指定的偏移,绝对定位后,他不在文档标准流中,原来的位置不会保留
固定定位
position:fixed 固定定位
z-index
最低为0,最高不限制 图层的概念
opacity: 0-1 设置透明度