Appearance
CSS 入门
CSS简介
CSS概述
Cascading Style Sheets
层叠样式表
层叠: 使用不同的添加方式,给同一个 HTML 标签添加样式,最后所有的样式都叠加到一起,共同作用于该标签
样式: 给 HTML 标签添加需要显示的效果。
CSS 通常称为 CSS 样式或层叠样式表,又称之为网页的美容师,主要用于设置 HTML 页面排版和字体
CSS快速入门
案例
- 书写 div,要求设置:字体为黄色,字体大小 100px, 边框为 1px 实线 边框颜色为红色
代码
html
<div style="color: yellow; font-size: 100px; border: 1px solid red;">
我是div
</div>
小结
属性名
和属性值
之间通过:
隔开- 多个样式之间通过
;
隔开 - 普通样式
color:red
- 样式名:样式值
- 复合样式
border:1px solid red
- 样式名:样式值 1 样式值 2 样式值 3
CSS引入方式
内嵌样式
- 在 html 标签中使用 style 属性引入 css 样式
html
<h1 style="color:red; font-size:100px;">文字</h1>
- 语法格式
html
<标签名称 style="属性名1:属性值1;属性名2:属性值2;......"></标签名称>
练习
书写 div
字体为黄色
字体大小 100px
边框为 1px 实线 边框颜色为红色
参考代码
html
<!--
书写div
字体为黄色
字体大小100px
边框为 1px 实线 边框颜色为红色
-->
<div style="color: yellow; font-size: 100px; border: 1px solid red;">
我是div
</div>
优缺点:
优点:书写方便 可读性强(直观的看到标签的样式是什么)
缺点:没有复用性
内部样式【重点】
在 html 中的 head 标签中 使用
<style>
标签引入 css 样式语法格式
html
<head>
<style>
标签名称 {
样式名1:样式值1;
样式名2:样式值2;
}
</style>
</head>
练习
书写多个 div
字体为红色
字体大小为 100px
背景色为黄色
边框为 1px 实线 边框颜色为蓝色
参考代码
html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
div{
color: red;
font-size: 100px;
background: yellow;
border: 1px solid blue;
}
</style>
</head>
<body>
<!--
书写多个div
字体为红色
字体大小为100px
背景色为黄色
边框为 1px 实线 边框颜色为蓝色
-->
<div>我是div</div>
<div>我是div</div>
<div>我是div</div>
<div>我是div</div>
<div>我是div</div>
<div>我是div</div>
</body>
</html>
优缺点
优点:具有一定复用性 只能本 html 页面中可以使用样式
缺点:可读性差
外部样式【重点】
将 css 样式封装成一个单独的 css 文件,在 html 中进行引入
语法格式
html
<link rel="stylesheet" type="text/css" href="css文件路径" />
练习
书写多个 div 将 css 样式独立封装到 css 文件 字体为红色 字体大小为 100px 背景色为黄色 边框为 1px 实线 边框颜色为蓝色
参考代码
html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="../css/1.css" />
</head>
<body>
<!--
书写多个html; 多个div
字体为红色
字体大小为100px
背景色为黄色
边框为 1px 实线 边框颜色为蓝色
-->
<div>我是div</div>
<div>我是div</div>
<div>我是div</div>
<div>我是div</div>
<div>我是div</div>
<div>我是div</div>
</body>
</html>
css
div{
color: red;
font-size: 10px;
background-color: yellow;
border: 1px solid blue;
}
优缺点
优点:复用性极高 可读性居中
缺点:性能低 需要获得 css 文件的传输时间
优先级
行内样式 > id 选择器 > 类选择器 > 标签选择器 > 通用选择器
小结
CSS 引入方式
内嵌样式
html<标签名称 style="属性名1:属性值1;属性名2:属性值2;......"></标签名称>
内部样式
html<head> <style type="text/css"> 标签名称{ 样式名1:样式值1; 样式名2:样式值2; } </style> </head>
外部样式
html<link rel="stylesheet" type="text/css" href="css文件路径" />
CSS选择器【重点】
https://www.w3.org/TR/CSS21/selector.html
规则结构
基本选择器
元素选择器
语法格式
csselement{属性:属性值}
练习
html<!-- 【需求】选中所有的div,给其添加以下样式 1.字体为黄色; 2.字号为100px; 3.边框 1px solid red; --> <div>我是div1</div> <div>我是div2</div> <div>我是div3</div>
cssdiv{ color: yellow; font-size: 100px; border: 1px solid red; }
id选择器
语法格式
css#id{属性:属性值}
练习
html<!-- 【需求】选中第二个div,给其添加以下样式 1.字体为黄色; 2.字号为100px; 3.边框 1px solid red; --> <div>我是div1</div> <div id="div2">我是div2</div> <div >我是div3</div>
css#div2{ color: yellow; font-size: 100px; border: 1px solid red; }
class选择器
语法格式
css.class{ 属性:属性值 }
练习
html<!-- 【需求】选中第二个和第三个div,给其添加以下样式 1.字体为黄色; 2.字号为100px; 3.边框 1px solid red; --> <div >我是div1</div> <div class="myDiv">我是div2</div> <div class="myDiv">我是div3</div>
css.myDiv{ color: yellow; font-size: 100px; border: 1px solid red; }
属性过滤选择器
选择具某个属性值的标签
语法格式
html<form> <input type="text"/><br/> <input type="password"><br/> </form>
cssinput[type="text"] { background-color: red; } input[type="password"] { background-color: pink; }
组合选择器
多元素选择器
逗号选择浏览器,规则中包含两个不同的选择器
语法格式
html<div>我是div1</div> <div>我是div2</div> <span>我是span1</span> <span>我是span2</span>
cssdiv,span{ color: yellow; font-size: 100px; border: 1px solid red; }
后代选择器
语法格式
html<div id="d1"> <div class="s1"> <span>我是span1</span> </div> <span>我是span2</span> </div> <div id="d2"> <div class="s1"> <span>我是span3</span> </div> <span>我是span4</span> </div>
css#d2 span{ color:red }
子代选择器
语法格式
html<div id="d1"> <div class="s1"> <span>我是span1</span> </div> <span>我是span2</span> </div> <div id="d2"> <div class="s1"> <span>我是span3</span> </div> <span>我是span4</span> </div>
css#d2>span{ color:red }
伪类选择器【了解】
语法格式
cssa:link { color:#333; } a:hover { color:red; } a:active { color:green; } a:visited { color: pink; }
结构性伪类【扩展】
*-child
first-child
last-child
*-of-type
first-of-type
last-of-type
nth-*-child
nth-child
nth-last-child
nth-*-of-type
nth-of-type
nth-last-of-type
CSS常用样式【熟悉】
字体样式
文字的字号、粗细和字体的样式(斜体)。
样式名 | 作用 | 说明 |
---|---|---|
font-family | 设置文字的字体;font-family="宋体" | 设置的字体必须是系统中已经安装的 |
font-size | 设置文字的字号(大小);font-size="100px" | 单位:像素 |
font-style | 设置文字的样式(斜体);font-style="italic" | |
font-weight | 设置文字的粗细;font-weight="bold" |
【练习】
html
<!--
文字样式
font-szie:字号
font-family:字体
font-style:字体样式
font-weight:文字粗细
【需求】设置span标签中文字的字体样式
7号字
楷体
斜体
加粗
-->
<span>早睡能解决80%的问题</span><br>
<a href="">点墨星河</a>
css
span {
font-size: 100px;
font-family: 楷体;
font-style: italic;
font-weight: bold;
}
文本样式
文本的颜色,间距,缩进等样式。
样式名 | 作用 | 说明 |
---|---|---|
color | 文本颜色 | color="red"或color="#FFF" |
text-decoration | 文字修饰 | underline 下划线,overline 上划线,line-through 删除线 |
text-indent | 文本缩进 | 单位:em,如:text-indent="2em":缩进两个字符 |
text-align | 文本水平对齐方式 | text-align:left 左对齐,center 居中对齐,right 右对齐 |
word-spacing | 单词之间的间隔 | word-spacing: nomal 默认值, word-spacing: 10px 间隔10像素 |
line-height | 文本的行高 | line-height: normal 默认值, line-height: 30px 行高30像素 |
text-shadow | 设置阴影及模糊效果 | 水平偏移; 垂直偏移; 模糊值; 阴影颜色; |
【练习】
html
<!--
文本样式:
text-align:水平对齐方式 左,中,右
text-indent:首行缩进
text-decoration:文本装饰 下划线,贯穿线...
color:设置字体颜色
【需求】
div文本居中
div字体红色
取消a标签文本的下划线
给p标签中的内容,首行缩进2个字符
-->
<div>只有在中国,小龙虾才活的有尊严</div>
<a href="#">点墨星河</a>
<p>
只有在中国,小龙虾才活的有尊严。
只有在中国,小龙虾才活的有尊严。
只有在中国,小龙虾才活的有尊严。
只有在中国,小龙虾才活的有尊严。
只有在中国,小龙虾才活的有尊严。
只有在中国,小龙虾才活的有尊严。
只有在中国,小龙虾才活的有尊严。
只有在中国,小龙虾才活的有尊严。
只有在中国,小龙虾才活的有尊严
</p>
css
div {
text-align: center;
color: red;
}
a {
text-decoration: none;
}
p {
text-indent: 2em;
}
边框和背景
边框相关
样式名 | 作用 | 使用示例 | 常用取值 |
---|---|---|---|
border | 设置对象边框的样式 | border:border-width border-style(required) border-color | border-width:定义边框的宽度;border-style:设置边框的4个边的样式,如:实线,虚线;border-color:设置边框的颜色; |
height | 设置标签的高度 | height:100px | length:px,cm;%:百分比高度; |
width | 设置标签的宽度 | width:100px | length:px,cm;%:百分比高度; |
背景相关
背景样式属性 | 作用&取值 |
---|---|
background-color | 设置对象的背景颜色:colorname,rgb |
background-image | 设置对象的背景图片:url(图片的路径) |
background-repeat | 设置背景的平铺方式:no-repeat:不平铺,repeat-x:横向平铺,repeat-y:纵向平铺;(注:图片默认是平铺满整个盒子) |
background-position | top上对齐; bottom下对齐; left左对齐; right右对齐; center居中对齐 |
background-size | - 默认平铺; - cover 图片保持比例放大或缩小使X轴与Y轴都铺满整个容器,但图片超出容器部分会被裁剪掉,图片不变形。 - contain 图片保持比例放大或缩小填充容器,若不能完整填充容器,X轴或Y轴都有可能出现白边,图片不变形。 |
练习
给页面某个 div 设置:宽度 200 像素,高度 200 像素,1 像素实线黑色的框 ;
给 div 设置背景色 lightgreen,背景图片,观察不同的图片平铺方式;
代码示例
html
<!--
【需求一】将div设置如下样式
1. 宽度300px;
2. 高度300px;
3. 边框:1px 实线 红色;
【需求二】给div设置背景图片,并演示以下平铺方式
1. 默认平铺方式;
2. 水平方向平铺;
3. 垂直方向平铺;
4. 不平铺;
-->
<div>
早睡能解决80%以上的问题
</div>
css
div{
width: 300px;
height: 300px;
border: 1px solid red;
background-color: yellow;
background-image: url("../img/reg.png");
/*background-repeat: repeat-x;*/
/*background-repeat: repeat-y;*/
background-repeat: no-repeat;
}
行和块之间的转换
HTML 提供丰富的标签,这些标签被定义成了不同的类型,一般分为:块标签和行内(内联)标签。
display属性取值
值 | 描述 |
---|---|
inline | 此元素将显示为行内元素(行内元素默认的display属性值) |
block | 此元素将显为块元素(块元素默认的display属性值) |
none | 此元素将被隐藏,不显示,也不占用页面空间 |
练习
需求
- 将 div 转换成行内元素;
- 将 span 转换成行级元素;
- 将 id 为 div3 的 div 隐藏;
代码示例
html
<!--
【需求】
1. 将div转换成行内元素;
2. 将span转换成行级元素;
3. 将id为div3的div隐藏;
-->
<div id="div1">我是div1</div>
<div id="div2">我是div2</div>
<div id="div3">我是div3</div>
<hr/>
<span id="span1">我是span1</span>
<span id="span2">我是span2</span>
css
#div1 {
background-color: red;
}
#div2 {
background-color: green;
}
#div3 {
background-color: yellow;
}
div {
width:100px;
height:100px;
}
#span1 {
background-color: green;
}
#span2 {
background-color: red;
}
div {
display: inline;
}
span {
display: block;
}
#div3{
display: none;
}
盒子模型
盒子模型概述
任何一个网页元素包含由这些属性组成:内容(content)、内边距(padding)、边框(border)、边界(margin), 这些属性我们可以用日常生活中的常见事物——盒子作一个比喻来理解,所以叫它盒子模型。
- 内容(content)就是盒子里装的东西;
- 内边距(padding)就是怕盒子里装的东西(贵重的)损坏而添加的泡沫或者其它抗震的辅料;
- 边框(border)就是盒子本身了;
- 外边界(margin)则说明盒子摆放的时候的不能全部堆在一起,要留一定空隙保持通风,同时也为了方便取出。
相关属性
盒子模型相关的属性:border 边框,padding 内边距;margin 外边距;
属性 | 作用 |
---|---|
border | 边框属性 |
padding | 内边距 |
margin | 外边距 |
outline | 轮廓 |
box-sizing | content-box(默认) / border-box |
border 边框属性
属性 | 边框样式 | 取值 |
---|---|---|
border-style | 边框线型 | solid:定义实线; dashed:定义虚线; double:定义双线 |
border-width | 边框宽度 | length:允许自定义边框宽度 |
border-color | 边框颜色 | 颜色名,十六进制颜色值 |
border-radius | 边框圆角 | 指定圆角的半径 |
border | 简写 | 线型 宽度 颜色 |
padding 内边距
内边距四边距离定义:
属性 | 含义 |
---|---|
padding-top:10px; | 上内边距 |
padding-left:10px; | 左内边距 |
padding-bottom: 10px; | 下内边距 |
padding-right:10px; | 右内边距 |
box-sizing 宽高计算方式
属性 | 含义 |
---|---|
content-box | 默认值,元素的宽度和高度只包括内容区域,不包括边框(border)、内边距(padding)和外边距(margin) |
border-box | 元素的宽度和高度包括内容区域、边框和内边距,但不包括外边距。也就是说,元素的边框和内边距会挤压内容区域的大小 |
margin 外边距
属性 | 含义 |
---|---|
margin-top:10px; | 上外边距 |
margin-left:10px; | 左外边距 |
margin-bottom: 10px; | 下外边距 |
margin-right:10px; | 右外边距 |
outline 轮廓线
属性 | 含义 |
---|---|
outline-color | 轮廓线颜色 |
outline-style | 轮廓线型 |
outline-width | 轮廓线宽度 |
outline | 设置color style width |
简写方式
外边距的写法 | 含义 |
---|---|
margin:10px | 四边相同 |
margin:10px 20px; | 上下 左右 |
margin:10px 20px 30px; | 上 左右 下 |
margin:10px 20px 30px 40px; | 上 右 下 左 |
块级元素 - 水平居中
css
margin:auto;
案例
- 盒子模型 & 注册表单
需求分析
需求:使用盒子模型修改注册页面 1、给body添加背景图片 regist_bg.jpg 2、设置一个div包裹form表单,设置div宽度500px、高度400px,背景为白色,边框实线 5px 颜色:#ccc 3、设置外边距上下100px,左右auto 4、通过设置内边距使表单在div中间
代码实现
html
<!--
需求:使用盒子模型修改注册页面
1、给body添加背景图片 regist_bg.jpg
2、设置一个div包裹form表单,设置div宽度500px、高度400px,背景为白色,边框实线 5px 颜色:#ccc
3、设置外边距上下100px,左右auto
4、通过设置内边距使表单在div中间
-->
<div id="formDiv">
<form action="#" method="get">
<table>
<tr>
<td align="right">用户名:</td>
<td align="left"><input type="text" name="username"></td>
</tr>
<tr>
<td align="right">密 码:</td>
<td align="left"><input type="password" name="password"></td>
</tr>
<tr>
<td align="right">确认密码:</td>
<td align="left"><input type="password" name="repassword"></td>
</tr>
<tr>
<td align="right">性 别:</td>
<td align="left">
<input type="radio" name="sex" value="男">男
<input type="radio" name="sex" value="女">女
</td>
</tr>
<tr>
<td align="right">头 像:</td>
<td align="left"><input type="file" name="upload"></td>
</tr>
<tr>
<td align="right">爱 好:</td>
<td align="left">
<input type="checkbox" name="hobby" value="编程"/>编程
<input type="checkbox" name="hobby" value="把妹"/>把妹
<input type="checkbox" name="hobby" value="装逼"/>装逼
</td>
</tr>
<tr>
<td align="right">所在城市:</td>
<td align="left">
<select name="city">
<option>上海</option>
<option>广州</option>
<option>北京</option>
</select>
</td>
</tr>
<tr>
<td align="right">自我描述:</td>
<td align="left">
<textarea re rows="3" cols="15" name="desc" ></textarea>
</td>
</tr>
<tr>
<td align="right"></td>
<td align="left">
<input type="submit" value="提交">
<input type="reset" value="重置">
</td>
</tr>
</table>
</form>
</div>
css
body{
background-image: url("../img/regist_bg.jpg");
}
#formDiv {
width: 500px;
height: 400px;
background-color: white;
border: 5px solid #cccccc;
margin: auto;
margin-top: 50px;
padding-left: 174px;
padding-top: 100px;
}
补充
列表属性
list-style-type: disc 等 list-style-image: url("图片地址") list-style-position: inside; outside;
扩展属性
圆角
border-radius
阴影
box-shadow
背影图片尺寸
background-size
文本阴影
tetxt-shadow
学习目标总结
- 能够使用 CSS 的基本选择器选择元素
- 能够使用 CSS 的扩展选择器选择元素
- 能够使用常见的 CSS 属性
- 能够说出盒子模型的属性