目录
CSS概述
CSS ( Cascading Style Sheet,层叠样式表单),一种用于(增强)控制网页样式并允许将样式信息与网页内容分离的一种标签性语言。
在实际开发中,CSS主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局等外观显示样式。(简单地说,css就是美化页面的。)
好处:
(1)功能强大
(2)将内容展示和样式控制分离
- 降低耦合度。(解耦)
- 让分工协作更容易
- 提高开发效率
CSS的使用
选择器{ 属性名 1:属性值 1; 属性名 2:属性值 2; 属性名 3:属性值 3; }
例:
div{ border:1px solid red; width:200px; height:100px;}
在上述代码中,div为选择器,表示 CSS样式作用的HTML对象;border、 width和height为CSS属性,分别表示边框、宽度和高度,其中 border属性有3个值,分别表示该边框为1像素、实心边框线、红色。
在CSS中颜色的取值方式有以下3种。
-
预定义的颜色值,例如red、 green、blue等。
-
十六进制形式的值,例如#FFOO00、#FF6600、#29D794等。实际工作中,十六进制形式的值是常用的定义颜色的方式。
-
RGB 代码,例如红色可以用rgb(255,0,0)或 rgb(100%,0%,0%)来表示。如果使用 RGB 代码百分比方式取颜色值.即使值为0.也不能省略百分号,必须写为0%。
CSS的引入方式
要使用CSS修饰网页,就需要在HTML文档中引入CSS。
CSS提供了4种引入方式,分别是行内式、内嵌式、外链式和导入式。
1.行内式
行内式也称内联式。
<标签名 style="属性名 1:属性值 1;属性名 2:属性值 2;属性名 3:属性值 3;">内容</标签名>
例:
<div style="font-size: 40px; color: gray">css,我来了!</div>
<h1 style="font-size: 20px; color: blue">一级标题</h1>
行内式是通过标签属性来控制样式的,没有做到结构与样式分离,不推荐。
2.内嵌式
内嵌式是将CSS代码写在HTML文档的<head>
头部标签中,并用<style>
标签定义。
<style type="text/css">
选择器{
属性名 1:属性值 1;
属性名 2:属性值 2;
属性名 3:属性值 3;
}
</style>
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">
div{
border: 1px solid #CCCCCC;
font-size: 30px;
color: purple;
width:300px;
height: 80px;
}
</style>
</head>
<body>
<div>css,我来了!</div>
</body>
</html>
仅设计一个页面时,内嵌式是个不错的选择,但设计网站时,不建议使用内嵌式,因为它不能充分发挥CSS代码的重用优势。
3.外链式
外链式也叫链入式,是将所有样式放在一个或多个以.css
为扩展名的外部样式表文件中,通过<link>
标签将外部样式表文件链接到HTML文件中。
<head>
<link href="CSS文件的路径" type="text/css" rel="stylesheet" />
</head>
-
href:定义所链接外部样式表文件的地址,可以是相对路径,也可以是绝对路径。
-
type:定义所链接文档的类型,这里需要指定为“textcss”,表示链接的外部文件为CSS。
-
rel:定义当前文档与被链接文档之间的关系,这里需要指定为“stylesheet”,表示被链接的文档是一个样式表文件。
新建一个style.css
div{
font-size: 50px;
color: blue;
}
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link href="style.css" type="text/css" rel="stylesheet">
</head>
<body>
<div>css,我来了!</div>
</body>
</html>
实际开发中,外链式是使用频率最高、最实用的引入方式,它将HTML代码与CSS代码分离为两个或多个文件,实现了结构与样式分离。
同一个CSS文件可以被不同的HTML页面链接使用,同时一个HTML页面也可以通过多个<link>
标签链接多个CSS样式表,提高了网页开发的工作效率。
4.导入式
导入式与外链式相同,都是通过引入外部样式表文件来实现的。
导入式,在<style>
标签的开头使用@import语句。
<style type="text/css">
@import url(CSS文件路径); <!--@import “CSS文件路径”;-->
...
</style>
例:
<style type="text/css">
@import "style.css";
</style>
<style type="text/css">
@import url(style.css);
</style>
导入式加载较慢,大多数网站更偏向采用外链式CSS。
CSS选择器
选择器:筛选具有相似特征的元素。
1.通配符选择器
* {
属性名 1:属性值 1;
属性名 2:属性值 2;
属性名 3:属性值 3;
}
2.基本选择器
- 元素选择器
如果多个相同的元素设置相同的样式,使用此种方式最为合适。
元素名{
属性名 1:属性值 1;
属性名 2:属性值 2;
属性名 3:属性值 3;
}
- 类选择器
对多个元素设置相同的样式,此时使用类选择器比较合适。
.类名{
属性名 1:属性值 1;
属性名 2:属性值 2;
属性名 3:属性值 3;
}
- id 选择器
id 要保证唯一。
#id {
属性名 1:属性值 1;
属性名 2:属性值 2;
属性名 3:属性值 3;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>基本选择器</title>
<style type="text/css">
/*通配符选择器*/
*{
font-size: 30px;
color: antiquewhite;
}
/*元素选择器*/
div{
font-size: 30px;
color: aqua;
}
/*id选择器,注意,id要唯一*/
#div1{
font-size: 50px;
}
/*类选择器*/
.div2{
color: brown;
}
</style>
</head>
<body>
<div id="div1">css1</div>
<div class="div2" >css2</div>
<p>css3</p>
</body>
</html>
3.其他选择器
- 层级选择器
父标签 后代标签{属性1:属性值1; 属性2:属性值2;}
- 属性选择器
标签名[标签属性=’标签属性值’] {属性1:属性值1; 属性2:属性值2;}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>其他选择器</title>
<style>
/*层级选择器*/
/*父标签 后代标签{属性1:属性值1; 属性2:属性值2;}*/
div p {
color: red;
}
/*属性选择器*/
/*标签名[标签属性=’标签属性值’] {属性1:属性值1; 属性2:属性值2;}*/
input[type='text']{
background-color: red;
}
input[type='password']{
background-color: green;
}
</style>
</head>
<body>
<div>
css1,我来了。
<p>css2,我来了。</p>
</div>
<p>css3,我来了。</p>
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="pwd">
</body>
</html>
CSS常用属性
文本、字体
- font-size:字体大小
- color:颜色
- text-align:对齐方式
- line-height:行高
- …
background背景
- background-color:背景颜色
- background-size:背景大小
- background-image: url(“图像地址”) 背景图片
- …
border边框
- border-radius:边框圆角
- …
尺寸
- width:宽度
- height:高度
盒子模型
-
Margin - 清除边框区域。Margin没有背景颜色,它是完全透明的。
- 可能的值
- auto
- length
- %
- margin:简写属性
- margin-top:上外边距
- margin-bottom:下外边距
- margin-left:左外边距
- margin-right:右外边距
- 可能的值
-
Border - 边框周围的填充和内容。边框是受到盒子的背景颜色影响
-
Padding - 清除内容周围的区域。会受到框中填充的背景颜色影响
- 可能的值
- length
- %
- padding:简写属性
- padding-top:上填充
- padding-bottom:下填充
- padding-right:右填充
- padding-left:左填充
- 可能的值
-
element - 盒子的内容,显示文本和图像
`<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>盒子模型</title>
<style>
div{
border: 2px solid red;
width: 200px;
}
.div1{
width: 100px;
height: 100px;
margin: 40px;
}
.div2{
width: 200px;
height: 20px;
padding: 70px;
}
</style>
</head>
<body>
<div class="div2">
2222
<div class="div1">1111</div>
</div>
</body>
</html>`
浮动-float
元素可以围绕其他元素向左或向右被推动,对元素的布局有影响。
属性:
-
clear --> 清除浮动
值:- left
- right
- both
- none
- inherit
-
float --> 浮动
值:- left
- right
- none
- inherit
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>浮动</title>
<style>
div{
border: 2px solid red;
width: 200px;
}
.div1{
float: left;
}
.div2{
float: left;
}
.div3{
float: right;
}
</style>
</head>
<body>
<div class="div1">aaaa</div>
<div class="div2">bbbbb</div>
<div class="div3">cccc</div>
</body>
</html>
案例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册页面</title>
<link href="css/style.css" type="text/css" rel="stylesheet" >
</head>
<body>
<div class="rg_layout">
<div class="rg_left">
<p id="left_re1">新用户注册</p>
<p id="left_re2">USER REGISTER</p>
</div>
<div class="rg_center">
<div class="rg_form">
<!--定义表单 form-->
<form action="#" method="post">
<table>
<tr>
<td class="td_left"><label for="username">用户名</label></td>
<td class="td_right"><input type="text" name="username" id="username" placeholder="请输入用户名"></td>
</tr>
<tr>
<td class="td_left"><label for="password">密码</label></td>
<td class="td_right"><input type="password" name="password" id="password" placeholder="请输入密码">
</td>
</tr>
<tr>
<td class="td_left"><label for="email">Email</label></td>
<td class="td_right"><input type="email" name="email" id="email" placeholder="请输入邮箱"></td>
</tr>
<tr>
<td class="td_left"><label for="name">姓名</label></td>
<td class="td_right"><input type="text" name="name" id="name" placeholder="请输入姓名"></td>
</tr>
<tr>
<td class="td_left"><label for="tel">手机号</label></td>
<td class="td_right"><input type="text" name="tel" id="tel" placeholder="请输入手机号"></td>
</tr>
<tr>
<td class="td_left"><label>性别</label></td>
<td class="td_right">
<input type="radio" name="gender" value="male"> 男
<input type="radio" name="gender" value="female"> 女
</td>
</tr>
<tr>
<td class="td_left"><label for="birthday">出生日期</label></td>
<td class="td_right"><input type="date" name="birthday" id="birthday" placeholder="请输入出生日期">
</td>
</tr>
<tr>
<td class="td_left"><label for="checkcode">验证码</label></td>
<td class="td_right"><input type="text" name="checkcode" id="checkcode" placeholder="请输入验证码">
<img id="img_check" src="img/verify_code.jpg">
</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" id="btn_sub" value="注册"></td>
</tr>
</table>
</form>
</div>
</div>
<div class="rg_right">
<p>已有账号?<a href="#">立即登录</a></p>
</div>
</div>
</body>
</html>
/*设置背景图片*/
body{
background: url("../img/register_bg.png") no-repeat center;/* 居中 */
padding-top: 25px;
}
/*设置表单大小和居中*/
.rg_layout {
width: 900px;
height: 500px;
border: 8px solid #EEEEEE;
background-color: white;
/* 设置居中*/
margin: auto;
}
/* 设置浮动*/
.rg_left{
float: left;
margin: 15px;
}
.rg_center{
float: left;
}
.rg_right{
float: right;
margin: 15px;
}
/* 设置左边的字体*/
#left_re1{
color: #FFD026;
font-size: 20px;
}
#left_re2{
color: #A6A6A6;
font-size: 20px;
}
/*设置右侧字体*/
.rg_right p{
font-size:15px;
}
.rg_right p a{
color: pink;
}
/*设置中间表单*/
.td_left{
width: 100px;
text-align: right;
height: 45px;
}
.td_right{
padding-left: 50px;
}
/*设置输入框*/
#username,#password,#email,#name,#tel,#birthday,#checkcode{
width: 251px;
height: 32px;
border: 1px solid #A6A6A6;
/* 设置圆角*/
border-radius: 5px;
padding-left: 10px;
}
/*设置验证码*/
#checkcode{
width: 110px;
}
#img_check{
height: 32px;
/*设置上下居中*/
vertical-align: middle;
}
/*设置注册按钮*/
#btn_sub{
width: 150px;
height: 40px;
background-color: #FFD026;
border: 1px solid #FFD026;
}